大綱
- 機器環境及SSH預處理
- hadoop安裝部署
〇、Hadoop下載地址
採用apache官網下載地址進行下載
apache索引目錄 Index of /dist
此處使用了 hadoop-3.1.2.tar.gz
一、分配機器環境
共3臺機器
172.23.7.9
172.23.7.10
172.23.7.12
在每臺機器使用hostname命令,查看機器命名
在每臺機器上hosts配置文件
vim /etc/hosts
二、SSH配置
- 1 創建ssh,或者使用已有的ssh
創建ssh命令
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
- 2 將其配置爲無密碼登錄
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
- 3 修改/etc/ssh/sshd_config 文件
需要修改的 如果有註釋 就打開註釋
RSAAuthentication yes
PubkeyAuthentication yes #這兩項爲打開公鑰模式
AuthorizedKeysFile .ssh/authorized_keys #配置公鑰記錄文件
PasswordAuthentication yes #打開密碼驗證模式
- 4 測試
ssh [hostname]
- 問題:
若出現如下問題
ssh_exchange_identification: read: Connection reset by peer
解決方案:
# root權限
vim /etc/hosts.allow
# 追加
sshd: 172.23.*
# 重啓ssh
service sshd restart
三、分佈式配置部署
選取172.23.7.9 爲namenode,剩餘兩個節點爲datanode
- 1 修改hadoop-env.sh
路徑: ~/hadoop-3.1.2/sbin/hadoop-env.sh
#jdk絕對路徑環境 因爲要遠程調用 ${java_home}找不到變量
export JAVA_HOME=/usr/java/jdk1.8.0_141
- 2 修改core-site.xml
路徑:~/hadoop-3.1.2/etc/hadoop/core-site.xml
<configuration>
<!-- 修改defaultFS爲hadoop1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://[namenode機器hostname]:9000</value>
</property>
<!-- 修改了臨時文件存放位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apache/hadoop/tmp</value>
</property>
</configuration>
- 3 修改hdfs-site.xml
路徑:~/hadoop-3.1.2/etc/hadoop/hdfs-site.xml
<configuration>
<!-- 將備份數修改爲3,小於等於當前datanode數目即可-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 將secondary namenode改爲hadoop2-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>[一臺非namenode機器hostname]:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
- 4 修改yarn-site.xml
路徑:~/hadoop-3.1.2/etc/hadoop/yarn-site.xml
<configuration>
<!-- 添加了yarn.resourcemanager.hostname 屬性-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 添加了yarn.nodemanager.auxservices.mapreduce.shuffle.class屬性-->
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
- 5 修改workers 配置
路徑:~/hadoop-3.1.2/etc/hadoop/workers
[datanode1即172.23.7.10 的hostname]
[datanode1即172.23.7.12 的hostname]
其他節點配置相同
啓動
- 1 namenode上格式化
路徑:~/hadoop-3.1.2/bin
./hdfs namenode -format
如出現以下異常
java.lang.UnsupportedClassVersionError
檢查jdk版本,並配置對應版本
J2SE 8 = 52 (0x34 hex),
J2SE 7 = 51 (0x33 hex),
J2SE 6.0 = 50 (0x32 hex),
J2SE 5.0 = 49 (0x31 hex),
JDK 1.4 = 48 (0x30 hex),
JDK 1.3 = 47 (0x2F hex),
JDK 1.2 = 46 (0x2E hex),
JDK 1.1 = 45 (0x2D hex).
- 2 啓動集羣和yarn
路徑:~/hadoop-3.1.2/sbin
./start-dfs.sh
./start-yarn.sh
- 3 測試
3.1 每個節點查看進程:
jps
3.2 登錄管理頁面
http://[namenode的IP]:9870