Centos7下搭建Hadoop-2.8.4分布式集群

由于机器原因,只拿到了三台机器,所以就先搭3台机器,一条机器做Namenode,另外2台做DataNode。

Hadoop中的管理节点和数据节点最好分开部署

数据节点在实际运行任务时负载是比较重的,很容易影响管理示例的稳定性

下面是搭建步骤:

1 修改/etc/hosts文件

 这里说明下有的是把自己的hostname做了修改,改成啥master ,salver 1,salver2这样或者namenode,datanode1,datanode2这样的形式,但是博主因为不能修改hostname,所以直接采用的机器本身的hostname,这里只要把ip和hostname的映射关系做好,都是没有问题的。所以不必太过纠结这一个问题。

三台机器的配置都是一样配置的,大致就如下配置,按实际情况配:后面我就以这三个名字进行举例

192.168.9.1  namenode
192.168.9.2  datanode1
192.168.9.3  datanode2

2 三台机器都修改完后就检查下三台机之间是否都可以Ping 通 进行互联,这里命令如下

ping -c 3 datanode1

三台机器上面都要进行这样的测试,每一台都测试与另外几台机器之间是否能通 

3  免密登录,因为在后续Hadoop启动的时候会登录另外的集群,所以这里会做下三台机器之间的免密登录 

首先分别在三台机器上生成公钥 

ssh-keygen -t rsa -P ''

4 分别在三台机器上创建authorized_keys文件

touch /root/.ssh/authorized_keys

5. 检查authorized_keys文件是否生成成功

ls /root/.ssh/

6  将 三台机器id_rsa.pub中的key复制,然后三个key 都放到authorized_keys中,然后三台机器的authorized_keys文件中的内容保持一致

大致效果如上

7 检查是否能够免密登陆

ssh datanode1 

分别在三台机器上进行测试互联 

8 JDK环境检查

分别检查三台机器上的JDK环境,我这里用的JDK 版本为 jdk1.8.0_65

如果JDK需要升级大致步骤如下:

下载JDK安装包  

在/opt/java 创建java目录

然后将安装包放到该目录下,进行解压缩

 mkdir /opt/java

 tar  -zxvf   jdk-8u65-linux-x64.tar.gz

修改配置文件

vim /etc/profile

在该文件内添加如下命令:

export JAVA_HOME=/opt/java/jdk1.8.0_65

export  CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/

export  PATH=$PATH:$JAVA_HOME/bin

执行命令来使配置生效

source /etc/profile

测试是否安装成功

Java -version

如果还是没有成功是之前的版本,解决方法如下:

首先查看下

which java

which javac

然后修改对应的软连接

rm -rf /usr/bin/java

rm -rf /usr/bin/javac

ln -s $JAVA_HOME/bin/javac /usr/bin/javac

ln -s $JAVA_HOME/bin/javac /usr/bin/java

执行完后继续查看

Java -version   

Javac -version

9 创建hadoop文件夹下载hadoop镜像

mkdir /opt/hadoop

10 进入到hadoop文件夹然后解压安装包

 tar  -xvf   hadoop-2.8.4.tar.gz

11 创建文件夹,在三台机器上都创建

mkdir  /root/hadoop

mkdir  /root/hadoop/tmp

mkdir  /root/hadoop/var

mkdir  /root/hadoop/dfs

mkdir  /root/hadoop/dfs/name

mkdir  /root/hadoop/dfs/data

下面的步骤三台机器都要操作,保持一致性,文件都是一样的,可以只弄一个,后面的几台机器直接复制过去。

12 修改core-site.xml文件

在<configuration> </configuration> 节点之间内加入配置

vim /opt/hadoop/hadoop-2.8.0/etc/hadoop/core-site.xml
<property>
<name>hadoop.tmp.dir</name>
 <value>/root/hadoop/tmp</value>
 <description>Abase for other temporary directories.</description>
</property>
<property>
 <name>fs.default.name</name>
 <value>hdfs://namenode:9000</value>
</property>

13 修改hadoop-env.sh文件,这个文件就是配置hadoop运行的jave环境​​​​​​​

vim /opt/hadoop/hadoop-2.8.4/etc/hadoop/hadoop-env.sh
将export   JAVA_HOME=${JAVA_HOME}
改为
export   JAVA_HOME=/opt/java/jdk1.8.0_65
自己的JDK路径

14 修改hdfs-site.xml文件 ,这里配置的就是存放路径

在<configuration> </configuration> 节点之间内加入配置

vim /opt/hadoop/hadoop-2.8.4/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
<description>need not permissions</description>
</property>
<property>
 <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
 <value>false</value>

说明:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。

15 新建并且修改mapred-site.xml文件

cp /opt/hadoop/hadoop-2.8.4/etc/hadoop/mapred-site.xml.template /opt/hadoop/hadoop-2.8.4/etc/hadoop/mapred-site.xml
vim /opt/hadoop/hadoop-2.8.4/etc/hadoop/mapred-site.xml

修改这个新建的mapred-site.xml文件,在<configuration> </configuration> 节点之间内加入配置:

<property>
<name>mapred.job.tracker</name>
<value>namenode:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

16 修改slaves文件 注意这里存放的是datanode机器的hostname

vim /opt/hadoop/hadoop-2.8.4/etc/hadoop/slaves

将里面的localhost删除,添加如下内容:

datanode1

datanode2

17 修改yarn-site.xml文件,这个主要就是配置关于yarn服务的

在<configuration> </configuration> 节点之间内加入配置(注意了,内存根据机器配置越大越好,我这里只配2个G是因为机器不行)::

vim /opt/hadoop/hadoop-2.8.4/etc/hadoop/yarn-site.xml
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>namenode</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

18  在namenode机器上执行初始化操作

cd   /opt/hadoop/hadoop-2.8.0/bin

19 执行初始化脚本,也就是执行命令:

 ./hadoop  namenode  -format

20 在namenode机器上执行启动命令

进入目录:

cd /opt/hadoop/hadoop-2.8.4/sbin/

启动命令:

 ./start-all.sh

21 测试hadoop,关闭防火墙

 systemctl   stop   firewalld.service

22 查看hadoop 集群是否启动起来  

输入如下命令 :

jps

23 查看hadoop -overview

访问namenode机器IP:50070,博主这里端口都做了映射,实际访问端口是50070

页面会自动跳转

然后可以访问ip:8088端口查看datanode集群

​​​​​​​

 

猜你喜欢

转载自blog.csdn.net/qq_27575895/article/details/90054967