hadoop原生平台搭建教程

搭建准备hadoop-3.1.1.tar.gz   jdk-8u77-linux-x64.tar.gz(官网下载)

0x1 基础环境配置

我这里使用的是双节点。创建两台虚拟机  master、slaver 并使用hostnamectl set-hostname改名

开启主机的DHCP模式,自动获取ip地址。方法如下:

cd /etc/sysconfig/network-scripts/           //进入网卡编辑目录
vi ifcfg-enp16777736                         //编辑网卡enp0s3的配置文件


hadoop原生平台搭建教程

 重启网卡 service network restart

然后设置hosts,所有节点都要设置

 

hadoop原生平台搭建教程

设置ssh免密登陆:ssh-******

所有节点都要设置

hadoop原生平台搭建教程

所有节点输入:ssh-copy-id slaver
            ssh-copy-id master

使用ssh master(ssh slaver)来验证免密登陆是否成功,如果不需要输入密码则成功

hadoop原生平台搭建教程

0x2 编辑环境变量

建立jdk文件夹:mkdir -p /usr/jdk64
将jdk解压到改文件夹:tar -zxvf jdk-8u77-linux-x64.tar.gz -C /usr/jdk64/

解压hadoop将其移动到/opt/bigdate 

解压: tar -zxvf hadoop-3.1.1.tar.gz
验证环境:hadoop version

 

修改配置文件

hadoop原生平台搭建教程

红框是java环境,蓝框是hadoop环境

 完成后生效环境变量

source /etc/profile

0x3更改配置文件

进入/opt/bigdate/hadoop-3.1.1/etc/hadoop目录更改core-site.xml、hadoop-env.sh、hdfs-site.xml、mapred-site.xml配置文件

编辑 vi hadoop-env.sh 

添加:export JAVA_HOME=/usr/jdk64/jdk1.8.0_77/

编辑 vi core-site.sh

<!-- Put site-specific property overrides in this file. -->
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>hadoop.temp.dir</name>
                <value>/opt/bigdate/hadoop-3.1.1/tmp</value>
        </property>
</configuration>

 配置vi hdfs-site.xml

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/opt/bigdate/hadoop-3.1.1/hdfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/bigdate/hadoop-3.1.1/hdfs/data</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>node1:9001</value>
        </property>
        <property>
                <name>dfs.http.address</name>
        <value>0.0.0.0:50070</value>
        </property>
</configuration>

配置vi mapred-site.xml

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>mapred.job.tracker.http.address</name>
                <value>0.0.0.0:50030</value>
        </property>
        <property>
                <name>mapred.task.tracker.http.address</name>
                <value>0.0.0:50060</value>
        </property>
        <property>
                 <name>mapreduce.framework.name</name>
                 <value>yarn</value>
        </property>
        <property>
                 <name>mapreduce.application.classpath</name>
                 <value>
                    /opt/bigdate/hadoop-3.1.1/etc/hadoop,
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/common/*,
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/common/lib/*,
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/hdfs/*
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/hdfs/lib/*
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/mapreduce/*
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/yarn/*
                    /opt/bigdate/hadoop-3.1.1/share/hadoop/yarn/lib/*
                </value>
          </property>
</configuration>

配置vi  yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8099</value>
    </property>
</configuration>

配置 vi workers 

此处因为前面配置了hosts,所以此处可以直接写主机名,如果没有配置,必须输入相应主机的ip地址。配置的workers,hadoop会把配置在这里的主机当作datanode

hadoop原生平台搭建教程

将hadoop文件夹复制到其他节点

scp -r /opt/bigdate/hadoop-3.1.1 master:/opt/bigdate/

完成后在/opt/bigdate/hadoop-3.1.1/sbin(根据你们自己的配置来)

输入start-all.sh即可

0x4排错

如果遇到

hadoop原生平台搭建教程

需要修改start-dfs.sh

        stop-dfs.sh

        start-yarn.sh

        stop-yarn.sh
四个文件的用户名,并需要修改/etc/SELINUX/confde配置

配置vi start-dfs.sh添加

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

配置vi   stop-dfs.sh添加

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_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

配置vi /etc/selinux/config 修改SELINUX=enforcing更改为SELINUX=disabled

最后将其重新复制到其他节点

然后启动hadoop就行了