Hadoop2.2.0集群在RHEL6.2下的安裝實(shí)戰(zhàn)

      網(wǎng)友投稿 756 2022-05-29

      題記

      本文介紹了一個(gè)Hadoop2.2.0集群的搭建過(guò)程,在2臺(tái)4G內(nèi)存的酷睿雙核PC機(jī)上,使用VMWare WorkStation虛擬了4個(gè)rhel6.2(1G內(nèi)存、單核CPU、10G硬盤(pán)),總計(jì)用10個(gè)小時(shí)的時(shí)間,完成虛擬機(jī)制作和Hadoop建立過(guò)程,總體比較順利。

      本次集群搭建過(guò)程中,主要遇到兩個(gè)問(wèn)題:

      (1)第一個(gè)是:DataNode啟動(dòng)了(使用jps可以看到進(jìn)程),但是在NameNode中看不到(192.168.1.10:50070),花費(fèi)大約3個(gè)小時(shí)時(shí)間查問(wèn)題,根據(jù)logs目錄的日志“org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:9000”,到百度搜索,有人遇到說(shuō)是防火墻沒(méi)關(guān)的問(wèn)題,但是我的防火墻都關(guān)了。最后多種方式嘗試,原來(lái)是/etc/hosts中,對(duì)于master除了對(duì)應(yīng)到192.168.1.10之外,我還對(duì)應(yīng)到了127.0.0.1,去掉之后,重新啟動(dòng),就都好了。

      (2)第二個(gè)是:常見(jiàn)問(wèn)題,多次format namecode造成的DataNode不啟動(dòng),刪除/home/hadoop/dfs/data/current/VERSION就好了。

      (3)多看日志,總能解決

      Hadoop是什么

      Hadoop是Lucene創(chuàng)始人Doug Cutting,根據(jù)Google的相關(guān)內(nèi)容山寨出來(lái)的分布式文件系統(tǒng)和對(duì)海量數(shù)據(jù)進(jìn)行分析計(jì)算的基礎(chǔ)框架系統(tǒng),其中包含MapReduce程序,hdfs系統(tǒng)等。

      名詞解釋

      (1)Hadoop:Apache開(kāi)源的分布式框架。

      (2)HDSF:Hadoop的分布式文件系統(tǒng)。

      (3)NameNode:Hadoop HDFS元數(shù)據(jù)主節(jié)點(diǎn)服務(wù)器,負(fù)責(zé)保存DataNode 文件存儲(chǔ)元數(shù)據(jù)信息,這個(gè)服務(wù)器是單點(diǎn)的。

      (4)JobTracker:Hadoop的Map/Reduce調(diào)度器,負(fù)責(zé)與TaskTracker通信分配計(jì)算任務(wù)并跟蹤任務(wù)進(jìn)度,這個(gè)服務(wù)器也是單點(diǎn)的。

      (5)DataNode:Hadoop數(shù)據(jù)節(jié)點(diǎn),負(fù)責(zé)存儲(chǔ)數(shù)據(jù)。

      (6)TaskTracker:Hadoop調(diào)度程序,負(fù)責(zé)Map,Reduce任務(wù)的啟動(dòng)和執(zhí)行。

      Hadoop1的集群部署結(jié)構(gòu)圖

      Hadoop1的組件依賴(lài)關(guān)系圖

      Hadoop2的Yarn架構(gòu)圖

      安裝RHEL環(huán)境

      使用VMWare WorkStation安裝虛擬機(jī):

      http://blog.csdn.net/puma_dong/article/details/17889593#t0

      http://blog.csdn.net/puma_dong/article/details/17889593#t1

      安裝Java環(huán)境:

      http://blog.csdn.net/puma_dong/article/details/17889593#t10

      安裝完畢之后,4臺(tái)虛擬機(jī)IP及機(jī)器名稱(chēng)如下:

      192.168.1.10 ? ?master

      192.168.1.11 ? ?node1

      192.168.1.12 ? ?node2

      192.168.1.13 ? ?node3

      可以通過(guò)vim /etc/hosts查看。注意:在/etc/hosts中,不要把機(jī)器名字,同時(shí)對(duì)應(yīng)到127.0.0.1這個(gè)地址,會(huì)導(dǎo)致數(shù)據(jù)節(jié)點(diǎn)連接不上命名節(jié)點(diǎn),報(bào)錯(cuò)如下:

      org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:9000

      安裝完畢之后,Java位置如下:/usr/jdk1.6.0_45 ,可以通過(guò)echo $JAVA_HOME查看。

      配置Hadoop環(huán)境

      創(chuàng)建Hadoop賬號(hào)

      (1)創(chuàng)建Hadoop用戶組:groupadd hadoop

      (2)創(chuàng)建Hadoop用戶:useradd hadoop -g hadoop

      (3)設(shè)置Hadoop用戶密碼:passwd ? 密碼hadoop

      (4)給hadoop賬戶增加sudo權(quán)限: vim?/etc/sudoers ,增加內(nèi)容:hduser ALL=(ALL) ALL

      注意:以上對(duì)于每一臺(tái)機(jī)器都要執(zhí)行

      創(chuàng)建master到slave的無(wú)密碼登錄

      (1)切換到Hadoop 用戶下:su hadoop ? ?cd /home/hadoop/

      (2)生成公鑰和私鑰:ssh-keygen -q -t rsa -N "" -f /home/hadoop/.ssh/id_rsa

      (3)查看密鑰內(nèi)容:cd /home/hadoop/.ssh ??cat id_rsa.pub

      (4)復(fù)制id_rsa.pub公鑰到 authorized_keys 文件:cat id_rsa.pub > authorized_keys

      (5)修改master公鑰權(quán)限:chmod 644 /home/hadoop/.ssh/authorized_keys

      (6)把 master 機(jī)器上的 authorized_keys 文件 copy 到 node1 節(jié)點(diǎn)上:

      scp /home/hadoop/.ssh/authorized_keys node1:/home/hadoop/.ssh/

      如果node1/node2/node3機(jī)器上沒(méi)有.ssh目錄,則創(chuàng)建,并chmod 700 /home/hadoop/.ssh

      安裝Hadoop

      安裝目錄

      Hadoop安裝目錄:/home/hadoop/hadoop-2.2.0

      文件目錄:/home/hadoop/dfs/name ,/home/hadoop/dfs/data ,/home/hadoop/tmp

      安裝步驟

      注意:以下步驟使用hadoop賬號(hào)操作。

      (1)轉(zhuǎn)到 home/hadoop目錄:cd /home/hadoop

      (2)下載hadoop:wget http://mirror.esocc.com/apache/hadoop/common/stable2/hadoop-2.2.0.tar.gz

      (3)解壓hadoop并放到計(jì)劃安裝位置:tar zxvf?hadoop-2.2.0.tar.gz

      (4)創(chuàng)建文件目錄:mkdir -p /home/hadoop/dfs/name /home/hadoop/dfs/data /home/hadoop/tmp

      (5)修改7個(gè)配置文件,文件位置:/home/hadoop/hadoop-2.2.0/etc/hadoop/,文件名稱(chēng):hadoop-env.sh、yarn-evn.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

      配置文件hadoop-env.sh

      如果系統(tǒng)環(huán)境變量有設(shè)置$JAVA_HOME,則這個(gè)文件不用修改,否則要修改${JAVA_HOME}為:/usr/jdk1.6.0_45

      配置文件yarn-env.sh

      如果系統(tǒng)環(huán)境變量有設(shè)置$JAVA_HOME,則這個(gè)文件不用修改,否則要修改${JAVA_HOME}為:/usr/jdk1.6.0_45

      配置文件slaves

      Hadoop2.2.0集群在RHEL6.2下的安裝實(shí)戰(zhàn)

      vim /home/hadoop/hadoop-2.2.0/etc/hadoop/slaves,修改內(nèi)容為所有的DataNode的機(jī)器名字,每個(gè)機(jī)器一行,這篇文章的配置如下:

      node1

      node2

      node3

      配置文件core-site.xml

      vim /home/hadoop/hadoop-2.2.0/etc/hadoop/core-site.xml,修改configuration內(nèi)容如下:

      [html] view plain copy print ?

      fs.defaultFS

      hdfs://master:9000

      io.file.buffer.size

      131072

      hadoop.tmp.dir

      file:/home/hadoop/tmp

      Abase?for?other?temporary?directories.

      配置文件hdfs-site.xml

      vim /home/hadoop/hadoop-2.2.0/etc/hadoop/hdfs-site.xml,修改configuration內(nèi)容如下:

      [html] view plain copy print ?

      dfs.namenode.secondary.http-address

      master:9001

      dfs.namenode.name.dir

      file:/home/hadoop/dfs/name

      dfs.datanode.data.dir

      file:/home/hadoop/dfs/data

      dfs.replication

      3

      dfs.webhdfs.enabled

      true

      配置文件mapred-site.xml

      mv /home/hadoop/hadoop-2.2.0/etc/hadoop/mapred-site.xml.template /home/hadoop/hadoop-2.2.0/etc/hadoop/mapred-site.xml

      vim /home/hadoop/hadoop-2.2.0/etc/hadoop/mapred-site.xml,修改configuration內(nèi)容如下:

      [html] view plain copy print ?

      mapreduce.framework.name

      yarn

      mapreduce.jobhistory.address

      master:10020

      mapreduce.jobhistory.webapp.address

      master:19888

      配置節(jié)點(diǎn)yarn-site.xml

      vim /home/hadoop/hadoop-2.2.0/etc/hadoop/yarn-site.xml,修改configuration內(nèi)容如下:

      [html] view plain copy print ?

      yarn.nodemanager.aux-services

      mapreduce_shuffle

      yarn.nodemanager.aux-services.mapreduce.shuffle.class

      org.apache.hadoop.mapred.ShuffleHandler

      yarn.resourcemanager.address

      master:8032

      yarn.resourcemanager.scheduler.address

      master:8030

      yarn.resourcemanager.resource-tracker.address

      master:8031

      yarn.resourcemanager.admin.address

      master:8033

      yarn.resourcemanager.webapp.address

      master:8088

      復(fù)制Hadoop到其他節(jié)點(diǎn)

      (1)scp -r /home/hadoop/hadoop-2.2.0 hadoop@node1:~/

      (2)scp -r /home/hadoop/hadoop-2.2.0 hadoop@node2:~/

      (3)scp -r /home/hadoop/hadoop-2.2.0 hadoop@node3:~/

      啟動(dòng)Hadoop

      (1)切換到hadoop用戶:su hadoop

      (2)進(jìn)入安裝目錄: cd ?~/hadoop-2.2.0/

      (3)格式化namenode:./bin/hdfs namenode –format

      (4)啟動(dòng)hdfs: ./sbin/start-dfs.sh

      (5)jps查看,此時(shí)master有進(jìn)程:NameNoce SecondaryNameNode,node1/node2/node3上有進(jìn)程:DataNode

      (6)啟動(dòng)yarn: ./sbin/start-yarn.sh

      (7)jps查看,此時(shí)master有進(jìn)程:NameNoce?SecondaryNameNode ResourceManager,node1/node2/node3上有進(jìn)程:DataNode NodeManager

      (8)查看集群狀態(tài):./bin/hdfs dfsadmin -report

      (9)查看文件塊組成: ?./bin/hdfs fsck / -files -blocks

      (10)Web查看HDFS: ? ?http://192.168.1.10:50070

      (11)Web查看RM(Resource Manager): ? ?http://192.168.1.10:8088

      (12)Web查看NM(Node Manager):http://192.168.1.11:8042

      (13)啟動(dòng)JobHistory Server:mr-jobhistory-daemon.sh start historyserver,可以通過(guò):http://192.168.1.10:19888/ 查看任務(wù)執(zhí)行歷史信息,終止JobHistory Server,執(zhí)行如下命令:mr-jobhistory-daemon.sh stop historyserver 。

      HADOOP_HOME環(huán)境變量

      在運(yùn)行方便,我們?cè)O(shè)置一個(gè)HADOOP_HOME環(huán)境變量,并加入PATH目錄,步驟如下:

      (1)vim /etc/profile.d/java.sh ?#因?yàn)閔adoop必用java,所有我們把使用這個(gè)文件即可。

      (2)增加內(nèi)容:

      export HADOOP_HOME=/home/hadoop/hadoop-2.2.0

      export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

      運(yùn)行Hadoop計(jì)算任務(wù)

      WordCount

      (1)/home/hadoop目錄下有兩個(gè)文本文件file01.txt和file02.txt,文件內(nèi)容分別為:

      file01.txt:

      kongxianghe

      kong

      yctc

      Hello World

      file02.txt:

      11

      2222

      kong

      Hello

      yctc

      (2)將這兩個(gè)文件放入hadoop的HDFS中:

      hadoop fs -ls ? ? //查看hdfs目錄情況

      hadoop fs -mkdir -p input

      hadoop fs -put /home/hadoop/file*.txt input

      hadoop fs -cat input/file01.txt ? //查看命令

      (3)計(jì)算并查看結(jié)果:

      hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount input output

      hadoop fs -ls output

      hadoop fs -cat output/part-r-00000

      可以看到數(shù)據(jù)都已經(jīng)被統(tǒng)計(jì)出來(lái)了。

      hadoop fs,或者使用hdfs dfs,但是不要使用hadoop dfs,因?yàn)橐呀?jīng)不推薦使用了,會(huì)有警告。

      基準(zhǔn)測(cè)試排序

      Hadoop自帶一些基準(zhǔn)測(cè)試程序,用來(lái)測(cè)試集群性能。例如:

      如下的這個(gè)程序,會(huì)現(xiàn)在每個(gè)節(jié)點(diǎn)生成10個(gè)G的隨機(jī)數(shù)字,然后排序出結(jié)果:

      (1)./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter rand

      (2)./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar sort rand sort-rand

      第一個(gè)命令會(huì)在rand 目錄的生成沒(méi)有排序的數(shù)據(jù)。第二個(gè)命令會(huì)讀數(shù)據(jù),排序,然后寫(xiě)入rand-sort 目錄。

      例如,hadoop_*_test.jar TestDFSIO,用來(lái)測(cè)試IO性能;其他常用的還有:

      (1)MRBench(使用mrbench選項(xiàng))會(huì)多次運(yùn)行一個(gè)小型作業(yè),以檢驗(yàn)小型作業(yè)能否快速的相應(yīng)。

      (2)NNBench(使用nnbench選項(xiàng))專(zhuān)門(mén)用于測(cè)試namenode硬件的負(fù)載。

      (3)Gridmix是一個(gè)基準(zhǔn)測(cè)試程序套裝。通過(guò)模擬一些真實(shí)常見(jiàn)的數(shù)據(jù)訪問(wèn)模式,能逼真地為一個(gè)集群的負(fù)載建模。

      常見(jiàn)錯(cuò)誤

      (1)Name node is in safe mode

      運(yùn)行hadoop程序時(shí), 異常終止了,然后再向hdfs加文件或刪除文件時(shí),出現(xiàn)Name node is in safe mode錯(cuò)誤:

      rmr: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode

      解決的命令:

      hdfs dfsadmin -safemode leave #關(guān)閉safe mode

      (2)DataNode 無(wú)法啟動(dòng)

      我遇到過(guò)兩種情況的DataNode無(wú)法啟動(dòng):第一種是/etc/hosts里面機(jī)器名字除了和IP對(duì)應(yīng)之外,還和127.0.0.1對(duì)應(yīng),導(dǎo)致DataNode連接NameNode的9000端口一直連接不上;第二種是多次format namenode 造成namenode 和datanode的clusterID不一致,通過(guò)查看NameNode和DataNode的/home/hadoop/dfs/data/current/VERSION,發(fā)現(xiàn)確實(shí)不一致。

      總之,遇到錯(cuò)誤不要慌,多看看$HADOOP_HOME/logs下面的日志,就能找到問(wèn)題。

      Hadoop 分布式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:基于HTML的飛機(jī)射擊游戲
      下一篇:最全 MongoDB 基礎(chǔ)教程
      相關(guān)文章
      亚洲国产精品99久久久久久 | 中文字幕精品三区无码亚洲| 亚洲精品卡2卡3卡4卡5卡区| 亚洲精品无码成人片在线观看 | 亚洲国产精品婷婷久久| 亚洲av成人一区二区三区在线播放| 亚洲AV乱码一区二区三区林ゆな| 亚洲人成在线播放网站| 久久精品国产亚洲av瑜伽| 亚洲精品久久无码av片俺去也| 亚洲国产成人AV在线播放| 朝桐光亚洲专区在线中文字幕| 在线亚洲v日韩v| 亚洲国产成人爱av在线播放| 亚洲一区精品伊人久久伊人| 久久久无码精品亚洲日韩软件| 亚洲综合无码AV一区二区| 亚洲国产成人影院播放| 国产亚洲精品a在线观看| 亚洲精品无码MV在线观看 | 亚洲 欧洲 日韩 综合在线| 亚洲日韩精品国产一区二区三区| 亚洲乱亚洲乱妇24p| 亚洲А∨精品天堂在线| 国产精品亚洲高清一区二区| 亚洲区小说区图片区QVOD| 亚洲短视频男人的影院| 亚洲国产日韩在线人成下载| 欧洲 亚洲 国产图片综合| 国产精品亚洲精品久久精品| 亚洲人成无码久久电影网站| 亚洲男人的天堂www| 久久精品国产亚洲AV大全| 亚洲人成电影网站| 亚洲国产成人久久精品大牛影视| 亚洲福利在线播放| 久久精品国产亚洲综合色| 精品国产日韩亚洲一区| 久久精品国产精品亚洲蜜月| 亚洲欧洲日产国码在线观看| 中文字幕精品三区无码亚洲|