Hadoop集群安装部署详细过程 您所在的位置:网站首页 hadoop集群的配置方法 Hadoop集群安装部署详细过程

Hadoop集群安装部署详细过程

#Hadoop集群安装部署详细过程| 来源: 网络整理| 查看: 265

Hadoop集群安装部署详细过程 背景(1)关闭防火墙(2)实现免密登陆① 修改主机名② 修改/etc/hosts文件③ 生成密钥④ 测试免密登陆 (3)创建文件夹及上传安装包(4)修改一系列配置文件① 修改core-site.xml文件② 修改hadoop-env.sh文件③ 修改hdfs-site.xml文件④ 新建并修改mapred-site.xml文件⑤ 修改slaves文件⑥ 修改yarn-site.xml文件⑦ 修改yarn-env.sh文件 (5)主节点初始化(6)启动hadoop(7)运行自带的wordcount测试程序① 查找测试案例程序jar包路径② 创建wordcount.txt文件③ hdfs上创建输入输出目录④ 执行测试程序⑤ 验证结果

背景

Hadoop集群依赖Java环境,所以需要先安装jdk,未安装的可先根据上一篇安装。 我的安装版本是hadoop-2.7.7,可根据自己需求选择版本。 下载地址:https://archive.apache.org/dist/hadoop/common/

因为我是自己学习,所以直接以root用户安装,生产环境上一般要创建一个特定用户如hadoop用户来安装。

准备三台linux节点,我这里是centos 7 版本,以下操作未作说明则三个节点都要操作。

(1)关闭防火墙

自己学习所用,直接关闭三个节点的防火墙,命令如下:

# systemctl start firewalld --启动 # systemctl stop firewalld --关闭 # systemctl status firewalld --查看状态 # systemctl disable firewalld --开机禁用 # systemctl enable firewalld --开机启用

生产环境不能关闭防火墙,做相应的防火墙设置即可。

(2)实现免密登陆 ① 修改主机名

分别将三个节点主机名称改为hadoop01、hadoop01、hadoop03:

# hostname --查看主机名 localdomain --主机名 # hostname hadoop01 --修改主机名

修改之后检查一下,如果修改不成功,可以进入配置文件进行名称的修改。

# vi /etc/hostname --用vi进行修改

确认三个节点的IP与主机名,我的如下:

191.166.3.xxx hadoop01 191.166.3.xxx hadoop02 191.166.3.xxx hadoop03 ② 修改/etc/hosts文件

在/etc/hosts文件后面添加三个节点的IP信息,三个节点都要操作:

191.166.3.180 hadoop01 191.166.3.181 hadoop02 191.166.3.182 hadoop03

分别在三个节点上去ping另外两台机子,确保能够ping通即可。

③ 生成密钥 # ssh-keygen -t rsa -P ''

路径不用输入,直接回车生成密钥: 在这里插入图片描述 我当前是root用户,所以密钥文件保存在/root/.ssh/文件夹: 在这里插入图片描述 在另外两个节点重复此操作,获得另外两个节点的密钥文件; 生成公钥汇总文件authorized_keys(上图我是生成好的,正常此时没有这个文件):

# touch /root/.ssh/authorized_keys

查看三个节点的密钥文件(密钥很长,这里截图取一部分): 在这里插入图片描述 将三个密钥文件的内容都汇总到/root/.ssh/authorized_keys文件内,汇总好后将authorized_keys文件复制到另外两个节点上。

④ 测试免密登陆

在hadoop01节点执行免密ssh登陆操作:

# ssh hadoop02

第一次执行时会有验证,直接输入yes回车即可,以后再执行此命令无需验证,查看是否切换到hadoop02节点,且用户是root用户,确保在每个节点切换到另外的两个节点都能成功。

(3)创建文件夹及上传安装包

三个节点都在/home/app/(或其他文件夹,视个人而定)下创建hadoop文件夹

# cd /home/app/ # mkdir hadoop

将hadoop安装包上传到三个节点的hadoop文件夹内并解压

tar -xvf hadoop-2.7.7.tar.gz

解压后生成hadoop-2.7.7文件夹,在hadoop-2.7.7文件夹下创建一系列文件目录

mkdir /home/app/hadoop/hadoop-2.7.7/hdfs mkdir /home/app/hadoop/hadoop-2.7.7/hdfs/tmp mkdir /home/app/hadoop/hadoop-2.7.7/hdfs/name mkdir /home/app/hadoop/hadoop-2.7.7/hdfs/data (4)修改一系列配置文件

以下配置修改除非特别说明,否则都是三个节点都要改。 目录是:/home/app/hadoop/hadoop-2.7.7/etc/hadoop/

① 修改core-site.xml文件

在节点内加入配置,节点名 hadoop01 全改为自己主节点的主机名,注意三个节点都是hadoop01, 并且将hadoop.tmp.dir修改成步骤(3)创建的tmp文件夹路径:

hadoop.tmp.dir /home/app/hadoop/hadoop-2.7.7/hdfs/tmp Abase for other temporary directories. io.file.buffer.size 131072 fs.defaultFS hdfs://hadoop01:9000 ② 修改hadoop-env.sh文件

将JAVA_HOME的值更改掉,原来是:

export JAVA_HOME=${JAVA_HOME}

改为:

export JAVA_HOME=/home/app/java/jdk1.8.0_211

即修改为自己的jdk路径;

