说明:本篇文章只会介绍搭建hadoop集群比较核心的部分,hdfs、yarn和mapreduce部分。

介绍:

(1)版本是hadoop3.X版本。

(2)JDK选择的是jdk1.8版本。

(3)由于是用于学习的,所以搭建的是最小的集群(3台机器)。

(4)步骤基本是固定的,特别的某些步骤可能会因为版本的区别有变化,请对应实际修改。

步骤:

(1)搭建虚拟机(另外文章有介绍)

(2)确定hostname(我的node01是作为“主节点”,还有两个“从节点”分别是node02和node03),这里看到我已经是修改好了的。如果是刚从第一台机器克隆完另外两台,没做修改的话(克隆的时候可以修改),在另外的机器敲hostname命令显示的也是node01,这里我们就要用命令进行修改。

hadooplinux环境搭建6 linux hadoop搭建教程_big data


hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_02


hadooplinux环境搭建6 linux hadoop搭建教程_big data_03


然后reboot生效。

(3)设置网络

hadooplinux环境搭建6 linux hadoop搭建教程_大数据_04


看到为了保证虚拟机主键和主机之间的连接应该选择的是桥接网卡的模式。

设置之后可以使用三台机器互相ping一下对方的ip(ifconfig查看ip)是否能ping通。

再ping一下www.baidu.com外网看是否额能ping通。

注意: 这里的ip如果没固定的话每次会重新获取,所以要固定每台机器的ip地址。

(4)设置/etc/hosts

目的:通过名字让机器之间相互访问,就不需要每次获取ip

1、先记住每台机器的名字和ip。

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_05


hadooplinux环境搭建6 linux hadoop搭建教程_大数据_06


hadooplinux环境搭建6 linux hadoop搭建教程_大数据_07


2、通过命令进行设置,每台都要设置。

hadooplinux环境搭建6 linux hadoop搭建教程_linux_08


hadooplinux环境搭建6 linux hadoop搭建教程_big data_09


3、测试一下,互相ping一下名字看是否能ping通。

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_10


(5)安全方面的设置,每台机器都要设置。

1、目的是防止后面网络方面出错。查看当前防火墙的状态。

hadooplinux环境搭建6 linux hadoop搭建教程_linux_11


2、关闭防火墙

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_12


3、从服务里面也关闭防火墙,防止每次开机自己启动。

hadooplinux环境搭建6 linux hadoop搭建教程_linux_13


4、查看执行完关闭操作后,防火前的设置

hadooplinux环境搭建6 linux hadoop搭建教程_big data_14


(6)关闭selinux,也是linux的一个安全模块,每台机器都要关闭。

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_15


hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_16


(7)配置ssh免密登录,每台机器都要做,从设置公钥开始。

目的:如果不设置免密登录的话,机器之间互相传输文件登录啥的要有一个授权的操作和输入密码,为了简化这个操作设置一下免密登录即可。

1、首先设置公钥。

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_17


2、拷贝给node02和node03(设置node02时候就拷贝给node01和node03,以此类推。)

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_18


3、测试一下从node01直接登录到了node02。然后exit即可。

hadooplinux环境搭建6 linux hadoop搭建教程_big data_19

(8)安装jdk,每台都要装。

1、下载之后拷贝到虚拟机中。

hadooplinux环境搭建6 linux hadoop搭建教程_linux_20


2、安装jdk

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_21


3、然后设置一下环境变量,打开profile,然后在最下面加上下面的两句。

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_22


hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_23


export JAVA_HOME=/usr/java/jdk1.8.0_311-amd64

export PATH=$JAVA_HOME/bin:$PATH

到此jdk就装好了,然后三台机器重启生效一下。(9)准备工作基本做完了,开始安装hadoop。每台机器都要创建目录。

1、这里我创建了一个文件夹用用于放需要的工具

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_24


2、创建目录

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_25


hadooplinux环境搭建6 linux hadoop搭建教程_大数据_26


(10)配置hadoop

1、我是把hadoop解压在了/opt文件夹。

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_27


2、进到hadoop的etc中可以看到主要修改的四个配置文件。

hadooplinux环境搭建6 linux hadoop搭建教程_big data_28


3、配置core-site.mxl

