CentOS7.0配置Hadoop真分布集群详细教程

一、准备阶段

安装两台centOS 7.0虚拟机:centOS7.0 无图形界面版

一台做master,一台做slave

 

二、配置网络

注:在本机上配置真分布模式,虚拟机的网络适配器不用设置为桥接模式,NAT模式即可。

1、联网

启动centOS

命令:ip addr  # 查看设置IP地址的文件名

CentOS7.0配置Hadoop真分布集群详细教程_第1张图片

命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33  # 编辑ifcfg-ens33配置文件(每台虚拟机文件名有可能不一样)

文件修改内容:

ONBOOT=yes  #开启自动启用网络连接

重启网络,命令:service network restart (若无效,可以重启虚拟机)

输入命令:ip addr  # 查看ip地址

我的master:192.168.98.135

我的slave:192.168.98.134

 

三、虚拟机IP映射

1、将所有虚拟机的IP写入/etc/hosts文件
命令:vi /etc/hosts
添加内容:(两台虚拟机都要修改)

192.168.98.135    master
192.168.98.134    slave

2、修改主机名称
hostnamectl set-hostname master  # 在mster主机执行
hostnamectl set-hostname slave  # 在slave主机执行

3、重启两台虚拟机,命令:reboot

4、关闭防火墙

查看防火墙状态,命令:firewall-cmd --state
关闭防火墙,命令:systemctl stop firewalld && systemctl disable firewalld

四、ssh免密登录

先修改一下配置文件,允许root用户登录

命令:vi /etc/ssh/sshd_config

修改内容:

PermitRootLogin yes(把#号去掉)

1、生成公钥

命令:

cd ~/.ssh                  # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa*               # 删除之前生成的公匙(如果有)
ssh-keygen -t rsa          # 一直按回车就可以
cat ./id_rsa.pub >> ./authorized_keys    # 让 master 节点需能无密码 SSH 本机

2、把生成认证的key,发送给各个slave节点(只需在master主机执行)

命令:scp /root/.ssh/id_rsa.pub root@slave:/root/.ssh/authorized_keys

命令:chmod 644 /root/.ssh/authorized_keys    #  在每个虚拟机设置权限

3、测试ssh免密登录

命令:ssh slave

退出登录命令:exit

 

五、下载安装JDK

下载wget:yum -y install wget

1、下载jdk,命令:

wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz

如果下载不了,可以在windows下载好后传输到虚拟机,有很多工具,这里不做推荐了

2、解压: tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/local/

3、配置JDK环境变量
命令:vi ~/.bashrc

在文件顶部添加内容:

# Java set
export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$PATH


六、下载安装hadoop3.1.0(版本自己选择,配置基本相同)

1、下载hadoop:wget http://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0.tar.gz

2、解压:tar -zxvf hadoop-3.1.0.tar.gz -C /usr/local/

解压后Hadoop 3.1.0根目录为/usr/local/hadoop-3.1.0

3、进入/usr/local目录,修改文件夹名,命令:mv hadoop-3.1.0 hadoop

4、配置Hadoop环境变量

命令:vi ~/.bashrc

添加内容:

# Hadoop set
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_ROOT_LOGGER=INFO,console
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"


七、修改Hadoop配置文件

命令:cd /usr/local/hadoop/etc/hadoop/

1、vi hadoop-env.sh

添加:export JAVA_HOME=/usr/local/jdk1.8.0_201

2、vi workers

删除localhost

加入slave虚拟机名称(一行一个)

slave

注:下面的配置均写入在

3、vi core-site.xml

    
        fs.checkpoint.period
        3600
    

    
        fs.checkpoint.size
        67108864
    
    
    
        fs.defaultFS
        hdfs://master:9000
    
    
    
        hadoop.tmp.dir
        /usr/local/hadoop/data/tmp
    

4、vi hdfs-site.xml


    dfs.relication
    1



   dfs.namenode.name.dir
   file:/usr/local/hadoop/data/dfs/name



   dfs.datanode.data.dir
   file:/usr/local/hadoop/data/dfs/data



dfs.namenode.http-address
master:50070



dfs.namenode.secondary.http-address
master:50090



    dfs.namenode.checkpoint.dir
    file:/usr/local/hadoop/data/dfs/checkpoint



    dfs.namenode.checkpoint.edits.dir
    file:/usr/local/hadoop/data/dfs/edits

5、vi mapred-site.xml


       mapreduce.framework.name
       yarn


 
    mapred.job.tracker
    master:10020



        mapreduce.application.classpath
        
            /usr/local/hadoop/etc/hadoop/*,
            /usr/local/hadoop/share/hadoop/common/*,
            /usr/local/hadoop/share/hadoop/common/lib/*,
            /usr/local/hadoop/share/hadoop/hdfs/*,
            /usr/local/hadoop/share/hadoop/hdfs/lib/*,
            /usr/local/hadoop/share/hadoop/mapreduce/*,
            /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
            /usr/local/hadoop/share/hadoop/yarn/*,
            /usr/local/hadoop/share/hadoop/yarn/lib/*
        



    mapreduce.jobhistory.webapp.address
    master:19888

6、vi yarn-site.xml


    yarn.resourcemanager.hostname
    192.168.98.135



    yarn.nodemanager.aux-services
    mapreduce_shuffle



    yarn.nodemanager.aux-services.mapreduce.shuffle.class
    org.apache.hadoop.mapred.ShuffleHandle



    yarn.resourcemanager.resource-tarcker.address
    master:8025



    yarn,resourcemanager.scheduler.address
    master:8030



    yarn.resourcemanager.address
    master:8040



    yarn.resourcemanager.admin.address
    master:8033



    yarn.resourcemanager.webapp.address
    master:8088

7、vi log4j.properties
# 在文件最后面加上以下语句

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

8、先进入该目录:cd /usr/local/hadoop/hadoop-3.1.0/sbin

注:下面修改内容在四个文件头部添加

# vi start-dfs.sh
添加内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
# vi stop-dfs.sh
添加内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
# vi start-yarn.sh
内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
# vi stop-yarn.sh
内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

八、将配置文件、JDK和hadoop传输给slave虚拟机并格式化节点

# 利用scp命令将配置文件、JDK及hadoop安装文件复制到slave虚拟机相应位置

1、JDK(/usr/local/java)

scp -r /usr/local/jdk1.8.0_201/ slave:/usr/local/

2、Hadoop (/usr/local/hadoop)

scp -r /usr/local/hadoop/ slave:/usr/local/hadoop

3、环境配置文件(~/.bashrc),这个也可以不用传输,由于内容较少,可以直接在slave节点上配置。

scp ~/.bashrc slave:~/

4、在各子节点刷新环境变量

命令:source ~/.bashrc

注:刷新环境后,如果出现大部分命令不能使用,则说明环境配置错误,一般是路径错了,使用以下命令可以重新打开环境配置文件进行修改。

export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

5、格式化节点

命令:hdfs namenode -format

九、启动
1、启动节点
命令:start-all.sh
2、查看节点情况
命令:jps
3、访问网页地址

http://192.168.98.135:50070
http://192.168.98.135:8088
http://192.168.98.134:8042(slave虚拟机)

异常问题

Centos7 虚拟机IP 变动解决方法

 

参看资料

Centos7搭建hadoop3.1的完全分布式环境

你可能感兴趣的:(Hadoop)