③ 修改hdfs-site.xml文件

在节点内加入配置,三个节点名全改为自己主节点的主机名, 将dfs.namenode.name.dir、dfs.datanode.data.dir改成步骤(3)创建的文件路径:

/home/app/hadoop/hadoop-2.7.7/hdfs/name true dfs.datanode.data.dir /home/app/hadoop/hadoop-2.7.7/hdfs/data true dfs.namenode.secondary.http-address hadoop01:9001 dfs.webhdfs.enabled true dfs.permissions false ④ 新建并修改mapred-site.xml文件

在节点内加入配置:

mapreduce.framework.name yarn ⑤ 修改slaves文件

此文件只有主节点要改,两个从节点不用改。 将默认的localhost删除,添加从节点的主机名:

hadoop02 hadoop03 ⑥ 修改yarn-site.xml文件

在节点内加入配置,三个节点名全改为自己对应的主节点主机名hadoop01,内存设置为2G(有条件的话可以尽量大):

yarn.resourcemanager.hostname hadoop01 The address of the applications manager interface in the RM. yarn.resourcemanager.address ${yarn.resourcemanager.hostname}:8032 The address of the scheduler interface. yarn.resourcemanager.scheduler.address ${yarn.resourcemanager.hostname}:8030 The http address of the RM web application. yarn.resourcemanager.webapp.address ${yarn.resourcemanager.hostname}:8088 The https adddress of the RM web application. yarn.resourcemanager.webapp.https.address ${yarn.resourcemanager.hostname}:8090 yarn.resourcemanager.resource-tracker.address ${yarn.resourcemanager.hostname}:8031 The address of the RM admin interface. yarn.resourcemanager.admin.address ${yarn.resourcemanager.hostname}:8033 yarn.nodemanager.aux-services mapreduce_shuffle yarn.scheduler.maximum-allocation-mb 2048 每个节点可用内存,单位MB,默认8182MB yarn.nodemanager.vmem-pmem-ratio 2.1 yarn.nodemanager.resource.memory-mb 2048 yarn.nodemanager.vmem-check-enabled false ⑦ 修改yarn-env.sh文件

添加JAVA_HOME环境变量,可直接添加,也可找到文件内原来包含的那一行将注释去掉并将值改成自己的jdk路径:

export JAVA_HOME=/home/app/java/jdk1.8.0_211 (5)主节点初始化

这里我将hadoop01设置为主节点,所以需要在这台上进行namenode初始化。

# cd /home/app/hadoop/hadoop-2.7.7/bin/ # ./hadoop namenode -format

格式化之后在/home/app/hadoop/hadoop-2.7.7/hdfs/name下产生了一个current目录,且会有一系列文件: 在这里插入图片描述

(6)启动hadoop

上面都执行顺利的话,下面就可以启动Hadoop服务了

# cd /home/app/hadoop/hadoop-2.7.7/sbin/ # ./start-all.sh

查看主节点是否启动成功,成功则有以下的几项: 在这里插入图片描述 查看两个节点是否启动成功,成功则两个从节点都有以下的几项:在这里插入图片描述 在widows系统浏览器可看到前端网页(ip为主节点): http://191.166.xxx.xxx:50070/ 在这里插入图片描述 本页往下滑可以查看活跃的数据节点信息: 在这里插入图片描述 切换到Datanodes页可以看到有数据节点的信息: 在这里插入图片描述 http://191.166.xxx.xxx:8088 在这里插入图片描述 此时可进行hadoop自带的WordCount案例测试。

(7)运行自带的wordcount测试程序

Hadoop集群安装完成之后,需要检测一下环境是否能够使用,最简便的办法是运行一下Hadoop自带的WordCount测试程序验证一下。

① 查找测试案例程序jar包路径

我的HADOOP_HOME是:

/home/app/hadoop/hadoop-2.7.7

所以测试程序jar包的路径是:

/home/app/hadoop/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar ② 创建wordcount.txt文件

在/home/app/下创建datafile目录:

# cd /home/app/ # mkdir datafile

创建wordcount.txt文件:

# cd datafile # vi wordcount.txt

随便写一些单词进去,单词间以空格分隔,汉字的话每个字间也以空格分隔,然后保存。

③ hdfs上创建输入输出目录 # hdfs dfs -ls / ##查看hdfs存储/目录下的文件 # hdfs dfs -mkdir /input ##创建hdfs的输入文件目录 # hdfs dfs -mkdir /output ##创建hdfs的输出文件目录 # hdfs dfs -put wordcount.txt /input ##上传wordcount.txt到hdfs上的输入目录内 ④ 执行测试程序

如下程序结果会保存到hdfs上的输出目录的wordcount目录内,此目录不能已存在,会自动创建: 格式:

# hadoop jar 自带wordscount的jar包路径 命名(随意) hdfs的输入路径 hdfs的输出路径

# hadoop jar /home/app/hadoop/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input/wordcount.txt /output/wordcount ⑤ 验证结果 # hdfs dfs -ls /output/wordcount

看到两个文件: 在这里插入图片描述 可以查看/output/wordcount/part-r-00000内的就是执行结果

# hdfs dfs -cat /output/wordcount/part-r-00000

这是截取我的部分结果: 在这里插入图片描述 至此, Hadoop集群安装完毕,验证可用。

个人学习记录,若有错误,欢迎指正。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有