Hadoop,分布式的大數(shù)據(jù)存儲(chǔ)和計(jì)算, 免費(fèi)開源!有Linux基礎(chǔ)的同學(xué)安裝起來比較順風(fēng)順?biāo)?,寫幾個(gè)配置文件就可以啟動(dòng)了,本人菜鳥,所以寫的比較詳細(xì)。為了方便,本人使用三臺(tái)的虛擬機(jī)系統(tǒng)是Ubuntu-12。設(shè)置虛擬機(jī)的網(wǎng)絡(luò)連接使用橋接方式,這樣在一個(gè)局域網(wǎng)方便調(diào)試。單機(jī)和集群安裝相差不多,先說單機(jī)然后補(bǔ)充集群的幾點(diǎn)配置。
第一步,先安裝工具軟件
編輯器:vim
復(fù)制代碼 代碼如下:
sudo apt-get install vim
ssh服務(wù)器: openssh,先安裝ssh是為了使用遠(yuǎn)程終端工具(putty或xshell等),這樣管理虛擬機(jī)就方便多了。
復(fù)制代碼 代碼如下:
sudo apt-get install openssh-server
第二步,一些基本設(shè)置
最好給虛擬機(jī)設(shè)置固定IP
復(fù)制代碼 代碼如下:
sudo vim /etc/network/interfaces
加入以下內(nèi)容:
iface eth0 inet static
address 192.168.0.211
gateway 192.168.0.222
netmask 255.255.255.0
修改機(jī)器名,我這里指定的名字是:hadoopmaster ,以后用它做namenode
復(fù)制代碼 代碼如下:
sudo vim /etc/hostname
修改hosts,方便應(yīng)對(duì)IP變更,也方便記憶和識(shí)別
復(fù)制代碼 代碼如下:
sudo vim /etc/hosts
加入內(nèi)容:
192.168.0.211 hadoopmaster
第三步,添加一個(gè)專門為hadoop使用的用戶
復(fù)制代碼 代碼如下:
sudo addgroup hadoop
sudo adduser -ingroup hadoop hadoop
設(shè)置hadoop用戶的sudo權(quán)限
復(fù)制代碼 代碼如下:
sudo vim /etc/sudoers
在 root ALL=(ALL:ALL)
下面加一行 hadoop ALL=(ALL:ALL)
切換到hadoop用戶 su hadoop
第四步,解壓安裝JDK,HADOOP,PIG(順便把PIG也安裝了)
復(fù)制代碼 代碼如下:
sudo tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/local/jvm/
sudo tar zxvf ./hadoop-1.0.4.tar.gz -C /usr/local/hadoop
sudo tar zxvf ./pig-0.11.1.tar.gz -C /usr/local/pig
修改解壓后的目錄名并且最終路徑為:
復(fù)制代碼 代碼如下:
jvm: /usr/local/jvm/jdk7
hadoop: /usr/local/hadoop/hadoop (注意:hadoop所有節(jié)點(diǎn)的安裝路徑必須相同)
pig: /usr/local/pig
設(shè)置目錄所屬用戶
復(fù)制代碼 代碼如下:
sudo chown -R hadoop:hadoop jdk7
sudo chown -R hadoop:hadoop hadoop
sudo chown -R hadoop:hadoop pig
設(shè)置環(huán)境變量, 編輯~/.bashrc 或 ~/.profile 文件加入
復(fù)制代碼 代碼如下:
export JAVA_HOME=/usr/local/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_INSTALL=/usr/local/hadoop/hadoop
export PATH=${HADOOP_INSTALL}/bin:$PATH
source ~/.profile 生效
第五步,.ssh無密碼登錄本機(jī),也就是說ssh到本機(jī)不需要密碼
復(fù)制代碼 代碼如下:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub gt;gt; ~/.ssh/authorized_keys
如果不起作用請(qǐng)修改權(quán)限:
復(fù)制代碼 代碼如下:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
authorized_keys相當(dāng)于白名單,id_rsa.pub是公鑰,凡是在authorized_keys有請(qǐng)求者機(jī)器的公鑰時(shí)ssh服務(wù)器直接放行,無需密碼!
第六步,Hadoop必要設(shè)置
所有設(shè)置文件在hadoop/conf目錄下
1、hadoop-env.sh 找到 #export JAVA_HOME 去掉注釋#,并設(shè)置實(shí)際jdk路徑
2、core-site.xml
復(fù)制代碼 代碼如下:
property>
name>fs.default.name/name>
value>hdfs://hadoopmaster:9000/value>
/property>
property>
name>hadoop.tmp.dir/name>
value>/usr/local/hadoop/tmp/value>
/property>
3、mapred-site.xml
復(fù)制代碼 代碼如下:
property>
name>mapred.job.tracker/name>
value>hadoopmaster:9001/value>
/property>
4、hdfs-site.xml
復(fù)制代碼 代碼如下:
property>
name>dfs.name.dir/name>
value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2/value>
/property>
property>
name>dfs.data.dir/name>
value>/usr/local/hadoop/data1,/usr/local/hadoop/data2/value>
/property>
property>
name>dfs.replication/name>
value>1/value>
/property>
5、文件masters 和 文件slaves, 單機(jī)寫 localhost 即可
第七步,啟動(dòng)Hadoop
格式化Hadoop的HDFS文件系統(tǒng)
復(fù)制代碼 代碼如下:
hadoop namenode -format
執(zhí)行Hadoop啟動(dòng)腳本,如果是集群的話在master上執(zhí)行,其他slave節(jié)點(diǎn)Hadoop會(huì)通過ssh執(zhí)行:
復(fù)制代碼 代碼如下:
start-all.sh
執(zhí)行命令 jps 如果顯示有: Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker等五個(gè)進(jìn)程表示啟動(dòng)成功了!
第八步,集群的配置
所有其他單機(jī)的安裝跟上面相同,下面只增加集群的額外配置!
最好先配置好一臺(tái)單機(jī),其他的可以通過scp直接復(fù)制,路徑也最好相同包括java!
本例的主機(jī)列表(設(shè)置hosts):
設(shè)置ssh,讓master能夠不要密碼登錄到其他slaves上,主要用來啟動(dòng)slaves
復(fù)制代碼 代碼如下:
復(fù)制hadoopmaster下id_rsa.pub到子結(jié)點(diǎn):
scp ./ssh/id_rsa.pub hadoopnode1:/home/hadoop/.ssh/id_master
scp ./ssh/id_rsa.pub hadoopnode2:/home/hadoop/.ssh/id_master
分別在子結(jié)點(diǎn)~/.ssh/目錄下執(zhí)行:
cat ./id_master >> authorized_keys
masters文件,添加作為secondarynamenode或namenode的主機(jī)名,一行一個(gè)。
集群寫master名如:hadoopmaster
slaves文件,添加作為slave的主機(jī)名,一行一個(gè)。
集群寫子結(jié)點(diǎn)名:如 hadoopnode1、hadoopnode2
Hadoop管理
hadoop啟動(dòng)后會(huì)啟動(dòng)一個(gè)任務(wù)管理服務(wù)和一個(gè)文件系統(tǒng)管理服務(wù),是兩個(gè)基于JETTY的WEB服務(wù),所以可在線通過WEB的方式查看運(yùn)行情況。
任務(wù)管理服務(wù)運(yùn)行在50030端口,如 http://127.0.0.1:50030文件系統(tǒng)管理服務(wù)運(yùn)行在50070端口。
參數(shù)說明:
1、dfs.name.dir:是NameNode持久存儲(chǔ)名字空間及事務(wù)日志的本地文件系統(tǒng)路徑。 當(dāng)這個(gè)值是一個(gè)逗號(hào)分割的目錄列表時(shí),nametable數(shù)據(jù)將會(huì)被復(fù)制到所有目錄中做冗余備份。
2、dfs.data.dir:是DataNode存放塊數(shù)據(jù)的本地文件系統(tǒng)路徑,逗號(hào)分割的列表。 當(dāng)這個(gè)值是逗號(hào)分割的目錄列表時(shí),數(shù)據(jù)將被存儲(chǔ)在所有目錄下,通常分布在不同設(shè)備上。
3、dfs.replication:是數(shù)據(jù)需要備份的數(shù)量,默認(rèn)是3,如果此數(shù)大于集群的機(jī)器數(shù)會(huì)出錯(cuò)。
您可能感興趣的文章:- Linux中安裝配置hadoop集群詳細(xì)步驟
- 詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境
- 在Hadoop集群環(huán)境中為MySQL安裝配置Sqoop的教程
- java結(jié)合HADOOP集群文件上傳下載
- ol7.7安裝部署4節(jié)點(diǎn)hadoop 3.2.1分布式集群學(xué)習(xí)環(huán)境的詳細(xì)教程