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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop入门(二)集群安装

發(fā)布時間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop入门(二)集群安装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、集群安裝條件前置

在虛擬機上先準備一個機子 ?按用前面【安裝單機hadoop】 已完成安裝jdk,hadoop和ssh、網(wǎng)絡(luò)等配置環(huán)境等。

虛擬機和操作系統(tǒng)

環(huán)境:ubuntu14 + hadoop2.6+jdk1.7+ssh

虛擬機:(vmware10)

?

二、集群安裝環(huán)境設(shè)置

Hadoop的安裝為分布式模式,考慮到實際條件集群機定為3臺(2臺也可以)。

(1)克隆3個ubuntu實例

先關(guān)閉當前虛擬機實例,在虛擬機工具欄上點擊【虛擬機】|【管理】|【克隆】,打開克隆虛擬機向?qū)Т翱邳c擊【下一步】|【下一步】,其中克隆類型選擇【創(chuàng)建完整克隆】,點擊【下一步】,填寫【虛擬機名稱】|【位置】,【完成】克隆。

?

(2)設(shè)置3臺機子的hostname

先正確設(shè)置各虛擬機的hostname 執(zhí)行命令

sudo ? gedit ? /etc/hostname

將文件中的名稱改成想要的機器名,如 hadoop01, hadoop02, hadoop03。

?

(3)設(shè)置3臺機子的hosts文件

修改3臺虛擬機hosts文件都是一樣 執(zhí)行命令

sudo ?gedit ?/etc/hosts

在hosts文件添加如下內(nèi)容

192.168.150.128 ?hadoop01 192.168.150.129 ?hadoop02 192.168.150.130 ?hadoop03

這樣,就不用記IP了。也可以只修改一臺,其他使用scp命令拷貝hosts文件。

?

(4)設(shè)置虛擬機的靜態(tài)ip

修改3臺主機設(shè)置靜態(tài)ip,在hadoop0x上也要參考設(shè)置修改成具體的ip

sudo ?gedit ? /etc/network/interfaces

打開文件修改成已下內(nèi)容(hadoop01)

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.150.128 netmask 255.255.255.0 network 192.168.150.0 boardcast 192.168.150.255 gateway 192.168.150.2

打開文件修改成已下內(nèi)容(hadoop02)

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.150.129 netmask 255.255.255.0 network 192.168.150.0 boardcast 192.168.150.255 gateway 192.168.150.2

打開文件修改成已下內(nèi)容(hadoop03)

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.150.130 netmask 255.255.255.0 network 192.168.150.0 boardcast 192.168.150.255 gateway 192.168.150.2

?

(5)配置NAT網(wǎng)絡(luò)

1)虛擬機網(wǎng)絡(luò)設(shè)置

在虛擬機工具欄上點擊【編輯機】|【虛擬機網(wǎng)絡(luò)編輯】,如果沒有NAT模式的網(wǎng)絡(luò)就點擊【添加網(wǎng)絡(luò)】,然后Wnet信息修改為【NAT模式】,設(shè)置子網(wǎng)為【192.168.150.0】,點擊【NAT設(shè)置】按鈕如圖【NAT設(shè)置圖】,點擊【DCHP設(shè)置】按鈕如圖【DCHP設(shè)置圖】,點擊【應(yīng)用】按鈕和【確認】按鈕。

NAT設(shè)置圖:

DCHP設(shè)置圖:

2)設(shè)置虛擬計算機NAT

選擇【我的計算機】的一個虛擬機,鼠標右鍵選擇【設(shè)置】,選擇【網(wǎng)絡(luò)適配器】,在右側(cè)【網(wǎng)絡(luò)連接】點擊【自定義】然后選擇【NAT模式】的網(wǎng)絡(luò),點擊【確定】按鈕保存

?

(6)重啟檢驗網(wǎng)絡(luò)

重啟一次系統(tǒng)生效?

每個虛擬機執(zhí)行命令

ping hadoop01 ping hadoop02 ping hadoop03

正常的話,應(yīng)該能ping通 。如果不能ping通,重新設(shè)置NAT網(wǎng)絡(luò)。

?

(7)配置DNS服務(wù)器(虛擬機能上網(wǎng)忽略這個步驟)

如果不能上網(wǎng),需要修改/etc/resolv.conf文件,配置DNS服務(wù)器

