CentOS7-Hadoop安装

环境:CentOS7 64位 2台
centos7-1 192.168.190.130 master
centos7-2 192.168.190.129 slave1

hadoop 下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/ 选则3.1.0版本

在安装之前需要先实现节点之间的免密码登陆
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)、测试:(没有报错,并没有提示输入目标服务器用户密码,用户切换到目标服务器用户名则成功)
6)# ssh 目标服务器IP

备注:配置好了master到slave1免密登录,同时需要配置slave1到master的免密登录,在slave1上操作,过程同上,同时记得在/etc/hosts中加上master、slave1的域名解析

1.下载hadoop,解压tar.gz文件

        #cd /usr
        #mkdir hadoop
        #cd hadoop
        #wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.1.0.tar.gz
        #tar  -zxvf hadoop-3.1.0.tar.gz

         解压后,出现hadoop-3.1.0工作目录,既可以使用。
         #cd /usr/hadoop/hadoop-3.1.0
         #mkdir tmp
         #./bin/hadoop -version   //检验是否可以使用

2.设置环境变量,全局(/etc/profile)

    #vim /etc/profile
    设置HADOOP_HOME,并加到PATH路径下
    HADOOP_HOME=/usr/hadoop/hadoop-3.1.0
    PATH=$PATH:$HADOOP_HOME/bin
    #source /etc/profile

3.配置hadoop

    #hadoop主要的六个文件,路径hadoop-3.1.0/etc/hadoop/下
    hadoop-env.sh             //
    yarn-env.sh                  //
    core-site.xml                // 
    hdfs-site.xml                //
    mapred-site.xml          //
    yarn-site.xml               //

    a.hadoop-env.sh配置
    export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.171-0.b13.el7_3.x86_64

    b.yarn-env.sh配置
    export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.171-0.b13.el7_3.x86_64

    c.core-site.xml配置
    <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>

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

     e.配置mapred-site.xml
    <configuration>  
        <property>  
            <name>mapreduce.framework.name</nam
            <value>yarn</value> 
        </property>  
    </configuration>

    f.配置yarn-site.xml
     <configuration>  
             <property>  
                         <name>yarn.nodemanager.aux-services</name>  
                         <value>mapreduce_shuffle</value>  
             </property> 
             <property>
                         <name>yarn.nodemanager.aux-services</name>
                         <value>mapreduce_shuffle</value>
            </property>
    </configuration>

4.将/usr/hadoop复制到其他服务器:
#scp -r /usr/hadoop root@目标ip:/usr/hadoop

5.格式化namenode:
#CD /usr/hadoop/hadoop-3.1.0

./bin/hdfs namenode -format

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错;备注:只需格式化namenode,datanode不需要格式化(若格式化了,可将/usr/hadoop/tmp目录下文件都删除),所以先将安装文件夹复制到其他服务器,再格式化

6.启动hadoop
#cd /usr/hadoop/hadoop-3.1.0
#sbin/start-dfs.sh

7.启动ResourceManager和NodeManager
#cd /usr/hadoop/hadoop-3.1.0
#sbin/start-yarn.sh

8.检查启动结果
#jps
CentOS7-Hadoop安装

总结:
a.免密码登陆,可以把所有口令一起追加进入一个文件具体操作可看这个文章:

b.启动时可以直接把所有都启动,命令如下:
    #cd /usr/hadoop/hadoop-3.1.0
    #sbin/start-all.sh
c.#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.
解决方法:
在start-dfs.sh 、stop-dfs.sh加如下配置
HDFS_DATANODE_USER=root
 HADOOP_SECURE_DN_USER=hdfs
 HDFS_NAMENODE_USER=root
 HDFS_SECONDARYNAMENODE_USER=root
添加后可能还是会报如下警告:
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER.
解决办法:替换上述的解决方法
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

d.#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.
解决办法:start-yarn.sh、stop-yarn.sh添加如下配置
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

本文是查看了网络博客与官方文档,结合自己操作所记录的所有过程,如果有不对或者错误,请留言指正,如有侵权,请联系本人删除。
参考博客:https://www.linuxidc.com/Linux/2018-02/150812.htm

猜你喜欢

转载自blog.51cto.com/4837471/2140674