hadoop集羣搭建

hadoop集羣搭建

這裏的集羣只是一個單點登陸的集羣,沒有作到正真的HA高可用,只是一個namenode節點多個datanode節點html

基本思路:

  1. 先在一個節點上配置好hadoop集羣
  2. 將配置好的hadoop複製給其餘的節點機
  3. 配置ssh免密碼登陸(這裏是爲了第四步)
  4. namenode啓動整個集羣(經過ssh啓動其餘datanode節點)

我這裏準備用三個節點機做演示,使用hadoop-2.9.0版本java

  • 10.100.101.127(namenode節點,resourceManager節點)
  • 10.100.102.127(datanode節點,nodeManager節點)
  • 10.100.103.127(datanode節點,nodeManager節點)

搭建前環境準備

hadoop是java語言寫的,運行hadoop依賴jvm,須要先安裝jdk,配置環境變量JAVA_HOME,三個節點上環境和安裝目錄需一致node

[root@localhost hadoop]# echo $JAVA_HOME
/data/software/jdk1.8.0_121

開始搭建

第一步

http://hadoop.apache.org/rele...,將安裝包上傳到10.100.101.127機器上,解壓shell

# 使用secureCRT客戶端工具上傳
rz -bye
tar -zxvf hadoop-2.9.0.tar.gz

第二步

修改配置文件(6個),配置文件在$HADOOP_HOME/etc/hadoop/文件夾下apache

hadoop-env.sh

export JAVA_HOME=/data/software/jdk1.8.0_121

core-site.xml

```
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.18.113.120:9000</value>
    </property>
</configuration>
```

hdfs-site.xml

```
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
    <!-- 默認爲true,經過主機名配置,若是是經過ip配置,這裏須要配置false -->
        <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
        <value>false</value>
    </property>
</configuration>
```

yarn-site.xml

```
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>10.100.101.127</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
```

mapred-site.xml

```
# 這個配置文件默認沒有,可是有個模板能夠參考
[root@localhost hadoop]# cp mapred-site.xml.template mapred-site.xml
```
```
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
```

slaves

這裏配置的是datanode節點,一個節點佔一行,hadoop將這個文件改爲了`workers`

```
10.100.101.127
10.100.102.127
10.100.103.127
```

第三步

配置ssh免登陸ssh

經過namenode自動啓動datanote,因此要配置namenode經過ssh鏈接datanode不須要密碼,若是namenode節點同時擔任一個datanode節點,那麼也要配置namenode在ssh本身的時候也要免密碼登陸jvm

# 一路回車
ssh-keygen
ssh-copy-id 10.100.102.127
ssh-copy-id 10.100.103.127
ssh-copy-id 10.100.101.127

第四步

複製文件給其餘節點,啓動集羣工具

# 把配置好的hadoop給其餘兩個節點各複製一份,注意jdk環境要一致
scp -r hadoop-2.9.0 10.100.102.127:///home/
scp -r hadoop-2.9.0 10.100.103.127:///home/
# 首次啓動須要先在 Master 節點執行 NameNode 的格式化,以後的啓動不須要再去進行:
bin/hdfs namenode -format
# 啓動dfs Default HTTP port is 50070
sbin/start-dfs.sh
# 啓動yarn Default HTTP port is 8088
sbin/start-yarn.sh
# 啓動jobhistory Default HTTP port is 19888.
sbin/mr-jobhistory-daemon.sh start historyserve
# 經過命令 hdfs dfsadmin -report 查看 DataNode 是否正常啓動
bin/hdfs dfsadmin -report
...
Live datanodes (3):
...

查看進程oop

# namenode上的進程數10.100.101.127
# jps
24496 DataNode
25107 NodeManager
24358 NameNode
24998 ResourceManager
25494 JobHistoryServer
24679 SecondaryNameNode
25591 Jps
22442 Bootstrap

# datanode上的進程數10.100.102.127/10.100.103.127
# jps
24657 Jps
24338 DataNode
24518 NodeManager
23342 Bootstrap

關閉集羣一樣也是在Master節點上執行code

$stop-yarn.sh
$stop-dfs.sh
$mr-jobhistory-daemon.sh stop historyserver

參考文獻:

相關文章
相關標籤/搜索