執(zhí)行命令

sudo ?gedit ? /etc/resolv.conf

修改文件添加如下配置

nameserver ?8.8.8.8 ?8.8.4.4 ? nameserver ?124.172.174.13

?

(8)配置ssh免密碼登錄

配置ssh免密碼登錄是讓各節(jié)點能自動通過安全認證,不影響正常通訊。

1)安裝SSH(已安裝的忽略)

安裝ssh有兩種方式:

A.在ubuntu上在線安裝

執(zhí)行命令

sudo ?apt-get ?install ?ssh sudo ?apt-get ?update

B.離線安裝

在網(wǎng)上下載離線包,拷貝到ubuntu中按照離線包中的安裝說明在本地進行安裝

2)配置ssh的實現(xiàn)

配置ssh的實現(xiàn)思路:

在每臺機子上都使用ssh-keygen生成public key,private key 所有機子的public key都拷到一臺機子如hadoop01上

在hadoop01上生成一個授權(quán)key文件authorized_keys 最后把authorized_keys拷給所有集群中的機子,就能保證無密碼登錄

1、在所有虛擬機上,在當前用戶目錄下生成公鑰、私鑰對

執(zhí)行命令

cd ?/home/mk ? ? ? ssh-keygen ?-t ?rsa ?-P ''

2、導(dǎo)入公鑰

執(zhí)行hadoop01命令

cat ?.ssh/id_rsa.pub ?> ?.ssh/authorized_keys

執(zhí)行完以后,可以在本機上測試下,用ssh連接自己

執(zhí)行命令

ssh hadoop01 #成功登陸則退出 exit

如果提示要輸入密碼, 查看authorized_keys文件權(quán)限, 如果是屬于其他用戶的, 需要修改該文件給其他用戶權(quán)限

執(zhí)行命令

chmod ?644 ?.ssh/authorized_keys

修改文件權(quán)限,然后再測試下

ssh hadoop01

如果不需要輸入密碼,就連接成功,表示ok,一臺機器已經(jīng)搞定了。

?

tip:出現(xiàn)問題嘗試解決

請先檢查SSH服務(wù)是否啟動,如果沒啟動,請啟動!

如果沒有.ssh目錄則創(chuàng)建一個:

執(zhí)行命令

cd??/home/mk mkdir?? .ssh

如無權(quán)限,使用命令修改要操作文件夾的owner為當前用戶:

執(zhí)行命令

sudo ?chown ?-R ?mk? /home/mk

3、在其它機器上生成公鑰、密鑰,并將公鑰文件復(fù)制到hadoop01

執(zhí)行命令:

#在hadoop0x上: scp ?.ssh/id_rsa.pub ? mk@hadoop01:/home/mk/id_rsa_1.pub#在slave2上: scp ?.ssh/id_rsa.pub ?mk@hadoop01:/home/mk/id_rsa_2.pub

hadoop01中,查看下/home/mk目錄,應(yīng)該有二個新文件id_rsa_1.pub、id_rsa_2.pub 在hadoop01上,導(dǎo)入這二個公鑰

執(zhí)行命令
?

cat id_rsa_1.pub >> .ssh/authorized_keys cat id_rsa_2.pub >> .ssh/authorized_keys

這樣,hadoop01這臺機器上,就有所有3臺機器的公鑰了。

4、將hadoop01上的“最全”公鑰,復(fù)制到其它機器

在hadoop01上 執(zhí)行命令

scp .ssh/authorized_keys ?mk@hadoop02:/home/mk/.ssh/authorized_keys scp .ssh/authorized_keys ?mk@hadoop02:/home/mk/.ssh/authorized_keys

修改其它機器上authorized_keys文件的權(quán)限 hadoop02以及hadoop03機器上,均執(zhí)行命令

chmod ?600 ?.ssh/authorized_keys

5、驗證

在每個虛擬機上,均用命令 ?ssh+其它機器的hostname 都能正常無密碼連接成功 執(zhí)行命令

ssh ?hadoop01 ssh ?hadoop02 ssh ?hadoop03

6、SSH免密碼設(shè)置失敗解決
A.權(quán)限問題
.ssh目錄,以及/home/當前用戶 需要700權(quán)限,參考以下操作調(diào)整

sudo ? chmod ? 777 ? ~/.ssh sudo ?chmod 700 ?/home/當前用戶

