zoukankan      html  css  js  c++  java
  • CentOS 7安装Hadoop 3.0.0

    最近在学习大数据,需要安装Hadoop,自己弄了好久,最后终于弄好了。网上也有很多文章关于安装Hadoop的,但总会遇到一些问题,所以把在CentOS 7安装Hadoop 3.0.0的整个过程记录下来,有什么不对的地方大家可以留言更正。

      一、ssh免密登录

    1、测试是否能免密登录

          # ssh localhost

    The authenticity of host 'localhost (::1)' can't be established.

    2、设置免密登录

    1)、去掉 /etc/ssh/sshd_config中的两行注释,如没有则添加,所有服务器都要设置的:

            #RSAAuthentication yes  
            #PubkeyAuthentication yes 

    2)、生成秘钥:

    # ssh-keygen -t rsa

    备注:输入命令后回车4次

    3)、复制到公共密钥中:

    # cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

    4)、将秘钥复制到目标服务器:

    # ssh-copy-id 目标服务器IP

    5)、测试:(没有报错,并没有提示输入目标服务器用户密码,用户切换到目标服务器用户名则成功)

    # ssh 目标服务器IP

    备注:配置好了hadoop1到hadoop2免密登录,同时需要配置hadoop2到hadoop1的免密登录,在hadoop2上操作,过程同上

      二、安装JDK

    hadoop-3.0.0需要jdk1.8,此处省略安装过程,网上很多,过程也比较简单

      三、安装hadoop

    1、下载hadoop:

    http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/

    2、解压安装:

     1)、复制 hadoop-3.0.0.tar.gz 到/usr/hadoop目录下, 然后

      #tar -xzvf hadoop-3.0.0.tar.gz

    解压,解压后目录为:/usr/hadoop/hadoop-3.0.0,Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

    #cd /usr/hadoop/hadoop-3.0.0 
            #./bin/hadoop version

    2),在/usr/hadoop/目录下,建立tmp:

    #mkdir /usr/hadoop/tmp

    3)、设置环境变量:

    #vi /etc/profile
            # set hadoop path
            export HADOOP_HOME=/usr/hadoop/hadoop-3.0.0
            export PATH=$PATH:$HADOOP_HOME/bin

    4)、使环境变量生效,终端中运行如下命令:

    #source /etc/profile

    5)、设置hadoop:     

    一共需要配置主要的6个文件:

      hadoop-3.0.0/etc/hadoop/hadoop-env.sh 

      hadoop-3.0.0/etc/hadoop/yarn-env.sh 

      hadoop-3.0.0/etc/hadoop/core-site.xml 

      hadoop-3.0.0/etc/hadoop/hdfs-site.xml 

      hadoop-3.0.0/etc/hadoop/mapred-site.xml 

              hadoop-3.0.0/etc/hadoop/yarn-site.xml

            ⑴、配置hadoop-env.sh:

              # The java implementation to use.  
              #export JAVA_HOME=${JAVA_HOME}  
              export JAVA_HOME=/usr/java/jdk1.8.0_152 //根据自己jdk安装目录配置

    ⑵、配置yarn-env.sh:

              #The java implementation to usr  
              export JAVA_HOME=/usr/java/jdk1.8.0_152 //根据自己jdk安装目录配置

    ⑶、配置core-site.xml:

      <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
              <configuration>            <property>           <name>fs.default.name</name>           <value>hdfs://localhost:9000</value>           <description>HDFS的URI,文件系统://namenode标识:端口号</description>             </property>             <property>           <name>hadoop.tmp.dir</name>           <value>/usr/hadoop/tmp</value>           <description>namenode上本地的hadoop临时文件夹</description>             </property>           </configuration>

    ⑷、配置hdfs-site.xml:

      <configuration>  
              <!—hdfs-site.xml-->  
                <property>  
                  <name>dfs.replication</name>  
                  <value>1</value>  
                  <description>副本个数,配置默认是3,应小于datanode机器数量</description>  
                </property>  
              </configuration>

    ⑸、配置mapred-site.xml:

      <!-- 指定mr运行在yarn上 -->
              <configuration>             <property>         <name>mapreduce.framework.name</name>         <value>yarn</value>             </property>           </configuration>

    ⑹、配置yarn-site.xml:

      <!-- 指定YARN的老大(ResourceManager)的地址 -->
              <configuration>             <property>           <name>yarn.nodemanager.aux-services</name>           <value>mapreduce_shuffle</value>             </property>  

         <!-- reducer获取数据的方式 -->
                 <property>
                  <name>yarn.nodemanager.aux-services</name>
                  <value>mapreduce_shuffle</value>
                 </property>

       </configuration>

      备注:以上配置都是以最简配置,还有很多配置可以自行添加

           6)、将/usr/hadoop复制到其他服务器:

              scp -r /usr/hadoop root@192.168.1.11:/usr/hadoop

     7)、格式化namenode:  

      #CD /usr/hadoop/hadoop-3.0.0
              # ./bin/hdfs namenode -format

      成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错          

      备注:只需格式化namenode,datanode不需要格式化(若格式化了,可将/usr/hadoop/tmp目录下文件都删除),所以先将安装文件夹复制到其他服务器,再格式化

        四、测试:

          1、启动HDFS:

          #CD /usr/hadoop/hadoop-3.0.0
          # sbin/start-dfs.sh

    如果运行脚本报如下错误,

    ERROR: Attempting to launch hdfs namenode as root
          ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
          Starting datanodes
          ERROR: Attempting to launch hdfs datanode as root
          ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
          Starting secondary namenodes [localhost.localdomain]
          ERROR: Attempting to launch hdfs secondarynamenode as root
          ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.

    解决方案

    (缺少用户定义而造成的)因此编辑启动和关闭

          $ vim sbin/start-dfs.sh
          $ vim sbin/stop-dfs.sh

    顶部空白处添加

          HDFS_DATANODE_USER=root  
          HADOOP_SECURE_DN_USER=hdfs  
          HDFS_NAMENODE_USER=root  
          HDFS_SECONDARYNAMENODE_USER=root

    2)启动ResourceManager和NodeManager:

          #CD /usr/hadoop/hadoop-3.0.0
          #sbin/start-yarn.sh

          如果启动时报如下错误,

          Starting resourcemanager
          ERROR: Attempting to launch yarn resourcemanager as root
          ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.

          解决方案

    (也是由于缺少用户定义)

          是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本 

          $ vim sbin/start-yarn.sh 
          $ vim sbin/stop-yarn.sh 

    顶部空白添加

          YARN_RESOURCEMANAGER_USER=root  
          HADOOP_SECURE_DN_USER=yarn  
          YARN_NODEMANAGER_USER=root

    3)、启动验证:

    执行jps命令,出现下图基本完成

    备注:也可以使用下面命令同时启动HDFS和ResourceManager、NodeManager:

          #CD /usr/hadoop/hadoop-3.0.0
          #sbin/start-all.sh

    Hadoop2.3-HA高可用集群环境搭建  http://www.linuxidc.com/Linux/2017-03/142155.htm

    Hadoop项目之基于CentOS7的Cloudera 5.10.1(CDH)的安装部署  http://www.linuxidc.com/Linux/2017-04/143095.htm

    Hadoop2.7.2集群搭建详解(高可用)  http://www.linuxidc.com/Linux/2017-03/142052.htm

    使用Ambari来部署Hadoop集群(搭建内网HDP源)  http://www.linuxidc.com/Linux/2017-03/142136.htm

    Ubuntu 14.04下Hadoop集群安装  http://www.linuxidc.com/Linux/2017-02/140783.htm

    CentOS 6.7安装Hadoop 2.7.2  http://www.linuxidc.com/Linux/2017-08/146232.htm

    Ubuntu 16.04上构建分布式Hadoop-2.7.3集群  http://www.linuxidc.com/Linux/2017-07/145503.htm

    CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建  http://www.linuxidc.com/Linux/2017-06/144932.htm

    Hadoop2.7.3+Spark2.1.0完全分布式集群搭建过程  http://www.linuxidc.com/Linux/2017-06/144926.htm

    更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

    本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-02/150812.htm

    linux

  • 相关阅读:
    iOS ARC编译器规则和内存管理规则
    Servlet与JSP的关系
    传统javabean与spring中的bean的区别
    servlet学习笔记
    JAVA里面"=="和euqals的区别
    java垃圾回收
    java中初始化块、静态初始化块和构造方法
    抽象类与接口的区别
    Servlet 与 CGI 的比较
    spring的事务传播特性
  • 原文地址:https://www.cnblogs.com/itrena/p/8830051.html
Copyright © 2011-2022 走看看