• hadoop 完全分布式集群搭建


    1、在伪分布式基础上搭建,伪分布式搭建参见VM上Hadoop3.1伪分布式模式搭建

    2、虚拟机准备,本次集群采用2.8.3版本与3.X版本差别不大,端口号所有差别

    192.168.44.10 vmhome10.com
    192.168.44.11 vmhome11.com
    192.168.44.12 vmhome12.com

    3、关闭防火墙,因为需要打开的端口太多,测试的环境,为了避免干扰先关闭防火墙

    systemctl stop firewalld

    4、三台虚机之间打开ssh免密登录,账户hadoop

    ssh-keygen -t rsa 生产密钥
    
    ssh-copy-id 192.168.44.10 发布密钥

    5、配置JAVA_HOME

    在${HADOOP_HOME}/etc/hadoop目录下的三个脚本
    hadoop-env.sh 
    yarn-env.sh
    mapred-env.sh
    都需要配置JAVA_HOME变量,全路径:
    export JAVA_HOME=/home/java/jdk1.8.0_201

    6、三个节点分配职能

    vmhome10.com:NameNode,DataNode,NodeManager   #NameNode与SecondaryNameNode不能在一个节点上
    vmhome11.com:DataNode,ResourceManager,NodeManager #ResourceManager需要单独一个节点
    vmhome12.com:SecondaryNameNode,DataNode,NodeManager #DataNode可以每个节点都放一个

    7、集群配置

    7.1 core-site.xml

    <configuration>
     <property>
          <name>fs.defaultFS</name>
          <value>hdfs://vmhome10.com:9000</value>
          <description>HDFS的URI,文件系统://namenode标识:端口号</description>
       </property>
       <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/hadoop/data-2.8.3/tmp</value>
          <description>namenode上本地的hadoop临时文件夹</description>
       </property>
    </configuration>

    7.2 hdfs-site.xml

    <configuration>
      <property>
           <name>dfs.replication</name>
           <value>3</value>
           <description>副本个数,配置默认是3,应小于datanode机器数量</description>
       </property>
    
       <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop/data-2.8.3/dfs/name</value>
            <description>namenode在本地存储hdfs名字空间元数据 </description>
       </property>
    
       <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/data-2.8.3/dfs/data</value>
            <description>datanode上数据块的物理存储位置</description>
       </property>
    
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>vmhome12.com:50090</value>
            <description>指定Hadoop辅助名称节点主机配置,注意3.x后端口已经改变</description>
       </property>
    
    </configuration>

    7.3 yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
      </property>
    
      <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>vmhome11.com</value>
    <description>yarn的主机,运行resoucemanager</description> </property> </configuration>

    7.4 mapred-site.xml

    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    </configuration>

    7.5 历史服务配置

    mapred-site.xml

    <!-- 历史服务器端地址 -->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>vmhome12.com:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>vmhome12.com:19888</value>
    </property>

    7.6 日志聚集

    yarn-site.xml

    <!-- 日志聚集功能使能 -->
    <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>
    
    <!-- 日志保留时间设置7天 -->
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
    </property>

    8、slaves

    #集群,群起方式需要配置所有的节点在这个文件
    vmhome10.com
    vmhome11.com
    vmhome12.com

    9、复制配置到其他节点

    scp -r hadoop-2.8.3/ hadoop@vmhome11.com:/opt/hadoop/
    scp -r hadoop-2.8.3/ hadoop@vmhome12.com:/opt/hadoop/

    10、群起集群

    在NameNode的主机节点上执行(首次启动集群前,不要忘记先格式化namenode)
    start-dfs.sh
    
    在ResourceManager的主机节点上执行
    start-yarn.sh
    
    注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。

    10.2 启动日志服务

    在vmhome12.com节点上启动服务
    mr-jobhistory-daemon.sh start historyserver

    11、启停命令

    各个服务组件逐一启动/停止
    (1)分别启动/停止HDFS组件
    hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode
    (2)启动/停止YARN
    yarn-daemon.sh  start / stop  resourcemanager / nodemanager
    
    
    各个模块分开启动/停止(ssh免密)
    (1)整体启动/停止HDFS
    start-dfs.sh   /  stop-dfs.sh
    (2)整体启动/停止YARN
    start-yarn.sh  /  stop-yarn.sh

    12、web页面

    用yarn的主机节点看yarn资源分配情况
    http://192.168.44.11:8088/
    
    用Namnode的主机节点看hdfs的情况
    http://192.168.44.10:50070/

     13、停止强制检查虚拟内存

    在etc/hadoop/yarn-site.xml文件中,修改检查虚拟内存的属性为false,如下:
     
    
        <property>  
            <name>yarn.nodemanager.vmem-check-enabled</name>  
            <value>false</value>  
        </property>
    
    
    目的是在开发环境用的虚拟机一般虚拟内存都不够hadoop的缺省配置,解除强制检查,省得测试程序的时候容器被kill。

     14、NameNode的本地目录可以配置成多个,且每个目录存放内容相同,增加可靠性,如果配置在NFS上,可作为一份元数据备份。即配置的多个目录里都有相同的内容(元数据信息)。

    在hdfs-site.xml里配置name的多个dir,之间用逗号分隔
    
    <property>
        <name>dfs.namenode.name.dir</name>
    <value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
    </property>

     15、DataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本。

    在hdfs-site.xml中:
    
    <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
    </property>

    16、退役节点

    16.1 白名单方式,添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。

    在etc/hadoop/下新增一个dfs.hosts文件,文件名可自己定义,在里面添加datanode节点
    
    vi dfs.hosts
    vmhome10.com
    vmhome11.com
    vmhome12.com
    在hdfs-site.xml配置文件里新增:
    <property>
    <name>dfs.hosts</name>
    <value>/opt/hadoop/etc/hadoop/dfs.hosts</value>
    </property>
    
    然后分发到其他节点
    刷新NameNode和ResourceManager
    hdfs dfsadmin -refreshNodes
    yarn rmadmin -refreshNodes
    节点退役后,如果数据不均衡,可以用命令实现集群的再平衡数据。
    
    start-balancer.sh

    16.2 黑名单方式

    在hadoop的etc/hadoop/下新增dfs.hosts.exclude文件
    里面配置需要退役的节点:
    vi dfs.hosts.exclude
    
    vmhome9.com
    在NameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude属性
    <property>
          <name>dfs.hosts.exclude</name>
          <value>/opt/hadoop/etc/hadoop/dfs.hosts.exclude</value>
    </property>
    刷新NameNode和ResourceManager
    hdfs dfsadmin -refreshNodes
    yarn rmadmin -refreshNodes
    在Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点
    
    等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。
    
    注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。
    注意:不允许白名单和黑名单中同时出现同一个主机名称
     
  • 相关阅读:
    EF框架下的双表查询
    MVC中控制器向视图传值的四种方式
    html中常用的标签元素
    配置sql server 允许远程连接
    Sql Server中使用存储过程来实现一些时间差的改变
    Linux学习资料整理
    后缀数组求字符串最长重复子串
    static关键字
    ubuntu下搭建hadoop平台
    机器学习中的一些概念
  • 原文地址:https://www.cnblogs.com/asker009/p/11322205.html
Copyright © 2020-2023  润新知