hadoop3.2环境搭建与问题整理-分布式集群模式

基本流程:

linux网络配置+环境安装+环境变量+修改软件配置脚本+启动hdfs和yarn

使用版本:

linux: ubuntu
jdk:jdk-8u231-libux-x64
hadoop:3.2.1

开始配置

参考博客:hadoop2.7配置
有些步骤的详细过程可以参考上面的博客。如jdk的安装和ssh的设置。

准备材料

  1. Hadoop我们从Apache官方网站直接下载最新版本Hadoop3。
  2. 三台服务器分别设置好hostname:master slave1 slave2 并设置好ssh免密登录
  3. 安装jdk到所有机器,设置好环境变量。所有机器上的路径最好一致
  4. 关闭防火墙

配置hadoop

由于hadoop集群中每个机器上面的配置基本相同,所以我们先在namenode上面进行配置部署,然后再复制到其他节点。所以这里的安装过程相当于在每台机器上面都要执行。

  1. 解压文件
    将下载的hadoop.xx.tar.gz解压到/home/hduser路径下。然后为了节省空间,可删除此压缩文件,或将其存放于其他地方进行备份。
    注意:每台机器的安装路径要相同!!

  2. hadoop配置过程
    配置之前,需要在master本地文件系统创建以下文件夹:
    ~/dfs/name
    ~/dfs/data
    ~/tmp
    这里要涉及到的配置文件有7个:
    hadoop/etc/hadoop/hadoop-env.sh
    hadoop/etc/hadoop/yarn-env.sh
    hadoop/etc/hadoop/workers
    hadoop/etc/hadoop/core-site.xml
    hadoop/etc/hadoop/hdfs-site.xml
    hadoop/etc/hadoop/mapred-site.xml
    hadoop/etc/hadoop/yarn-site.xml
    以上个别文件默认不存在的,可以复制相应的template文件获得。

  3. 配置文件
    1:hadoop-env.sh
    修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk)
    配置文件2:yarn-env.sh
    修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk)
    配置文件3:workers(这个文件里面保存所有slave节点)
    写入以下内容:
    slave1
    slave2
    配置文件4:core-site.xml

            <property>

                            <name>fs.defaultFS</name>

                            <value>hdfs://master:9000</value>

            </property>

   <property>

                            <name>io.file.buffer.size</name>

                            <value>131072</value>

            </property>

   <property>

                            <name>hadoop.tmp.dir</name>

                            <value>file:/home/hduser/tmp</value>

                            <description>Abase for other temporary directories.</description>

            </property>

    <property>

           <name>hadoop.proxyuser.hduser.hosts</name>

           <value>*</value>

   </property>

             <property>

           <name>hadoop.proxyuser.hduser.groups</name>

           <value>*</value>

   </property>

配置文件5:hdfs-site.xml

   <property>

            <name>dfs.namenode.secondary.http-address</name>

           <value>master:9001</value>

    </property>

     <property>

              <name>dfs.namenode.name.dir</name>

             <value>file:/home/hduser/dfs/name</value>

        </property>

       <property>

                <name>dfs.datanode.data.dir</name>

                <value>file:/home/hduser/dfs/data</value>

        </property>

        <property>

                 <name>dfs.replication</name>

                 <value>3</value>

         </property>

         <property>

                 <name>dfs.webhdfs.enabled</name>

                 <value>true</value>

     </property>

配置文件6:mapred-site.xml

            <property>

                            <name>mapreduce.framework.name</name>

                            <value>yarn</value>

            </property>

            <property>

                            <name>mapreduce.jobhistory.address</name>

                            <value>master:10020</value>

            </property>

            <property>

           <name>mapreduce.jobhistory.webapp.address</name>

           <value>master:19888</value>

   </property>

配置文件7:yarn-site.xml

             <property>

           <name>yarn.nodemanager.aux-services</name>

           <value>mapreduce_shuffle</value>

    </property>

             <property>

           <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

           <value>org.apache.hadoop.mapred.ShuffleHandler</value>

    </property>

    <property>

           <name>yarn.resourcemanager.address</name>

           <value>master:8032</value>

   </property>

            <property>

           <name>yarn.resourcemanager.scheduler.address</name>

           <value>master:8030</value>

           </property>

           <property>

                   <name>yarn.resourcemanager.resource-tracker.address</name>

                    <value>master:8031</value>

           </property>

           <property>

                   <name>yarn.resourcemanager.admin.address</name>

                    <value>master:8033</value>

           </property>

            <property>

           <name>yarn.resourcemanager.webapp.address</name>

           <value>master:8088</value>

   </property>

复制到其他节点
使用scp命令

  1. 启动验证

4.1 启动hadoop

进入安装目录: cd hadoop

格式化namenode:./bin/hdfs namenode –format

启动hdfs: ./sbin/start-dfs.sh

此时在master上面运行的进程有:namenode secondarynamenode

slave上面运行的进程有:datanode

启动yarn: ./sbin/start-yarn.sh

此时在master上面运行的进程有:namenode secondarynamenoderesourcemanager

slave上面运行的进程有:datanode nodemanaget

查看集群状态:./bin/hdfs dfsadmin –report

查看文件块组成: ./bin/hdfsfsck / -files -blocks

查看HDFS: http://16.187.94.161:50070

查看RM: http:// 16.187.94.161:8088

4.2 运行示例程序:

先在hdfs上创建一个文件夹

./bin/hdfs dfs –mkdir /input

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter input

遇到的问题

  1. 配置文件时<value>master:8033</value> 这类脚本中,master前面不能有空格。有空格会报错。
  2. 节点丢失导致datanode 后,会进入safe mode模式,此时无法运行程序,退出safemode使用指令:
    hadoop dfsadmin -safemode leave
  3. format如果要多次进行,先删除dfs原有的文件,然后重建
  4. 遇到slave的datanode无法挂载的问题,期初一直无法解决,后来发现防火墙问题,日志如下。解决方案是:
    把datanode 连接master时的端口 加到防火墙
    sudo iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
    sudo iptables -I INPUT -p tcp --dport 8031-j ACCEPT
    sudo service iptables save
    在这里插入图片描述

按照如上步骤配置启动成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值