zoukankan      html  css  js  c++  java
  • 大数据学习笔记【一】:Hadoop-3.1.2完全分布式环境搭建(Windows 10)

    一、前言

      Hadoop原理架构本人就不在此赘述了,可以自行百度,本文仅介绍Hadoop-3.1.2完全分布式环境搭建(本人使用三个虚拟机搭建)。

      首先,步骤:

      ① 准备安装包和工具

      •   hadoop-3.1.2.tar.gz
      •   jdk-8u221-linux-x64.tar.gz(Linux环境下的JDK)
      •   CertOS-7-x86_64-DVD-1810.iso(CentOS镜像)
      • 工具:WinSCP(用于上传文件到虚拟机),SecureCRTP ortable(用于操作虚拟机,可复制粘贴Linux命令。不用该工具也可以,但是要纯手打命令),VMware Workstation Pro

      ② 安装虚拟机:本人使用的是VMware Workstation Pro,需要激活。(先最小化安装一个虚拟机Master,配置完Hadoop之后再克隆两个Slave)

      ③ 配置虚拟机:修改用户名,设置静态IP地址,修改host文件,关闭防火墙,安装Hadoop,安装JDK,配置系统环境,配置免密码登录(必要)。

      ④ 配置Hadoop:配置hadoop-env.sh,hdfs-site.xml,core-site.xml,mepred-site.xml,yarn-site.xml,workers文件(在Hadoop-2×中是slaves文件,用于存放从节点的主机名称,或者IP地址)

      ⑤ 克隆虚拟机:克隆两个Slave,主机名称分别是Slave1,Slave2。然后修改Slave的Hadoop配置。

      ⑥ namenode格式化:分别对Master、Slave1,Slave2执行hadoop namenode -format命令。

      ⑦ 启动hdfs和yarn:在Master上执行start-all.sh命令。待启动完成之后,执行jps命令查看进程,应包含namenode,secondarynamenode,resourcemaneger三个进程。Slave上有datanode,nodemanager进程。

      ⑧ 检查测试:先修改真实主机的host(IP地址与Master的映射)在浏览器中输入Master:9870回车,进入hdfs,点击上方datanode应该可以看到下面有两个节点;输入Master:8088回车,进入资源调度管理(yarn)

    好了,开始吧。

    二、准备工具

      hadoop-3.1.2.tar.tz下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

      jdk-8u221-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

      CentOS下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

      WinSCP下载地址: https://winscp.net/eng/download.php

      SecureCRTP ortable下载地址: http://fs2.download82.com/software/bbd8ff9dba17080c0c121804efbd61d5/securecrt-portable/scrt675_u3.exe

      VMware Workstation Pro下载地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.1.0-13591040.exe

      附VMware Workstation Pro秘钥

      YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8

      UG5J2-0ME12-M89WY-NPWXX-WQH88

      UA5DR-2ZD4H-089FY-6YQ5T-YPRX6

    三、安装虚拟机

      此步略,详情之后发布

    四、配置虚拟机

      1.修改用户名:

    hostnamectl --static set-hostname Master
    

      2.设置静态IP地址

      首先查看一下原本自动获取到的网关和DNS,记下来

    [root@Master ~]# cat /etc/resolv.conf
    # Generated by NetworkManager
    nameserver 192.168.28.2 //DNS

    [root@Master ~]# IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    default         192.168.28.2(网关)    0.0.0.0         UG        0 0          0 ens33
    192.168.28.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

    [root@Master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33  //修改ifcfg-ens33文件,执行此命令后进入如下界面

      

      进入界面后按“I”键进入编辑模式,修改或添加图中标红部分。“static”表示静态地址,“netmask”子网掩码,gateways是网关,设置为上一步查看得到的即可。修改后按“esc”退出编辑模式。输入":wq"保存退出。然后输入以下代码更新网络配置。

    systemctl restart network
    

      3.修改hosts文件

      注明:本人设置Master的IP地址为192.168.28.132,Slave1和Slave2分别为192.168.28.133,192.168.28.134

      输入以下代码修改hosts文件(在真实主机中也需要添加):

    vi /etc/hosts
    添加:
    192.168.28.132 Master
    192.168.28.133 Slave1
    192.168.28.134 Slave2

      4.关闭防火墙

      关闭防火墙代码:

    systemctl stop firewalld.service  //临时关闭
    systemctl disable firewalld.service  //设置开机不自启
    

      5.安装Hadoop和JDK

      先创建两个文件夹:

    mkdir /tools   //用来存放安装包
    mkdir /bigdata    //存放解压之后的文件夹
    

      使用WinSCP上传压缩包:登录后找到已下载好的压缩包按如下步骤点击上传即可。

     

      上传文件后,虚拟机端进入tools文件夹并解压文件:

    cd /tools  //进入tools文件夹
    tar -zvxf jdk-8u221-linux-x64.tar.gz  -C /bigdata/     //解压文件到bigdata目录下
    tar -zvxf hadoop-3.1.2.tar.gz -C /bigdata/

      6.配置系统环境

    vi ~/.bash_profile
    添加:
    export JAVA_HOME=/bigdata/jdk1.8.0_221
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    
    export HADOOP_HOME=/bigdata/hadoop-3.1.2
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

    保存退出,让环境变量生效:
    source ~/.bash_profile

      7.配置免密登录(重要)

    ssh-keygen -t rsa     (直接回车3次)
    cd ~/.ssh/
    ssh-copy-id -i id_rsa.pub root@Master 
    ssh-copy-id -i id_rsa.pub root@Slave1 
    ssh-copy-id -i id_rsa.pub root@Slave2 

    测试是否成功配置(在配置完Slave之后测试):
    ssh Slave1
    可以登录到Slave1节点

    五、配置Hadoop

      Hadoop-3.1.2中有许多坑,在2X版本中有些默认的不需要特别配置,但在Hadoop-3.1.2中需要。

      hadoop-env.sh配置:

    cd  /bigdata/hadoop-3.1.2/etc/hadoop/
    vi hadoop-env.sh
    添加:
    export JAVA_HOME=/bigdata/jdk1.8.0_221
    export HADOOP_HOME=/bigdata/hadoop-3.1.2
    export PATH=$PATH:/bigdata/hadoop-3.1.2/bin
    export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"  
    export HADOOP_PID_DIR=/bigdata/hadoop-3.1.2/pids     //PID存放目录,若没有此配置则默认存放在tmp临时文件夹中,在启动和关闭HDFS时可能会报错
    #export HADOOP_ROOT_LOGGER=DEBUG,console   //先注释掉,有问题可以打开,将调试信息打印在console上
    

      hdfs-site.xml:

    <configuration>
           <property>
              <name>dfs.replication</name>    //冗余度,默认为3
              <value>1</value>
    	</property>
    	<property>
    		<name>dfs.datanode.data.dir</name>
    		<value>/bigdata/hadoop-3.1.2/dfs/tmp/data</value>
    	</property>
    	<property>
    		<name>dfs.namenode.name.dir</name>
    		<value>/bigdata/hadoop-3.1.2/dfs/tmp/name</value>
    	</property>
    	<property>
    		<name>dfs.permissions</name>
    		<value>false</value>
    	</property>
    </configuration>
    

      mapred.site.xml:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapred.job.tracker</name>
            <value>Master:9001</value>
        </property>
    </configuration>
    

      yarn-site.xml:

    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>Master</value>
        </property>
    <property>
    	<name>yarn.log-aggregation-enable</name>
    	<value>true</value>
    </property>
    <property>
    	<name>yarn.log-aggregation.retain-seconds</name>
    	<value>604800</value>
    </property>
    </configuration>
    

      core-site.xml:

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://Master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/bigdata/hadoop-3.1.2/tmp</value>
        </property>
    </configuration>
    

      workers:把默认的localhost删掉

    Slave1 192.168.28.133
    Slave2 192.168.28.134
    

      yarn-env.sh  添加:

    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root

      进入/bigdata/hadoop-3.1.2/sbin,修改start-dfs.sh,stop-dfs.sh,都添加:

    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    

      

    六、克隆虚拟机

      克隆两个从节点虚拟机,主机名称分别为Slave1,Slave2(需要进入虚拟机中修改),然后分别修改IP地址(具体方法上面有)重启网络,重启虚拟机。

      重启完成后进行namenode格式化:分别对Master、Slave1,Slave2执行:

    hadoop namenode -format
    

      对Master执行

    start-all.sh  //启动hdfs和yarn
    

      待完成后用jps查看进程:

    [root@Master ~]# jps
    7840 ResourceManager
    8164 Jps
    7323 NameNode
    7564 SecondaryNameNode
    

      两Slave的进程:

    包含以下两个:
    DataNode
    NodeManager
    

    七、检查

      浏览器输入:在浏览器中输入Master:9870回车,进入hdfs管理页面,点击上方datanode应该可以看到下面有两个节点;

      输入Master:8088回车,进入资源调度管理(yarn)

      配置到此结束。接下来学习编写Job程序。有任何问题欢迎留言讨论。

  • 相关阅读:
    使用IDENTITY列属性和Sequence对象
    使用OFFSET-FETCH进行数据过滤
    SQL 插入语句汇总
    建立&修改视图
    Centos 7.x 搭建 Zabbix3.4
    RDS 导出Mysqlbinlog_二进制日志
    Yac
    云服务器漏洞更新
    Centos 内存释放
    Centos 安装 Htop
  • 原文地址:https://www.cnblogs.com/buerhx/p/11267212.html
Copyright © 2011-2022 走看看