測試環境搭建hadoop hdfs環境,記錄如下:
一,服務器規劃:
主機名 | ip地址 | 子網掩碼 | 角色 |
---|---|---|---|
vm2 | 172.16.100.239 | 255.255.255.0 | Namenode |
vm6 | 172.16.100.128 | 255.255.255.0 | Datanode |
vm7 | 172.16.100.112 | 255.255.255.0 | Datanode/SecondaryNamenode |
操作系統版本爲CentOS Linux release 7.4.1708 (Core)
二,基礎環境配置
1,下載hadoop-2.8.5
# wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
2,配置ssh互信
vm2# ssh-keygen #一路回車即可
vm2# ssh-copy-id -i /root/.ssh/id_rsa vm6 #將公鑰傳遞到各個datanode下
vm2# ssh-copy-id -i /root/.ssh/id_rsa vm7
3,同步hosts文件
vm2# cat /etc/hosts
172.16.100.112 vm7
172.16.100.128 vm6
172.16.100.239 vm2
vm2# scp /etc/hosts vm6:/etc/
vm2# scp /etc/hosts vm7:/etc/
4,時間同步
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
所有機器crontab中增加同步時間定時任務,確保時間同步
5,關閉防火牆
# iptables -F
# iptables-save
# systemctl stop firewalld
# systemctl disable firewalld
三,安裝配置hdfs
1,安裝jdk
下載JDK,這裏使用jdk1.8版本的。下載鏈接:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我這裏提前下好了jdk,所以就直接安裝了。
# cd soft/
# tar xf jdk-8u144-linux-x64.tar.gz -C /opt/ #解壓到opt目錄下
# cd /opt/
# ln -sv jdk1.8.0_144/ jdk #創建軟鏈接
‘jdk’ -> ‘jdk1.8.0_144/’
配置環境變量,編輯/etc/profile.d/java.sh,添加如下內容:
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
運行生效:
# . /etc/profile.d/java.sh
所有機器均需此步驟。
2,解壓hadoop,修改配置
vm2# tar xf hadoop-2.8.5.tar.gz -C /opt/
vm2# mv hadoop-2.8.5.tar.gz hadoop
vm2# chown -R root.root hadoop
配置core-site.xml (配置文件目錄在/opt/hadoop/etc/hadoop/)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://vm2:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>vm7:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/hadoop/etc/hadoop/excludes</value>
</property>
</configuration>
在slaves文件中添加datanode節點
vm6
vm7
創建excludes文件,在這個文件中的主機,不會添加到集羣中。
vm2# touch excludes
將配置文件拷貝到其他datanode節點上面。
格式化hdfs
vm2# bin/hdfs namenode -format
3,啓動hdfs
vm2# cd /opt/hadoop/sbin
vm2# ./start-dfs.sh
4,測試
vm2# cd /opt/hadoop/bin
vm2# ./hdfs dfs -put /etc/fstab /
vm2# ./hdfs dfs -ls /
-rw-r--r-- 2 root supergroup 501 2018-10-17 11:56 /fstab