日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop 2.0安装以及不停集群加datanode

發(fā)布時(shí)間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop 2.0安装以及不停集群加datanode 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Hadoop2.0是對(duì)Hadoop1.0全面升級(jí),針對(duì)Namenode單點(diǎn)問題,提出了HDFS Federation,讓多個(gè)NameNode分管不同的目錄進(jìn)而實(shí)現(xiàn)訪問隔離和橫向擴(kuò)展。誕生了通用的計(jì)算框架YARN,YARN系統(tǒng)的引入使得計(jì)算框架進(jìn)入了平臺(tái)化時(shí)代,從云計(jì)算分層概念上講,YARN可看做PAAS層,很多計(jì)算框架或者應(yīng)用程序不再基于傳統(tǒng)的操作系統(tǒng)開發(fā),而是基于YARN這個(gè)云操作系統(tǒng)。典型的代表是DAG計(jì)算框架Tez,當(dāng)然還有一些其他知名的自運(yùn)行的計(jì)算集群系統(tǒng)也在YARN上有開源版本,比如Storm-on-yarn,Spark-on-yarn。我們先安裝一個(gè)Hadoop2.0環(huán)境,作為一切的開始。

?

單機(jī)環(huán)境中,Hadoop有偽分布式模式,即“單點(diǎn)集群”,在該模式下,所有的守護(hù)進(jìn)程均會(huì)運(yùn)行在單個(gè)節(jié)點(diǎn)上。

偽分布式模式安裝好了之后,繼續(xù)動(dòng)態(tài)加datanode,然后就是完全分布式的hadoop

希望了解hadoop2.0的改進(jìn)以及設(shè)計(jì)的亮點(diǎn)可以看這篇博文,HADOOP2.0(HDFS2)以及YARN設(shè)計(jì)的亮點(diǎn)

本文的hadoop版本是2.2.0,源碼以及編譯包的獲取地址:http://hadoop.apache.org/releases.html

[root@localhost hadoop]# pwd /root/hadoop [root@localhost hadoop]# ls hadoop-2.2.0 hadoop-2.2.0.tar.gz [root@localhost hadoop]# cd hadoop-2.2.0 [root@localhost hadoop-2.2.0]# ls bin etc include lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share

?

步驟1 修改配置文件

修改Hadoop配置文件 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh,這個(gè)根據(jù)實(shí)際情況修改,不過java7好像不太兼容,我這邊使用java6

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64

然后修改conf目錄下的mapred-site.xml,core-site.xml,yarn-site.xml和hdfs-site.xml四個(gè)文件,省略了最外圍的<configuration></configuration>

<!-- mapred-site.xml --> <property><name>mapreduce.framework.name</name><value>yarn</value> </property> <!-- core-site.xml --> <property><name>fs.default.name</name><value>hdfs://192.168.12.67:8020</value> </property> <property><name>hadoop.tmp.dir</name><value>/hadoop-tmp</value>
<!-- 設(shè)置一個(gè)不會(huì)被linux定期刪除的文件夾,默認(rèn)情況下namenode和datanode的文件都會(huì)存在這個(gè)目錄下 --> </property> <!-- yarn-site.xml -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
<!-- 2.2版本中不支持中劃線‘-’這邊用下劃線 --> </property> <!-- hdfs-site.xml -->
<property><name>dfs.replication</name><value>1</value>
<!-- 默認(rèn)情況下,hdfs數(shù)據(jù)塊的副本數(shù)是3,在集群規(guī)模小于3的集群中,默認(rèn)參數(shù)會(huì)導(dǎo)致錯(cuò)誤,所以調(diào)整為1 --> </property>

?

修改/etc/hosts,把本機(jī)hostname從原來的127.0.0.1修改為本機(jī)ip

192.168.12.67 localhost

修改${HADOOP_HOME}/etc/hadoop/slaves

192.168.12.67

?

步驟2 設(shè)置免密碼登錄

#生成免密碼公密鑰對(duì),然后把公鑰加入自己的授權(quán)文件中,完成本機(jī)對(duì)本機(jī)的免密碼登錄 ssh-keygen -t rsa cd ~/.ssh/ cat id_ras.pub >> authorized_keys

?

步驟3 啟動(dòng)Hadoop

格式化HDFS

?

./bin/hadoop namenode -format

?

啟動(dòng)HDFS

cd $HADOOP_HOME ./sbin/start-dfs.sh

啟動(dòng)YARN

cd $HADOOP_HOME ./sbin/start-yarn.sh

?

通過以下URL可查看YARN是否啟動(dòng)成功: http://192.168.12.67:8088/

?jps可以看到運(yùn)行的進(jìn)程

