• Hadoop-3.1.3安装


    0.创建用户并付权限

    sudo useradd iwbd
    sudo passwd iwbd

    配置iwbd用户具有root权限

    修改/etc/sudoers文件,找到下面一行(91行),在root下面添加一行,如下所示:
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    iwbd ALL=(ALL) ALL

    在/opt目录下创建文件夹

    (1)在/opt目录下创建module、software文件夹
    sudo mkdir module
    sudo mkdir software
    (2)修改module、software文件夹的所有者cd
    sudo mkdir /opt/module /opt/software
    sudo chown iwbd:iwbd /opt/module /opt/software

    1. 解压安装文件到/opt/module下面

    tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

    2. 将Hadoop添加到环境变量

    #打开/etc/profile.d/my_env.sh文件
    sudo vim /etc/profile.d/my_env.sh
    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-3.1.3
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    #让修改后的文件生效
    source /etc/profile

    3、完全分布式运行模式

    3.1 xsync集群分发脚本

    3.2 SSH无密登录配置(略)

    ssh免密码登录配置方法
    3.2.1 各服务器切换到要免密的用户
    执行 ssh-keygen -t rsa 一路回车
    3.2.2 在A服务器 进入.ssh目录,cat id_rsa.pub
    拷贝内容
    3.2.3 到B服务器 进入.ssh目录,执行
    vim authorized_keys
    粘贴 步骤2种拷贝的内容并保存退出
    3.2.4 修改authorized_keys 权限
    chmod 644 authorized_keys
    3.2.5 在A服务器 执行访问验证
    ssh -p 端口号 iwbd@hadoop103

    3.3 集群配置

    3.3.1 集群部署规划

    3.3.2 配置集群

    1)配置core-site.xml
    cd $HADOOP_HOME/etc/hadoop
    vim core-site.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop102:8020</value>
    </property>
    <property>
    <name>hadoop.data.dir</name>
    <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
    <property>
    <name>hadoop.proxyuser.iwbd.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.iwbd.groups</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.http.staticuser.user</name>
    <value>iwuser</value>
    </property>
    </configuration>
    2)配置hdfs-site.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>${hadoop.data.dir}/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>${hadoop.data.dir}/data</value>
      </property>
      <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>${hadoop.data.dir}/namesecondary</value>
      </property>
      <property>
        <name>dfs.client.datanode-restart.timeout</name>
        <value>30</value>
      </property>
      <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
      </property>
      <!--网页可以上传-->
      <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
      </property>
    
    </configuration>
    3)配置yarn-site.xml
    <?xml version="1.0"?>
    <!--
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
    
        http://www.apache.org/licenses/LICENSE-2.0
    
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License. See accompanying LICENSE file.
    -->
    <configuration>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
      </property>
      <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
      </property>
      <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1024</value>
      </property>
      <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
      </property>
      <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
      </property>
      <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
      </property>
      <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
      </property>
      <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop102:19888/jobhistory/logs</value>
      </property>
      <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
      </property>
    
    </configuration>
    4)mapred-site.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>

    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
    </property>
    <property>
    <name>mapreduce.map.memory.mb</name>
    <value>1536</value>
    </property>
    <property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx1024M</value>
    </property>
    <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>3072</value>
    </property>
    <property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx2560M</value>
    </property>

    </configuration>

     5) 修改脚本配置

    vim start-dfs.sh 和 stop-dfs.sh 添加用户

    HDFS_DATANODE_USER=iwbd
    HDFS_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=iwbd
    HDFS_SECONDARYNAMENODE_USER=iwbd  

    vim start-yarn.sh 和 stop-yarn.sh 添加用户

    YARN_RESOURCEMANAGER_USER=iwbd
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=iwbd
    

      

    6)在集群上分发配置好的Hadoop配置文件
    xsync /opt/module/hadoop-3.1.3/etc/hadoop/
    

      

    3.4 群起集群

    3.4.1 配置workers
    vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
    
    #在该文件中增加如下内容:
    hadoop102
    hadoop103
    hadoop104
    

     

    3.4.2 启动集群

    1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
    hdfs namenode -format
    2)启动HDFS
    sbin/start-dfs.sh
    3)在配置了ResourceManager的节点(hadoop103)启动YARN
    sbin/start-yarn.sh
    4)Web端查看SecondaryNameNod
    (a)浏览器中输入:http://hadoop104:9868/status.html
    (b)查看SecondaryNameNode信息


    4.集群启动/停止方式总结

    4.1 各个服务组件逐一启动/停止

    (1)分别启动/停止HDFS组件
    hdfs --daemon start/stop namenode/datanode/secondarynamenode
    (2)启动/停止YARN
    yarn --daemon start/stop resourcemanager/nodemanager

    4.2 各个模块分开启动/停止(配置ssh是前提)常用

    (1)整体启动/停止HDFS
    start-dfs.sh/stop-dfs.sh
    (2)整体启动/停止YARN
    start-yarn.sh/stop-yarn.sh

    5.配置历史服务器

    为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

    5.1 配置mapred-site.xml

    3.2.2已配置

    5.3 在hadoop102启动历史服务器

    mapred --daemon start historyserver

    5.4 查看JobHistory

    http://hadoop102:19888/jobhistory

    6 配置日志的聚集


    日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
    日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
    注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。

    开启日志聚集功能具体步骤如下:

    6.1 配置yarn-site.xml

    3.2.2已配置

    6.3 关闭NodeManager 、ResourceManager和HistoryServer

    在103上执行: stop-yarn.sh
    在102上执行: mapred --daemon stop historyserver

    6.4 启动NodeManager 、ResourceManage、Timelineserver和HistoryServer

    在103上执行:start-yarn.sh
    在103上执行:yarn --daemon start timelineserver
    在102上执行:mapred --daemon start historyserver

    6.5 删除HDFS上已经存在的输出文件

    hdfs dfs -rm -R /user/iwbd/output

    6.6 执行WordCount程序

    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/iwbd/input /user/iwbd/output6.7

    6.7 查看日志

    http://hadoop102:19888/jobhistory

    ps: start-dfs.sh 启动总是报找不到JAVA_HOME

    配置系统环境的/etc/profile 或 /etc/profile.d/my_env.sh 或者 ~/.bash_profile都不行,最后在 /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh

    添加变量 解决,也不知道为什么读取不到系统的环境变量. 普通echo $JAVA_HOME 或 java  -version 都正常

    export JAVA_HOME=/usr/java/jdk1.8.0_212

  • 相关阅读:
    团队冲刺(九)
    TensorFlow利用Keras实现线性回归
    Spark Streaming 编程初级实践
    Spark SQL 编程初级实践
    解决Ubuntu输入正确密码后进不去桌面
    RDD 编程初级实践
    A master URL must be set in your configuration at org.apache.spark.SparkContext.<init>(SparkContext.
    TensorFlow加载mnist数据集并显示
    Spark读取文件统计行数
    【测试技能】服务端测试就是postman看接口和操作redis吗?
  • 原文地址:https://www.cnblogs.com/coolid/p/14218066.html
Copyright © 2020-2023  润新知