美文网首页
Hadoop学习笔记三:全分布式搭建(Hadoop1.x)

Hadoop学习笔记三:全分布式搭建(Hadoop1.x)

作者: 开发者连小超 | 来源:发表于2019-11-26 14:10 被阅读0次

    本文记录学习过程,安装全分布式的Hadoop

    服务器准备

    使用VM快照克隆功能,克隆出4台网络已设置、防火墙关闭、SELINUX关闭、网卡和MAC的映射取消的机器,可参照【Linux学习笔记三:VM下配置模板机和克隆】https://www.jianshu.com/p/0310c24bda69

    全分布分配方案.png

    建立各节点通讯(hosts)

    192.168.197.31    node01
    192.168.197.32    node02
    192.168.197.33    node03
    192.168.197.34    node04
    

    设置时间同步

    date -s “xxxx-x-xx xx:xx:xx”
    

    一、JDK安装

    见【Hadoop学习笔记一:伪分布式搭建】

    二、免密登录(node01可免密登录子节点)

    目标:把node01秘钥分发给node02/node03/node04

    1.node01配置免秘钥登录
    步骤见【Hadoop学习笔记一:伪分布式搭建(第二节)】https://www.jianshu.com/p/adcc1286b21c

    2.在每个节点上登录一下自己,产生.ssh目录

    ssh localhost
    

    3.从node01向node02/node03/node04分发公钥 (公钥的名称要变化)

    scp  id_dsa.pub  node02:`pwd`/node01.pub
    

    4.各节点把node01的公钥追加到认证文件里

    cat ./node01.pub  >> ~/.ssh/authorized_keys
    

    5.node02/node03/node04安装jdk环境,node01分发profile给其他节点,并重读配置文件

    scp /etc/profile node02:/etc/
    

    三、安装Hadoop

    1.node01安装配置Hadoop

    解压安装步骤见【Hadoop学习笔记一:伪分布式搭建(第三节)】https://www.jianshu.com/p/adcc1286b21c

    与伪分布式不同的是,全分布式的配置如下

    vi core-site.xml
    
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://node01:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/var/sxt/hadoop/full</value>
        </property>
    </configuration>
    
    vi hdfs-site.xml
    
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>node02:50090</value>
        </property>
    </configuration>
    
    vi slaves
    
    node02
    node03
    node04
    

    2.node01分发hadoop部署程序到其他节点

    # copy node01 下的 hadoop 为 hadoop-local (管理脚本只会读取hadoop目录)
    cd /opt/
    scp -r sxt/ node02:`pwd`/
    

    给每个子结点服务器配置Hadoop环境变量

    vi + /etc/profile
    
    #修改环境变量
    export JAVA_HOME=/usr/java/jdk1.7.0_67
    export HADOOP_HOME=/opt/sxt/hadoop-2.6.5
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    . /etc/profile
    

    3.node01格式化HDFS

    hdfs namenode -format
    #查看生成的fsimage信息
    cd /var/sxt/hadoop/full/dfs/name/current/
    

    4.node01启动集群

    #启动集群
    start-dfs.sh
    #查看生成信息
    cd /var/sxt/hadoop/full/dfs/data/current/
    cd /var/sxt/hadoop/full/dfs/namesecondary/current/
    

    启动时候,三个角色以不同进程启动,提示如下:

    Starting namenodes on [node01]
    node01: starting namenode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-namenode-node01.out
    node03: starting datanode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-datanode-node03.out
    node04: starting datanode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-datanode-node04.out
    node02: starting datanode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-datanode-node02.out
    Starting secondary namenodes [node02]
    node02: starting secondarynamenode, logging to /opt/sxt/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-node02.out
    

    每个节点角色进程查看

    jps
    

    DataNode数据存放位置

    cd /var/sxt/hadoop/full/dfs/data/current/BP-2048660256-192.168.197.31-1574775079156/current/finalized
    

    5.浏览器查看

    ss -nal
    

    浏览器访问 http://node00:50070 (window里hosts文件要映射到192.168.197.30)

    6.日志查看和停止集群

    日志查看

    cd /opt/sxt/hadoop-2.6.5/logs
    #out是临时文件 log是最终文件
    -rw-r--r-- 1 root root 27445 Nov 26 17:36 hadoop-root-datanode-node01.log
    -rw-r--r-- 1 root root   715 Nov 26 17:13 hadoop-root-datanode-node01.out
    -rw-r--r-- 1 root root 29081 Nov 26 17:41 hadoop-root-namenode-node01.log
    -rw-r--r-- 1 root root  4908 Nov 26 17:27 hadoop-root-namenode-node01.out
    -rw-r--r-- 1 root root 19750 Nov 26 17:13 hadoop-root-secondarynamenode-node01.log
    -rw-r--r-- 1 root root   715 Nov 26 17:13 hadoop-root-secondarynamenode-node01.out
    -rw-r--r-- 1 root root     0 Nov 26 17:13 SecurityAuth-root.audit
    
    #查看日志
    tail -100 hadoop-root-datanode-node01.log
    

    停止集群

    stop-dfs.sh 
    

    7.上传文件

    文件准备

    cd ~/software
    #生成一个1.6M的文本文件
    for i in `seq 100000`;do  echo "hello sxt $i" >> test.txt;done
    

    创建目录,上传文件并设置文件block大小

    #命令查看
    hdfs dfs
    
    #创建目录
    hdfs dfs  -mkdir -p  /user/root
    #查看目录
    hdfs dfs -ls   /
    
    #上传文件
    cd ~/software/
    ls -lh ./
    
    hdfs dfs -D dfs.blocksize=1048576 -put test.txt /user/root      
    

    dfs.blocksize 属性可在官网查看默认大小 128M
    https://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

    此时可到浏览器 Browse the file system 去查看文件

    文件被切割成两个块,第一个1M,第二个0.6M


    图片.png

    注:图中Availability表示副本所在节点

    可到DataNode节点去查看Block,文件的确被按照字节切开了

    cd /var/sxt/hadoop/full/dfs/data/current/BP-2048660256-192.168.197.31-1574775079156/current/finalized/subdir0/subdir0
    

    相关文章

      网友评论

          本文标题:Hadoop学习笔记三:全分布式搭建(Hadoop1.x)

          本文链接:https://www.haomeiwen.com/subject/ohfswctx.html