所需軟件
Linux所需軟件包括:
- JavaTM1.5.x,必須安裝,建議選擇Sun公司發行的Java版本(以前安裝過)。
- ssh 必須安裝並且保證 sshd一直運行,以便用Hadoop 腳本管理遠端Hadoop守護進程。(一般默認CentOS已經安裝了OpenSSH,即使你是最小化安裝也是如此,所以不用安裝。)
爲了能夠方便複製,主要是vmware tools時靈時不靈的情況(主要是Install 的時候不方便),我這裏使用XShell。
集羣網絡配置
本文中的集羣網絡環境配置如下:
master內網IP:192.168.235.131
slave1內網IP:192.168235.132
slave2內網IP:192.168.235.133
另外主機和虛擬機Ping不通的原因如下:
https://blog.csdn.net/qqxyy99/article/details/80864862
克隆虛擬機的問題,克隆後需要先修改mac地址,再開機修改ip。否則很麻煩,別問我怎麼知道的,不然這篇文章在昨天就更了。
通過虛擬機文件複製,在VMware改名快速創建slave1和slave2後,可能會產生網卡MAC地址重複的問題,需要在VMware網卡設置中重新生成MAC,在虛擬機複製後需要更改內網網卡的IP。
集羣SSH免密登陸設置
目的:創建一個可以ssh免密登陸的集羣
- hosts文件設置
爲了不直接使用IP,可以通過設置hosts文件達到ssh slave1這樣的的效果(三個節點設置相同)
$sudo vim /etc/hosts
在文件尾部添加如下行,保存後退出:
192.168.235.131 master
192.168.235.132 slave1
192.168.235.133 slave2
- hostname修改
centos7默認的hostname是localhost,爲了方便將每個節點hostname分別修改爲master、slave1、slave2(以下以master節點爲例)。
$sudo hostnamectl set-hostname master
重啓terminal,然後查看:$hostname
- ssh設置
設置master節點和兩個slave節點之間的雙向ssh免密通信,下面以master節點ssh免密登陸slave節點設置爲例,進行ssh設置介紹(以下操作均在master機器上操作):
首先生成master的rsa密鑰:$ssh-keygen -t rsa
設置全部採用默認值進行回車
將生成的rsa追加寫入授權文件:$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
給授權文件權限:$chmod 600 ~/.ssh/authorized_keys
進行本機ssh測試:$ssh master
正常免密登陸後所有的ssh第一次都需要密碼,此後都不需要密碼
將master上的authorized_keys傳到slave1
sudo scp ~/.ssh/id_rsa.pub root@slave1:~/
登陸到slave1操作:$ssh slave1
輸入密碼登陸
$cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
如果slave上沒有這個文件夾,最好先執行一遍$ssh-keygen -t rsa
修改authorized_keys權限:$chmod 600 ~/.ssh/authorized_keys
退出slave1:$exit
進行免密ssh登陸測試:$ssh slave1
Hadoop安裝配置
目的:獲得正確配置的完全分佈式Hadoop集羣(以下操作均在master主機下操作)
安裝前三臺節點都需要需要關閉防火牆和selinux:
$sudo systemctl stop firewalld.service
$sudo systemctl disable firewalld.service
將SELinux status參數設定爲關閉狀態:
$sudo vim /usr/sbin/sestatus
SELinux status: disabled
- Hadoop安裝
首先在master節點進行hadoop安裝配置,之後使用scp傳到slave1和slave2。
下載Hadoop 二進制源碼 至master,我們這裏使用wget下載如下地址。
http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
好了,安裝後解壓。
$tar -zxvf hadoop-2.8.5.tar.gz
- Hadoop的master節點配置
配置hadoop的配置文件core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
slaves
(都在~/hadoop-2.8.5/etc/hadoop文件夾下)
$cd ~/hadoop/etc/hadoop
$vim core-site.xml
其他文件相同,以下爲配置文件內容:
1.core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/leesanghyuk/hadoop-2.8.5/hadoop/tmp</value>
</property>
</configuration>
2.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/leesanghyuk/hadoop-2.8.5/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/leesanghyuk/hadoop-2.8.5/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
</configuration>
3.mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
5.slaves
slave1
slave2
6.hadoop-env.sh
export JAVA_HOME=/home/Java/jdk1.6
- Hadoop的其他節點配置
此步驟的所有操作仍然是在master節點上操作,以master節點在slave1節點上配置爲例:
複製hadoop文件至slave1:$scp -r ~/hadoop root@slave1:~/
然後,複製到slave2。
- Hadoop環境變量配置
配置環境變量,修改vi /etc/profile
文件使其永久性生效,添加行(每個節點都需要此步操作,以master節點爲例):
#hadoop environment vars
export HADOOP_HOME=/home/leesanghyuk/hadoop-2.8.5
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
執行 命令source /etc/profile
或 執行點命令./profile
使其修改生效,執行完可通過echo $PATH
命令查看是否添加成功。
- Hadoop啓動
格式化namenode:$hadoop namenode -format
啓動hadoop:$start-all.sh
master節點查看啓動情況:$jps