.ssh目錄下的authorized_keys文件需要600或644權(quán)限,參考以下操作調(diào)整

sudo chmod ? 644 ? ~/.ssh/authorized_keys

B.StrictModes問題

sudo gedit /etc/ssh/sshd_config #找到 #StrictModes yes #改成 StrictModes no

如果還不行,可以用ssh -vvv 目標機器ip 查看詳情

?

三、配置hadoop集群

一共有7個文件要修改:
hadoop-2.6.0/etc/hadoop/hadoop-env.sh
hadoop-2.6.0/etc/hadoop/yarn-env.sh
hadoop-2.6.0/etc/hadoop/core-site.xml
hadoop-2.6.0/etc/hadoop/hdfs-site.xml
hadoop-2.6.0/etc/hadoop/mapred-site.xml
hadoop-2.6.0/etc/hadoop/yarn-site.xml
hadoop-2.6.0/etc/hadoop/slaves
執(zhí)行命令

cd /home/mk/soft/hadoop-2.6.0

(1) hadoop-env.sh 、yarn-env.sh

這二個文件主要是修改JAVA_HOME改成實際本機jdk所在目錄位置

執(zhí)行命令

gedit ?etc/hadoop/hadoop-env.sh

gedit ?etc/hadoop/yarn-env.sh

打開文件找到下面這行的位置,改成(jdk目錄位置,大家根據(jù)實際情況修改)

export JAVA_HOME=/home/mk/soft/jdk1.7.0_80

在 hadoop-env.sh中加上這句:

export HADOOP_PREFIX=/home/mk/soft/hadoop-2.6.0

(2)core-site.xml

?參考下面的內(nèi)容修改:

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop01:9000</value> ? ? ??</property><property><name>hadoop.tmp.dir</name><value>/home/mk/tmp</value></property>? </configuration>?


注:/home/mk/tmp 目錄如不存在,則先mkdir手動創(chuàng)建
core-site.xml的完整參數(shù)請參考?
http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/core-default.xml
(3)hdfs-site.xml

參考下面的內(nèi)容修改:

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>dfs.datanode.ipc.address</name><value>0.0.0.0:50020</value></property><property><name>dfs.datanode.http.address</name><value>0.0.0.0:50075</value></property> ?<property><name>dfs.namenode.name.dir</name><value>file:/home/mk/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/mk/data/datanode</value></property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop02:9001</value></property> ? ?<property><name>dfs.replication</name><value>1</value></property><property>?<name>dfs.permissions</name>?<value>false</value>?</property></configuration>

hdfs-site.xml的完整參數(shù)請參考
http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

(4)mapred-site.xml

參考下面的內(nèi)容修改:

<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop01:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop01:19888</value></property> </configuration>

mapred-site.xml的完整參數(shù)請參考 http://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

(5)yarn-site.xml

<?xml version="1.0"?> <configuration>?<property>?<name>yarn.nodemanager.aux-services</name>?<value>mapreduce_shuffle</value>?</property>?<property>?<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>?<value>org.apache.hadoop.mapred.ShuffleHandler</value>?</property>?<property><name>yarn.resourcemanager.scheduler.address</name>?<value>hadoop01:8030</value>?</property>?<property>?<name>yarn.resourcemanager.resource-tracker.address</name>?<value>hadoop01:8025</value>?</property><property>?<name>yarn.resourcemanager.address</name><value>hadoop01:8040</value></property>? </configuration>

yarn-site.xml的完整參數(shù)請參考
http://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

(6)slaves

執(zhí)行命令

gedit slaves

編輯該文件,輸入

hadoop02 hadoop03

這樣只有hadoop02,hadoop03上有datanode進程。

hadoop 1.x與2.x相比, 1.x中的很多參數(shù)已經(jīng)被標識為過時,具體可參考 http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/DeprecatedProperties.html

(7)修改/etc/profile設(shè)置環(huán)境變量

執(zhí)行命令

sudo gedit /etc/profile

打開/etc/profile,添加hadoop配置內(nèi)容。注意CLASSPATH,PATH是在原來的配置項上添加hadoop的包路徑

export HADOOP_HOME=/home/mk/soft/hadoop-2.6.0 export ?CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.0.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

使profile文件修改配置生效

source /etc/profile