打开 vi core-site.mxl,把下面的信息粘贴到最下面的两个< configuration>之间。

<property>
            <name>fs.defaultFS</name>
            <value>hdfs://node01:9000</value>
            <description>namenode通讯地址</description>
    </property>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/huser/data/hadoop/tmp</value>
            <description>临时文件存储路径</description>
    </property>

hadooplinux环境搭建6 linux hadoop搭建教程_大数据_29


4、配置hdfs-site.mxl

<property>
            <name>dfs.replication</name>
            <value>2</value>
    </property>
    <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/huser/data/hadoop/namenode</value>
    </property>
    <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/huser/data/hadoop/data</value>
    </property>
    <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>node01:9001</value>
    </property>
    <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
    </property>
    <property>
            <name>dfs.permissions</name>
            <value>false</value>
    </property>

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_30


5、配置mapred-site.mxl

文件夹下是没有mapred-site.mxl文件的,所以拷贝一份mapred-site.mxl.template改为mapred-site.mxl,再配置mapred-site.mxl文件。

hadooplinux环境搭建6 linux hadoop搭建教程_大数据_31

<property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_32


6、配置yarn-site.mxl

<property>
            <name>yarn.resourcemanager.address</name>
            <value>node01:8040</value>
    </property>
    <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>node01:8030</value>
    </property>
    <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>node01:8088</value>
            <description>Resourcemanager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。</description>
    </property>
    <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>node01:8025</value>
    </property>
    <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>node01:8141</value>
    </property>
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
            <description >Nodemanager上运行的附属服务。需要配置成mapreduce_shuffle,才可运行MapReduce程序。</description >
    </property>
    <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
            <name>yarn.acl.enable</name>
            <value>false</value>
    </property>
    <property>
            <name>yarn.admin.acl</name>
            <value>*</value>
    </property>

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_33


7、修改slaves文件

把里面内容删掉,然后加上node02和node03,因为目前配置的机器是node01。

hadooplinux环境搭建6 linux hadoop搭建教程_linux_34


8、修改masters文件

hadooplinux环境搭建6 linux hadoop搭建教程_linux_35


9、配置hadoop-env.sh

在最下面加上java_home的路径。

这是我的:export JAVA_HOME=/usr/java/jdk1.8.0_311-amd64

hadooplinux环境搭建6 linux hadoop搭建教程_大数据_36


10、目前是在node01上做的配置,现在拷贝到node02和node03上。下面的命令是从网上搜的,命令是对的,具体的文件路径根据自己当时的情况修改。

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_37


11、格式化文件系统。回到bin目录下,只在node01上即可。

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_38


./hdfs namenode -format

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_39


(11)启动

1、启动dfs

2、启动yarn

回到hadoop的sbin目录下,里面有很多启动停止的文件。

hadooplinux环境搭建6 linux hadoop搭建教程_hadooplinux环境搭建6_40


3、命令:./start-dfs.sh

4、命令:./start-yarn.sh

hadooplinux环境搭建6 linux hadoop搭建教程_big data_41


(12)到这里为了方便我们后续去执行MR命令,再配置一下hadoop_home,只在node01配置即可。

1、先记住这个路径,为了方便,我们可以先cd到这个路径复制一下这个路径。我们安装的hadoop,的bin的路径,每个人路径不同,注意自己的!

hadooplinux环境搭建6 linux hadoop搭建教程_hadoop_42


2、再打开,开始配置的JAVA_HOME的文件

hadooplinux环境搭建6 linux hadoop搭建教程_big data_43


3、修改后的如下图,两处修改,如果不放心可以和之前的对比一下。

export JAVA_HOME=/usr/java/jdk1.8.0_311-amd64
export HADOOP_HOME=/opt/hadoop-2.8.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH

hadooplinux环境搭建6 linux hadoop搭建教程_big data_44


4、修改后source一下

命令:source /etc/profile(13)测试,跑一下hadoop自带的样例,求pi的值。位置如下:

hadooplinux环境搭建6 linux hadoop搭建教程_linux_45


命令:hadoop jar ./hadoop-mapreduce-examples-2.8.0.jar pi 5 10

hadooplinux环境搭建6 linux hadoop搭建教程_big data_46

到此基本配置就完成了!