• 已删除用户
Administrator
发布于 2018-09-04 / 78 阅读
0

新手Hadoop3.1.1全分布式集群安装教程

目的

帮助新手快速完成Hadoop分布式安装,使用新手对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会

平台环境

VMware® Workstation 14 Pro、CentOS7

所需软件

JDK1.8.0_181、ssh、pdsh

Hadoop集群的准备工作

本人用3台虚拟机来安装,分别为
master(主),IP:192.168.1.190
slave1(从1),IP:192.168.1.191
slave2(从2),IP:192.168.1.192

系统安装(3台centos7系统虚拟机)

先在1台虚拟机上安装centos系统,然后再通过克隆出来另外2台,每台虚拟机内存最少要1G,不然可能有点卡,3台虚拟机上都需要安装前面的软件,每台虚拟机上都要配置静态IP,和主机名(hostname)

  1. 设置虚拟机的连接模式
    为了模拟真实主机,虚拟机使用了桥接模式连接网络,和我们的电脑主机共同在一个网络段,方便通过ssh连接管理,设置方法如下:
    点VMware菜单中的“编辑”-->"虚拟网络编辑器"



    桥接到中选择电脑的网卡,保存

  2. 配置静态IP

    先通过下面命令查看当前网卡名称:

    [hadoop@master hadoop-3.1.1]$ ifconfig -a
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.190  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::6ea5:171b:e3af:8b2  prefixlen 64  scopeid 0x20
            ether 00:0c:29:2f:19:b8  txqueuelen 1000  (Ethernet)
            RX packets 106268  bytes 26026510 (24.8 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 54369  bytes 9182638 (8.7 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    en开头的就是网卡,再输入面命令修改ip

    vi /etc/sysconfig/network-scripts/ifcfg-ens33

    配置如下,请修改有注释部分即可:

    #网络类型,以太网
    TYPE=Ethernet
    #静态IP
    BOOTPROTO=static
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=9dfcdfb3-4b4b-49cd-b953-0bed580e95fc
    DEVICE=ens33
    #开机启动
    ONBOOT=yes
    IPV6_PRIVACY=no
    #IP地址,和电脑是同一网络即可
    IPADDR=192.168.1.190
    PREFIX=24
    #网关
    GATEWAY=192.168.1.1
    #DNS
    DNS1=202.96.134.133
    DNS2=202.96.128.166
    PEERDNS=no
    ZONE=public
    

  3. 修改主机名称
    输入如下命令:

    vi /etc/hostname

    把localhost改为下面内容

    master.localdomain

    需要重启系统生效
    另外两个从节点分别为 slave1.localdomain和slave2.localdomain

  4. 主机名映射ip

    编辑/etc/hosts文件,添加如下内容,需要

    192.168.1.190 master
    192.168.1.191 slave1
    192.168.1.192 slave2
  5. 软件安装

    yum install ssh
    yum install pdsh

    JDK请自行安装,并配置好JAVA_HOME,不会的请自行搜索,一般centos都会自带JDK,但是最好从官方网站下载JDK

    JDK安装请参考《CentOS7安装JDK环境》

  6. 添加hadoop用户

    adduser hadoop
    passwd hadoop
    #输入两次密码
  7. 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

免密SSH设置
免密设置是在hadoop用户下进行,需要切换hadoop用户

su - hadoop
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

3台虚拟机都执行完成后再执行下面命令

ssh-copy-id -i ~/.ssh/id_rsa.pub master
#提示Are you sure you want to continue connecting (yes/no)?时输入yes,回车
#再输入hadoop用户密码
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
#提示Are you sure you want to continue connecting (yes/no)?时输入yes,回车
#再输入hadoop用户密码
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
#提示Are you sure you want to continue connecting (yes/no)?时输入yes,回车
#再输入hadoop用户密码
chmod 0600 ~/.ssh/authorized_keys

所有虚拟机都执行一次,然后测试一下能不能不需要密码相互连接

[hadoop@master ~]$ ssh slave1
Last login: Mon Sep  3 16:22:39 2018
[hadoop@slave1 ~]$ 

已经成功从master连接到slave1,然后exit退出

分布式模式安装

下载hadoop3.1.1,链接:hadoop 3.1.1

//进入工作目录
cd /usr/local
//下载hadoop
wget http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
//解压
tar zxvf hadoop-3.1.1/hadoop-3.1.1.tar.gz
//进入hadoop根目录
cd hadoop-3.1.1

编辑 etc/hadoop/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。

# 设置JAVA_HOME,本人的目录是:/usr/local/jdk1.8.0_181
  export JAVA_HOME=/usr/local/jdk1.8.0_181

尝试如下命令:

bin/hadoop

如果jdk环境没有问题,将会显示hadoop 脚本的使用文档。

配置文件修改

  1. 修改core-site.xml文件,3个系统都必须修改该文件

    vi etc/hadoop/core-site.xml

    内容如下:

      fs.defaultFS
     
      hdfs://master:9000
     
     
      hadoop.tmp.dir
        
      /usr/local/hadoop-3.1.1/data/tmp
     
    
    

  2. 修改hdfs-site.xml文件,只需修改master节点

    vi etc/hadoop/hdfs-site.xml

    内容如下:

        
            dfs.namenode.http-address
            
            master:50070
        
        
            dfs.namenode.name.dir
            /usr/local/hadoop-3.1.1/data/name
        
        
            dfs.replication
            
            2
        
        
            dfs.datanode.data.dir
            /usr/local/hadoop-3.1.1/data/data
        
    
    

  3. 修改mapred-site.xml文件,只需修改master节点

    vi etc/hadoop/mapred-site.xml

    内容如下:

      
        mapreduce.framework.name
        yarn
      
    
    

  4. 修改workers文件,只需修改master节点

    vi etc/hadoop/workers

    内容如下,为3个机器的主机名,每个一行:

    master
    slave1
    slave2
    

  5. 修改yarn-site.xml文件,只需修改master节点

    vi etc/hadoop/yarn-site.xml

    内容如下:

      
        yarn.resourcemanager.hostname
        
        master
      
      
        yarn.nodemanager.aux-services
        mapreduce_shuffle
      
      
        yarn.nodemanager.aux-services.mapreduce.shuffle.class
        org.apache.hadoop.mapred.ShuffleHandler
      
      
        yarn.nodemanager.resource.cpu-vcores
        
        1
     
    
    
    

  6. 启动Hadoop

./sbin/start-all.sh

    输入jps查看运行结果如下表示启动成功
    master中输入jps显示结果:

[hadoop@master hadoop-3.1.1]$ jps
20224 DataNode
20771 NodeManager
20104 NameNode
20408 SecondaryNameNode
21116 Jps
20653 ResourceManager

 其它两个slave节点显示结果:

[hadoop@slave1 ~]$ jps
15312 DataNode
15425 NodeManager
15541 Jps

 在浏览器中输入http://192.168.1.190:50070,界面如下:



hadoop分布式安装完成!