Hadoop分布式安装部署

1分布式集群规划

ip 131 132 133
name namenode.hay.com worker1.hay.com worker2.hay.com
HDFS NameNode DataNode DataNode
SecondaryNamenode
YARN ResourceManager NodeManager NodeManager
MR JobHistoryServer

2 配置

2.1 机器hostname及IP,以机器131为例

  • 关闭防火墙
sudo systemctl stop firewalld.service
  • 修改hostname,编辑 /etc/hostname
namenode.hay.com
  • 修改IP,编辑 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=namenode.hay.com
GATEWAY=192.168.176.2

编辑 /etc/sysconfig/network-scripts/ifcfg-ens33

#BOOTPROTO=dhcp
IPADDR=192.168.176.131
DNS1=192.168.176.2

其他两台机器按照上面步骤配置

  • 主机名与IP地址映射,编辑 /etc/hosts
192.168.176.131 namenode.hay.com namenode
192.168.176.132 worker1.hay.com worker1
192.168.176.133 worker2.hay.com worker2

2.2 hadoop配置

  • 配置namenode,编辑 etc/hadoop/core-site.xml
    
        hadoop.tmp.dir
        /opt/module/hadoop-3.1.2/data/tmp/hadoop-${user.name}
        A base for other temporary directories.
    
  
    fs.defaultFS
    hdfs://namenode.hay.com:8020
  
  • 配置secondarynamenode,编辑 etc/hadoop/hdfs-site.xml
    
        dfs.replication
        1
    
    
        dfs.namenode.secondary.http-address
        worker2.hay.com:9868
    
    
        dfs.permissions.enabled
        true
    
  • 配置datanode和NodeManager, 编辑 etc/hadoop/workers
worker1.hay.com
worker2.hay.com
  • 配置ResourceManager,编辑 etc/yarn-site.xml
    
        yarn.resourcemanager.hostname
        namenode.hay.com
    

        
               yarn.log-aggregation-enable
               true
        

        
               yarn.log-aggregation.retain-seconds
               604800
         
  • 配置JobHistoryServer,编辑 etc/mapred-site.xml
        
               mapreduce.framework.name
                yarn
        
    
        mapreduce.jobhistory.address
        namenode.hay.com:10020
    
    
        mapreduce.jobhistory.webapp.address
        namenode.hay.com:19888
    
  • 复制配置到另外两台机器
scp -rp etc/hadoop/* [email protected]:/opt/module/hadoop-3.1.2/etc/hadoop/
scp -rp etc/hadoop/* [email protected]:/opt/module/hadoop-3.1.2/etc/hadoop/
  • 格式化namenode
bin/hdfs namenode -format

2.3 启动HDFS组件

方法一:
在namenode主机启动namenode

bin/hdfs --daemon start namenode

在各个worker主机启动datanode

 bin/hdfs --daemon start datanode

在worker2主机启动secondarynamenode

bin/hdfs --daemon start secondarynamenode

方法二:

  • 配置ssh无密登陆
    在namenode主机中执行
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

按Enter默认选项,生成公私钥对。

  • 复制公钥到各个主机,包括当前主机
ssh-copy-id -i ~/.ssh/id_rsa.pub hay@主机名
  • 启动所有主机上hdfs组件,在namenode主机上执行
sbin/start-dfs.sh
  • 查看namenode状态
    http://namenode.hay.com:9870

2.4 启动yarn组件

方法一:

  • 在namenode上启动ResourceManager
bin/yarn --daemon start resourcemanager
  • 在各个worker主机上启动nodemanager
bin/yarn --daemon start nodemanager

方法二:
在namenode配置ssh无密登陆,包括当前主机

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub hay@主机名

在配置了workers和ssh免密登陆的情况下,在namenode主机使用启动yarn组件

sbin/start-yarn.sh
  • web UI
    http://namenode.hay.com:8088

2.5 启动historyserver

  • 在namenode主机上启动JobHistoryServer
bin/mapred --daemon start historyserver
  • web UI
    http://namenode.hay.com:19888

3 运行实例

3.1 在HDFS上创建用户

bin/hdfs dfs -mkdir -p /user/hay

3.2 输入文件

bin/hdfs dfs -mkdir -p mr/test1
bin/hdfs dfs -put etc/hadoop/ mr/test1/input

3.3 运行

bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar grep mr/test1/input mr/test1/output 'dfs[ a-z.]+'

4 关闭

4.1 关闭mapred

bin/mapred --daemon stop historyserver

4.2关闭yarn

方法一

  • 在worker1上关闭resourcemanager
bin/yarn --daemon stop resourcemanager
  • 在各个worker上关闭nodemanager
bin/yarn --daemon stop nodemanager

方法二
在配置了worker和ssh免密登陆后,在worker1执行

sbin/stop-yarn.sh

即可关闭所有的nodemanager和resourcemanager

4.3关闭HDFS

方法一

  • 关闭namenode
bin/hdfs --daemon stop namenode
  • 在各个worker上关闭datanode
bin/hdfs --daemon stop datanode

方法二
在配置了worker和ssh免密登陆后,在namenode主机上执行

sbin/stop-dfs.sh

你可能感兴趣的:(Hadoop分布式安装部署)