hadoop2 3兩台機子集群

2021-09-02 03:24:58 字數 4810 閱讀 6972

1、準備工作

兩台主機:

a 192.168.1.22 名字myserver1 配置為namenode

b 192.168.1.23 名字myserver2 配置為datanode

需要:每台機子有乙個單獨的名字

互相可以ping通對方和自己的名字

每台機器上執行ping ,不能返回127.0.0.1,返回本機ip才可以:

ping myserver1

ping myserver2

檢視和修改機器名字

#檢視主機名

hostname

#修改機器名字【機器重啟完失效】

hostname myserver1

#修改永久生效

vi /etc/sysconfig/network

hostname=myserver1

修改ip和主機對映

#檢視本機ip

ifconfig

192.168.1.22

#ping 主機名

ping myserver

#若返回127.0.0.1,需作ip對映

vi /etc/hosts

192.168.1.22 myserver1

192.168.1.23 myserver2

ping myserver

192.168.1.22

2、兩台機器新增hadoop組和賬號,配免登入ssh

#兩台機器上執行

groupadd hadoop

useradd -g hadoop hadoop

su - hadoop

ssh-keygen -t rsa -p ""

#將a機器上的.ssh/id_rsa.pub 複製到b機器上,在b機器上使用hadoop賬號執行

#a為namenode節點,b為datanode節點,a需要免登入到b上

cat id_rsa.pub >> .ssh/authorized_keys

chmod 644 .ssh/authorized_keys

#在a上使用hadoop賬號登入後測試ssh登上b

su - hadoop

ssh -p 22 192.168.1.23

如果登入成功,則配置完成

3、a配置hadoop2.3為namenode

在a主機上

建立tmp目錄

mkdir tmp/hadoop

修改4個配置檔案core-site.xml、mapred-site.xml、hdfs-site.xml、yarn-site.xml

# vi etc/hadoop/core-site.xml

hadoop.tmp.dir

/xx/xx/tmp/hadoop

a base for other temporary directories.

fs.defaultfs

hdfs:本機ip:54310

vi etc/hadoop/mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.cluster.temp.dir

/xx/xx/tmp/hadoop/

mapreduce.cluster.local.dir

/xx/xx/tmp/hadoop/

vi etc/hadoop/hdfs-site.xml

dfs.replication

1dfs.permissions

false

vi etc/hadoop/yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.nodemanager.aux-services.mapreduce_shuffle.class

org.apache.hadoop.mapred.shufflehandler

yarn.resourcemanager.resource-tracker.address

192.168.1.22:8031本機ip:8031

yarn.resourcemanager.scheduler.address

192.168.1.22:8030本機ip:8030

yarn.resourcemanager.address

192.168.1.22:8032本機ip:8032

啟動測試,檢視日誌,看是否執行成功

./bin/hadoop namenode -format

./sbin/start-hdfs.sh

執行成功後,測試埠54310是否可以連上

telnet 192.168.1.22 54310

連上測表示namenode啟動成功。

關閉服務

./sbin/stop-hdfs.sh

4、配置主機b為datanode

在b主機上,解壓hadoop2.3

建立tmp目錄

mkdir tmp/hadoop

修改配置檔案與a主機配置一樣,只是resourcemanager的ip要換成namenode的,即指向a主機

即修改4個配置檔案core-site.xml、mapred-site.xml、hdfs-site.xml、yarn-site.xml

# vi etc/hadoop/core-site.xml

hadoop.tmp.dir

/xx/xx/tmp/hadoop

a base for other temporary directories.

fs.defaultfs

hdfs:namenode a主機:54310

vi etc/hadoop/mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.cluster.temp.dir

/xx/xx/tmp/hadoop/

mapreduce.cluster.local.dir

/xx/xx/tmp/hadoop/

vi etc/hadoop/hdfs-site.xml

dfs.replication

1dfs.permissions

false

vi etc/hadoop/yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.nodemanager.aux-services.mapreduce_shuffle.class

org.apache.hadoop.mapred.shufflehandler

yarn.resourcemanager.resource-tracker.address

192.168.1.22:8031namenode a主機:8031

yarn.resourcemanager.scheduler.address

192.168.1.22:8030namenode a主機:8030

yarn.resourcemanager.address

192.168.1.22:8032namenode a主機:8032

5、格式化和啟動

兩台主機上清空日誌和測試檔案

rm -fr logs/*

rm -fr tmp/hadoop/*

a主機上

格式化namenode

./bin/hadoop namenode -format

a主機上啟動

./sbin/start-dfs.sh;

./sbin/start-yarn.sh;

兩台伺服器日誌是否正常,若全都正常

訪問namenode的節點管理器:[url]

可以看到兩台主機

6、執行wordcount

上傳乙個文字檔案到hdfs裡,

#建立目錄

./bin/hadoop fs -mkdir input

#上傳檔案,可以稍大點,我上傳了乙個900m的檔案。

./bin/hadoop fs -put ./word.txt input

#執行./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.3.0.jar wordcount input/words.txt out

訪問namenode的節點管理器:[url]檢視執行狀態

[url]

/user/hadoop/output/

刪除執行結果

./bin/hadoop fs -rm -r output

兩台機器共享上網問題

一 通過adsl上網 二 無線上網 對等無線網連線設定 注意使用筆記本的使用者先把wifi的開關開啟。開機後會提示找到無線網絡卡,然後按提示安裝好無線網絡卡的驅動程式。再次重新啟動計算機,首先配置連入網際網路的計算機。進入控制面板後,按以下步驟進行。步驟1 依次開啟 網路連線 無線網路連線 屬性 雙...

兩台機器新增信任關係

在兩台機器之間建立信任關係。1,進入a機器 home user1 ssh目錄,如果沒有,執行mkdir p home user1 ssh,檢查該目錄下是否有乙個id rsa.pub檔案,如果沒有,執行ssh keygen t rsa 命令,該目錄下會生成該檔案.複製該檔案的內容 2,進入b機器 ho...

打通兩台機器的ssh功能

1,如果希望打通 a 和 b 兩台機器,則要用相同的使用者賬號打通才行,如都用tscadmin 2,如果希望從 a 機器用tscadmin賬號能拷貝b的資料 tscadmin a scp b home tscadmin filename1 filename2 則 需要在a機器上用tscadmin生成...