(8)分發(fā)到集群的其它機器

把hadoop-2.6.0文件夾連同修改后的配置文件,通過scp拷貝到其它2臺機器上。

執(zhí)行命令

scp -r /home/mk/soft/hadoop-2.6.0/? mk@hadoop02:/home/mk/soft/hadoop-2.6.0 scp -r /home/mk/soft/hadoop-2.6.0/? mk@hadoop03:/home/mk/soft/hadoop-2.6.0

hadoop02、hadoop03上的hadoop臨時目錄(tmp)及數(shù)據(jù)目錄(data),仍然要先手動創(chuàng)建。

(9)測試hadoop配置

在hadoop01上啟用 NameNode測試
執(zhí)行命令

hdfs namenode -format?

先格式化
15/02/12 21:29:53 INFO namenode.FSImage: Allocated new BlockPoolId: BP-85825581-192.168.187.102-1423747793784
15/02/12 21:29:53 INFO common.Storage: Storage directory /home/hadoop/tmp/dfs/name has been successfully formatted.
等看到執(zhí)行信息有has been successfully formatted表示格式化ok

?

四、啟動hadoop集群

(1)啟動HDFS

執(zhí)行命令

HADOOP_HOME/sbin/start-dfs.sh

啟動完成后,輸入jps查看進程

執(zhí)行命令

jps

2283? NameNode

如果看到上面NameNode進程,表示hadoop01節(jié)點成功

(2)啟動yarn

執(zhí)行命令

start-yarn.sh

jps

4363? ResourceManager

2283? NameNode

如果看到上面2個進程,表示 yarn啟動完成。

(3)停止

執(zhí)行命令

stop-dfs.sh stop-yarn.sh

保存退出停掉剛才啟動的服務(wù)

?

五、測試Hadoop服務(wù)

(1)hadoop01節(jié)點上,重新啟動
執(zhí)行命令

start-dfs.sh start-yarn.sh

hadoop01節(jié)點上有幾下2個進程:
3421 ResourceManager
3412 NameNode

hadoop02上有幾下3個進程:

3214 SecondaryNameNode
3243 DataNode
3249 NodeManager

hadoop03上有幾下2個進程:
2324 DataNode
2342 NodeManager

(2)web界面檢查hadoop

hdfs管理界面 ? ?http://hadoop01:50070/
yarn的管理界面不再是原來的50030端口而是8088 ?http://hadoop01:8088/?
?
(3)查看hadoop狀態(tài)
hdfs dfsadmin -report 查看hdfs的狀態(tài)報告
yarn ?node -list ? 查看yarn的基本信息

?

六、其他問題

1.若namenode上的core-site.xml中的fs.defaultFS缺失,則啟動時會報錯。

2.若各機器上的yarn-site.xml中的yarn.resourcemanager.resource-tracker.address缺失,
? ? 雖然resourcemanager與nodemanager進程能夠正常啟動,但是在執(zhí)行yarn node -list會出現(xiàn)node數(shù)量為0的情況。
?
2.若各機器上的yarn-site.xml中的yarn.resourcemanager.scheduler.address或yarn.resourcemanager.address缺失,則在運行job時,
? ? 會卡在INFO mapreduce.Job: Job job_1422695884569_0001 running in uber mode : false
?

七、使用hadoop集群運行例子

同樣的例子比單機模式時間長

(1)運行自帶mapreduce例子grep
執(zhí)行命令

hadoop fs -mkdir /input hadoop fs -put $HADOOP_HOME/etc/hadoop/*.xml /input hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /input /output 'dfs[a-z.]+' hadoop fs -get /output /home/hadoop/output

?查看結(jié)果

cat output/*

1 dfsadmin ?
得到和單機一樣的結(jié)果,'dfs'只出現(xiàn)一次

(2)運行自帶mapreduce例子wordcount
words.txt?
hello liuchengwu
hello liulao
hello dora
hello liu
hello hadoop
文件拷入/words.txt下
?
執(zhí)行命令

hadoop fs -put /hpme/mk/words.txt /words.txt hadoop ?jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount ? /words.txt /count1 hadoop fs -cat /count1/*


??參考文檔:Hadoop MapReduce Next Generation - Cluster Setup
?

?

總結(jié)

以上是生活随笔為你收集整理的Hadoop入门(二)集群安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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