zoukankan      html  css  js  c++  java
  • hadoop学习笔记(六):hadoop全分布式集群的环境搭建

    本文原创,如需转载,请注明作者以及原文链接!

    一、前期准备:

    1、jdk安装        不要用centos7自带的openJDK
    2、hostname    配置       配置位置:/etc/sysconfig/network文件
    3、hosts           配置        配置位置 : /etc/hosts
    4、date            配置       date -s "....."设置日期一致
    5、   关闭安全机制 /etc/sysconfig/selinux
    6、  关闭防火墙:firewall iptables off
    7、映射文件更改  :windows 域名映射 /etc/hosts文件

    本环境的搭建角色:主结点node01,从结点node02,、node03,、node04,第二主节点secondaryNameNode的位置:node02

    密匙文件分发到从结点

    分发命令举例:

    [root@node01 hadoop-2.6.5]# scp id_dsa.pub node02:`pwd`/node01.pub

    这些都设置好了之后才具备全分布式搭建的条件

    二、环境搭建

    节点: node01/02/03/04全分布分配方案:

                           NN               SNN                 DN
    NODE01          *
    NODE02                                 *                     *
    NODE03                                                        *
    NODE04                                                         *


    节点状态:
    node01: 伪分布
    node02/03/04 : ip配置完成
    建立各节点通讯(hosts)  可以通过Ping  结点主机的别名来检查是否结点之间能够通讯成功

    设置时间同步:date -s “xxxx-x-xx xx:xx:xx”


    秘钥分发:
    在每个节点上登录一下自己:产生.ssh目录                                                ------------------------具体的从新登陆代码:
    从node01向node02/node03/node04分发公钥 (公钥的名称要变化)
    scp id_dsa.pub node03:`pwd`/node06.pub                                             ---------------------》要明白这里的主结点分发给从结点的公钥文件的名称为啥要变化,是为了如果有其他的结                                                                                                                                               点  也想要管理这个几点的话, 也会发公钥文件给从结点,如果不改名的话,第二个管理结                                                                                                                                               点的分发的公钥文件会覆盖掉第一个下发的公钥文件。

    各节点把node01的公钥追加到认证文件里:
    cat ~/node06.pub >> ~/.ssh/authorized_keys                                             ----------------------》这样之后才会能够实现主结点到从结点的免密登录


    node02/node03/node04安装jdk环境,node01分发profile给其他节点,并重读配置文件   :通过source 或者.  /etc/profile的形式

    分发hadoop部署程序2.6.5 到其他节点


    copy node06 下的 hadoop 为 hadoop-local (管理脚本只会读取hadoop目录)

    [root@node06 etc]# cp -r hadoop/ hadoop-pesudo                        --------------->作为分布式集群的备份目录,如果以后想要启动伪分布式集群的话,则可以将这个备份文件改名为hadoop
    配置core-site.xml                                                                           ---------------------》需要配置的是产生的dataNode、DataNode等结点的数据文件,如fsimage文件的位置
    配置hdfs-site.xml                                                                           ---------------------》配置从结点的个数和,第二主结点的位置,如可以将第二个主结点放到其他的某个从结点的位置                                                                                                             之上
    配置slaves

    分发sxt目录以及他一下的所有的内容及目录 到其他07,08,09节点 ----------------》这样做的好处就是,不用在其他的每个从结点上再去一一的建立一个相同的目录了

    格式化集群:hdfs namenode -format                                               ----------------->注意这里格式化完毕之后仅仅是产生一个头结点的数据文件,其他的服务器上 的从结点的数据文                                                                                                                                      件 和存放数据文件的目录是集群启动的时候才会产生的

    至此集群搭建完毕!!!

    三、集群启动

    启动集群:start-dfs.sh


    Jps 查看各节点进程启动情况

    之后如果想要浏览器访问集群的话,需要查询集群和浏览器交互的端口号,一般是50070 ------------》ss -nal

    浏览器成功的访问分布式存储系统

    四、文件上传

    • 上传文件到分布式存储系统

    先创建一个用于上传的1.4M大小的文件

    [root@node01 hadoop-2.6.5]# for i in `seq 100000`;do echo "hello sxt $i"  >> test.txt;done

    效果

    具体的对于上传的文件的分割的大小可以做规定,一般的是默认128M每一块,我们可以通过以下的命令来设置

    命令意义:将test.txt文件分割上传,并设置分割大小为1M,所以比如这个文件的总的大小是1.4M 的话,会分成两块

    [root@node01 software]# hdfs dfs -D dfs.blocksize=1048576 -put test.txt

    上传之后的效果

    1)从浏览器上看

    块1的存储效果

    块2的存储效果

     

    2)从xshell中看

    输入命令

    所在目录:存储有数据块的从结点的/var/sxt/hadoop/full/dfs/data/current/BP-1760625074-192.168.27.102-1569216123348/current路径下的文件,如下图

    打开底层存储的文本文件test.txt 的blk_107341825的效果

    block0

    block1

    集群停止:

    [root@node01 dfs]# stop-dfs.sh

  • 相关阅读:
    朗志轻量级项目管理解决方案-RBAC角色权限模块介绍
    关于业务规则层、业务实体层、业务外观层、模型层的作用很不清楚,殷切期望解答
    已有类实例,现在想拥有另一个相同状态的实例,除了反序列化还有别的办法吗?
    签名工具
    请教一个winform程序设计上的问题
    在使用WeifenLuo Suite时遇到的问题,自己记录一下,备忘
    解读C#正则表达式
    [导入]jbuilder 2006开发struts+sqlserver2K准备工作
    如何用设计模式变相实现类的多继承?
    WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/11572589.html
Copyright © 2011-2022 走看看