测试环境搭建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/)


    
        fs.defaultFS
        hdfs://vm2:9000
    
    
        hadoop.tmp.dir
        /opt/hadoop/tmp
    
    
      dfs.namenode.name.dir
      file://${hadoop.tmp.dir}/dfs/name
    
    
      dfs.datanode.data.dir
      file://${hadoop.tmp.dir}/dfs/data
    

配置hdfs-site.xml


    
     dfs.namenode.secondary.http-address
     vm7:50090
    
     
         dfs.replication
         2
     
    
    dfs.hosts.exclude
    /opt/hadoop/etc/hadoop/excludes
    

在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