[root@localhost hadoop-2.2.0]# jps 21454 SecondaryNameNode 31987 Jps 21302 DataNode 21718 NodeManager 21191 NameNode 21623 ResourceManager

?

?

可以把hadoop的執(zhí)行腳本加入PATH,這樣方便以后直接調(diào)用hadoop腳本,具體就是修改/etc/profile文件,然后source /etc/profile生效

export PATH=$PATH:/root/hadoop/hadoop-2.2.0/bin

運(yùn)行下hadoop腳本,就可以看到hdfs的文件系統(tǒng)了

[root@localhost hadoop-2.2.0]# hadoop fs -ls

hadoop提供了一個(gè)跑在yarn上的示例,可以運(yùn)行

hadoop jar share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.2.0.jar org.apache.hadoop.yarn.applications.distributedshell.Client --jar share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.2.0.jar --shell_command ls --num_containers 10 --container_memory 350 --master_memory 350 --priority 10

?顯示hadoo上正在運(yùn)行的作業(yè)

hadoop job -list

?

完全分布式安裝,動(dòng)態(tài)加datanode機(jī)器

偽分布式安裝完成,下面試試完全分布式安裝(就是動(dòng)態(tài)加datanode場(chǎng)景)、

這里我隨便找了兩臺(tái)機(jī)器,把新加兩臺(tái)機(jī)器hostname dns解析加入namenode機(jī)器的/etc/hosts中,所有新加的機(jī)器的/etc/hosts上都要同步這個(gè)配置。否則有datanode無法連接到namenode exception

192.168.1.57 yhserver

192.168.24.33 rhel6

修改${HADOOP_HOME}/etc/hadoop/slaves,加入新機(jī)器兩臺(tái)

192.168.1.57 192.168.24.33

注意,我在加加機(jī)器的時(shí)候規(guī)范了下hdfs-site.xml配置文件,把namenode文件和datanode文件,指定相應(yīng)的目錄,當(dāng)然這樣改了之后,就需要重新做namenode格式化的操作了。如果一開始就規(guī)范好了,就可以不停下namenode,直接加datanode了。默認(rèn)沒有配置,就是在hadoop.tmp目錄下,各建立dfs name目錄保存相應(yīng)文件。

<property><name>dfs.namenode.name.dir</name><value>/hadoop/name</value> </property> <property><name>dfs.datanode.data.dir</name><value>/hadoop/dfs</value> </property>

然后往新加的兩臺(tái)機(jī)器上,同步hadoop工程以及配置文件,然后設(shè)置免密碼登錄新加的兩臺(tái)機(jī)器,然后新加的機(jī)器上,各自單獨(dú)執(zhí)行

./sbin/hadoop-daemon.sh start datanode

然后就可以看到新加的兩個(gè)datanode生效了

?

問題匯總

error: org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode

datanode無法連接到namenode,是因?yàn)闆]有在所有機(jī)器的/etc/hosts,配置好hostname ip對(duì)應(yīng)關(guān)系。配置好了,重啟就可以。

?

FATAL org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices: Failed to initialize mapreduce_shuffle java.lang.RuntimeException: No class defiend for mapreduce_shuffleat org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices.init(AuxServices.java:94)at org.apache.hadoop.yarn.service.CompositeService.init(CompositeService.java:58)at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.init(ContainerManagerImpl.java:181)at org.apache.hadoop.yarn.service.CompositeService.init(CompositeService.java:58)at org.apache.hadoop.yarn.server.nodemanager.NodeManager.init(NodeManager.java:185)at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:328)at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:351)FATAL org.apache.hadoop.yarn.server.nodemanager.NodeManager: Error starting NodeManager java.lang.RuntimeException: No class defiend for mapreduce_shuffleat org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices.init(AuxServices.java:94)at org.apache.hadoop.yarn.service.CompositeService.init(CompositeService.java:58)at org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl.init(ContainerManagerImpl.java:181)at org.apache.hadoop.yarn.service.CompositeService.init(CompositeService.java:58)at org.apache.hadoop.yarn.server.nodemanager.NodeManager.init(NodeManager.java:185)at org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:328)at org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:351)

不同版本間參數(shù)名稱不一樣,修改yarn-site.xml文件

<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>mapreduce_shuffle</value>
</property>

?

?

?

參考

《Hadoop技術(shù)內(nèi)幕-深入解析YARN架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理》

DAG計(jì)算框架Tez:http://tez.incubator.apache.org/

"Storm On YARN" Yahoo!開源: https://github.com/yahoo/storm-yarn

"Spark On YARN":http://spark.apache.org/docs/0.9.0/running-on-yarn.html

?

?

總結(jié)

以上是生活随笔為你收集整理的Hadoop 2.0安装以及不停集群加datanode的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。