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


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

7.2 hdfs-site.xml


  
       dfs.replication
       3
       副本个数,配置默认是3,应小于datanode机器数量
   

   
        dfs.namenode.name.dir
        /opt/hadoop/data-2.8.3/dfs/name
        namenode在本地存储hdfs名字空间元数据 
   

   
        dfs.datanode.data.dir
        /opt/hadoop/data-2.8.3/dfs/data
        datanode上数据块的物理存储位置
   

    
        dfs.namenode.secondary.http-address
        vmhome12.com:50090
        指定Hadoop辅助名称节点主机配置,注意3.x后端口已经改变
   

7.3 yarn-site.xml




  
      yarn.nodemanager.aux-services
      mapreduce_shuffle
  

  
      yarn.resourcemanager.hostname
      vmhome11.com
yarn的主机,运行resoucemanager

7.4 mapred-site.xml


  
    mapreduce.framework.name
    yarn
  

7.5 历史服务配置

mapred-site.xml



mapreduce.jobhistory.address
vmhome12.com:10020



    mapreduce.jobhistory.webapp.address
    vmhome12.com:19888

7.6 日志聚集

yarn-site.xml



yarn.log-aggregation-enable
true




yarn.log-aggregation.retain-seconds
604800

 

8、slaves

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

9、复制配置到其他节点

scp -r hadoop-2.8.3/ [email protected]:/opt/hadoop/
scp -r hadoop-2.8.3/ [email protected]:/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,如下:
 

      
        yarn.nodemanager.vmem-check-enabled  
        false  
    


目的是在开发环境用的虚拟机一般虚拟内存都不够hadoop的缺省配置,解除强制检查,省得测试程序的时候容器被kill。

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

在hdfs-site.xml里配置name的多个dir,之间用逗号分隔


    dfs.namenode.name.dir
file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2

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

在hdfs-site.xml中:


        dfs.datanode.data.dir
        file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2

16、退役节点

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

在etc/hadoop/下新增一个dfs.hosts文件,文件名可自己定义,在里面添加datanode节点

vi dfs.hosts
vmhome10.com
vmhome11.com
vmhome12.com
在hdfs-site.xml配置文件里新增:

dfs.hosts
/opt/hadoop/etc/hadoop/dfs.hosts


然后分发到其他节点
刷新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属性

      dfs.hosts.exclude
      /opt/hadoop/etc/hadoop/dfs.hosts.exclude
刷新NameNode和ResourceManager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
在Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点

等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。

注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。
注意:不允许白名单和黑名单中同时出现同一个主机名称

 

 

 

转载于:https://www.cnblogs.com/asker009/p/11322205.html

你可能感兴趣的:(大数据,运维,java)