1,准備工作
1,部署CentOS 7.0(64位)環境;需配置靜態IP地址。
1),設置虛擬機網絡。
首先打開本機的”打開網絡和共享中心”:
選擇打開”本地連接”,並點擊”屬性”,勾選”允許其他網絡用戶通過此計算機的Internet連接來連接”,從下拉框中選擇”VMware Network Adapter VMnet8”:
虛擬機菜單->編輯->虛擬網絡編輯:選擇WMnet8 (NAT模式)
設置靜態IP地址,進入CentOS系統,打開”系統工具”->”設置”->”網絡”,選擇”手動”,輸入IP地址,地址和網關參考上圖的子網IP及網關設置。設置完畢之後,再開啟就可以發現網絡IP地址已經變為設置後的地址。
測試網絡是否連通:
2),設置主機名。
在root下,打開/etc/hostname
改為namenode,保存。
2,Hadoop -2.6.0
下載,下載地址:
http://apache.fayea.com/hadoop/common/hadoop-2.6.0/2,安裝Java
1),搜索jdk開發環境
yum search jdk
2),安裝jdk
yum install java-1.8.0-openjdk-devel.x86_64
3),檢查是否安裝成功
java -version
可以看見當前的jdk版本已經是”1.8.0_91”。表示已經安裝成功。
3,安裝Hadoop
1),將第一步下載的hadoop版本安裝包上傳至
/usr/local/ 文件夾,並解壓。
cd /usr/local
gunzip hadoop-2.6.0.tar.gz
tar -xvf hadoop-2.6.0.tar
2),配置環境
打開 /etc/profile
在文件的最後位置,追加上如下配置:
#set java environment
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
3),激活配置
source /etc/profile
4),創建hdfs相關目錄
mkdir /home/hadoop/hd_space/tmp -p
mkdir /home/hadoop/hd_space/hdfs/name -p
mkdir /home/hadoop/hd_space/hdfs/data -p
mkdir /home/hadoop/hd_space/mapred/local -p
mkdir -p /home/hadoop/hd_space/mapred/system
chown -R hadoop:hadoop /home/hadoop/hd_space/
chown -R hadoop:hadoop /usr/local/hadoop-2.6.0
4,虛擬機克隆
1),選擇菜單欄中的“虛擬機->管理->克隆”。選擇”創建完整克隆”。
2),更改虛擬機的網卡
打開克隆虛擬機,“網絡適配器”->“高級”如下圖:
MAC
datanode1:
HWADDR=00:0C:29:10:EC:78
datanode2:
HWADDR=00:0C:29:10:EC:79
3),更改主機名主機ip配置
分別用root登錄克隆的兩台機器,打開並編輯/etc/hostname,分別輸入 datanode1和datanode2。
打開/etc/sysconfig/network-scripts/ifcfg-eno16777756,修改相關內容:
datanode1:
HWADDR=00:0C:29:10:EC:78 IPADDR=192.168.128.111
datanode2:
HWADDR=00:0C:29:10:EC:79 IPADDR=192.168.128.112
4),重啟3台虛擬機。
5,3台虛擬機建立互連
1),root登陸namenode,打開並編輯/etc/hosts,修改內容:
192.168.128.110 namenode
192.168.128.111 datanode1
192.168.128.112 datanode2
2),將修改後的文件,分別拷貝到datanode1和datanode2
在終端執行如下指令:
scp /etc/hosts
[email protected]:/etc/hosts scp /etc/hosts
[email protected]:/etc/hosts3),通過SSH建立互連
用hadoop分別登陸namenode、datanode1、datanode2。
ssh-keygen -t rsa 采用默認值3次回車。
在datanode1登錄hadoop用戶
scp /home/hadoop/.ssh/id_rsa.pub hadoop@namenode:/home/hadoop/.ssh/id_rsa.pub.datanode1
在datanode2登錄hadoop用戶
scp /home/hadoop/.ssh/id_rsa.pub hadoop@namenode:/home/hadoop/.ssh/id_rsa.pub.datanode2
在namenode登錄hadoop用戶
cd /home/hadoop/.ssh/
ll
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.datanode1 >> authorized_keys
cat id_rsa.pub.datanode2 >> authorized_keys
scp ~/.ssh/authorized_keys hadoop@datanode1:/home/hadoop/.ssh/authorized_keys
scp ~/.ssh/authorized_keys hadoop@datanode2:/home/hadoop/.ssh/authorized_keys
chmod 600 /home/hadoop/.ssh/authorized_keys
備注:無密碼登陸,需要600權限(三台機器分別執行chmod 600 /home/hadoop/.ssh/authorized_keys )。4),測試連通:
在namenode上分別執行:
ssh datanode1
ssh datanode2
在datanode1上執行ssh namenode
和 ssh datanode2
在datanode2一樣參照上述命令進行驗證。
6,Hadoop配置
修改路徑 /usr/local/hadoop-2.5.2/etc/hadoop 下的配置文件。
1),編輯hadoop-env.sh
修改JAVA_HOME並保存 ”export JAVA_HOME=/usr/lib/jvm/java”
2),編輯yarn-env.sh
修改 JAVA_HOME並保存 export JAVA_HOME=/usr/lib/jvm/java
3),編輯core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hd_space/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
4),編輯hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hd_space/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hd_space/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>datanode1:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>datanode1:50091</value>
</property>
5),編輯mapred-site.xml
<property>
<name>mapreduce.cluster.local.dir</name>
<value>/home/hadoop/hd_space/mapred/local</value>
</property>
<property>
<name>mapreduce.cluster.system.dir</name>
<value>/home/hadoop/hd_space/mapred/system</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>namenode:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>namenode:19888</value>
</property>
6),編輯yarn-site.xml
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<value>namenode</value>
</property>
<property>
<description>
the valid service name should only contain a-zA-Z0-9_ and can not start with numbers
</description>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
7),修改slaves
打開/usr/local/hadoop-2.6.0/etc/hadoop/slaves,將裡面的localhost改為datanode1和datanode2
8),修改datanode1 和
datanode2的hadoop配置
將namenode修改的配置文件,拷貝到datanode1和datanode2
scp -r /usr/local/hadoop-2.6.0/etc/hadoop hadoop@datanode1:/usr/local/hadoop-2.6.0/etc
scp -r /usr/local/hadoop-2.6.0/etc/hadoop
hadoop@datanode2:/usr/local/hadoop-2.6.0/etc7,啟動hadoop1),格式化 執行命令 hdfs namenode -format。
初次運行,首先要進行格式化(一次就夠)
2),啟動dfs及yarn
執行如下指令 start-dfs.sh
執行如下指令 start-yarn.sh
或者直接執行 start-all.sh 效果和上述兩個命令一樣。相應的對應中止命令分別為
stop-dfs.sh
stop-yarn.sh
stop-all.sh
3),前台驗證
http://192.168.128.110:50070/dfshealth.jsp 可以看到Live Nodes 個數為2
http://192.168.128.110:8088/cluster4),檢查進程
檢查進程 :
5),檢查日志文件
/usr/local/hadoop-2.6.0/logs
6),刪除日志
rm -rf /usr/local/hadoop-2.6.0/logs/*.*