阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu 14.04 Server 环境下Hadoop 2.7.2 的安装部署

216次阅读
没有评论

共计 3949 个字符,预计需要花费 10 分钟才能阅读完成。

Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

实验环境:

3 台机器

  • Ubuntu 14.04 Server 主机名:ubuntu7 作 master
  • Ubuntu 14.04 Server 主机名:ubuntu130 作 slave1
  • Ubuntu 14.04 Server 主机名:ubuntu131 作 slave2

配置 /etc/hosts 文件:

ubuntu7 即 master 机器上的 /etc/hosts 文件如下:
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
把 master 上 hosts 文件内容复制并覆盖掉 slave1 和 salve2 中的 hosts 文件,仅仅修改主机名即可,即在 slave1 的 /etc/hosts 文件中,把 ubuntu7 改为 ubuntu130.
注意!!!!Ubuntu 环境下,hosts 文件中,主机名千万不能与 127.0.0.1 或 127.0.1.1 配对,一定要与对应的局域网 IP 配对。如上图,主机名 ubuntu7 一定要与局域网 IP 172.16.0.7 配对。重要教训请参考 http://www.linuxidc.com/Linux/2017-11/148344.htm 以及 Hadoop 官方 wiki 友情提醒:http://wiki.apache.org/hadoop/ConnectionRefused

配置 ssh 无密码连接:

由于 hadoop 是集群资源管理系统,涉及到集群中各台机器相互之间数据传输等通信过程,因此需要处理好机器之间的数据通信安全问题。在 linux 环境下,最常用的通信处理手段就是 ssh 服务。
下面以 ssh 的连接过程为例,简单说一下 ssh 的原理:
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

客户端连接服务端每次都要输入密码的原因在于:服务器没有长时间保留客户端的公钥。因此如果服务器把客户端的公钥保留在一个固定的文件中,下次客户端连接时,服务器直接从这个固定文件中查取,就不需要客户端再重新发送一次了,因此就可实现无密码连接。
那么有没有这个固定文件呢?没错,ssh 软件默认是.ssh 目录下的 authorized_keys 文件

因此 ssh 无密码连接的关键在于,把客户端的公钥永久保存至服务器上的一个文件。
下面配置从 slave1 ssh 无密码连接 master
slave1 端

ssh-keygen // 生成客户端的公私钥,一般保存在~/.ssh 文件下
把 slave1 端的公钥上传到 master 端
scp ~/.ssh/id_rsa.pub lilelr@master:~

master 端
在 master 的~ 目录下,将客户端的公钥追加到 authorized_keys 文件下

cat id_rsa.pub >> .ssh/authorized_keys

ssh 服务重启,使新配置生效:

sudo /etc/init.d/ssh restart

ok, 此时,slave1 登录到 master 就无需密码。注意!!!此时无密码连接只是单向关系,即 slave1 到 master 无需密码登录,但 master 到 slave1 端连接依然需要密码。怎么办?把 master 和 slave1 的位置互换一下,重新执行上述步骤,即可实现 master 到 slave1 端的无密码登录。

配置相关环境变量:

在 master 节点上:
去 apache 官网下载 hadoop-2.7.2.tar.gz 以及下载 JDK 1.8.
注意!!!开源的 openJdk 是执行不了 jps 命令的,因此若经常使用 jps 命令,最好下载 JDK.
在~ 用户目录下新建文件夹 hadoop。在 hadoop 目录中新建 hdfs 和 script 文件夹,并把 hadoop 2.7.2.tar.gz 解压到 hadoop 目录中。
将 jDK 1.8 解压到 /usr/lib/jvm 目录下。
~/hadoop 目录情况:
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
在.bashrc 文件末尾添加环境变量。

vim  ~/.bashrc

加上:
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

其中 lilelr 为我的 linux 用户名。
立刻使环境变量生效:

source ~/.bashrc

上述操作在 salve1 和 slave2 节点上重复,或复制 master 相关文件覆盖 slave 下的相关文件。

配置 hadoop 相关参数:

进入到配置目录

cd ~/hadoop/hadoop-2.7.2/etc/hadoop

修改 hadooop-env.sh 文件,更改 JAVA_HOME 路径。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
修改 core-site.xml

Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

修改 hdfs-site.xml
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
修改 mapred-site.xml
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
修改 yarn-site.xml
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
修改 slaves, 添加 slave1 和 slave2 名。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

上述配置修改完之后,进入到~/hadoop/hdfs 目录,新建 data、name、和 tmp 目录

mkdir data name tmp

最后把 master 上配置好的 hadoop 复制到 slave1 和 slave2 节点上。

scp -r ~/hadoop slave1:~
scp -r ~/hadoop slave2:~

终于成功完成安装配置了。

hdfs 文件系统格式化

由于我们已经把 hadoop 的 bin 或 sbin 相关目录路径写入环境变量,因此下面的命令可在任意路径下执行。
master 节点上,格式化文件系统:

hdfs namenode -format

格式化无误的话,即可看到下图的输出信息提示。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

hadoop2.7.2 启动测试

以下操作在 master 节点上进行:
一次性启动 NameNode 和所有 DataNode 的脚本为 hadoop 自带的 start-dfs.sh(在 sbin 目录下)
报告文件系统状态的命令为:

hdfs dfsadmin -report

启动 yarn, 一次性启动 ResourceManager 和 NodeManager 的 hadoop 脚本为 start-yarn.sh(在 sbin 目录下)
报告 yarn 节点信息的命令为:

yarn node -list

当然,既然 hadoop 启动都是 java 进程,jps 命令当然也可以用来观察 master 机器上的 hadoop 进程。
为了启动方便,我把上述启动命令都写在一个脚本里面,命名为 start.sh, 并把它放在~/hadoop/script 目录下。

vim start.sh

来看看 start.sh 脚本的内容:

#!/bin/bash
start-dfs.sh
hdfs dfsadmin -report
start-yarn.sh
yarn node -list
jps

在~/hadoop/script 目录下,执行 start.sh 脚本。输出结果如下,表明 hadoop 启动成功。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
在 slave1 节点上执行 jps 命令,观察到有 NodeManager 和 DataNode 进程。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

以 hadoop 自带的 example jar 为例测试。此测试程序目的是找出 hadoop etc 目录下文件中
包含“dfs”的各个文件中的行数及每行内容。
为了便于重复测试,同样,我把测试命令写成了脚本,命名为 testhadoop.sh, 并把它放在~/hadoop/script 目录中,其内容如下。

#!/bin/bash
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/lilelr
hdfs dfs -put ~/hadoop/hadoop-2.7.2/etc/hadoop input
hadoop jar ~/hadoop/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
hdfs dfs -cat output/*

执行 testhadoop.sh 脚本,输出结果如下。
map 和 reduce 过程
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署
包含“dfs”的各个文件中的行数及每行内容。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

测试完成,停止 hadoop 集群。先关闭 yarn,后停止 hdfs。
hadoop 自带脚本为 stop-yarn.sh 及 stop-dfs.sh。
Ubuntu 14.04 Server 环境下 Hadoop 2.7.2 的安装部署

Thanks!

Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署  http://www.linuxidc.com/Linux/2017-04/143095.htm

Hadoop2.7.2 集群搭建详解(高可用)http://www.linuxidc.com/Linux/2017-03/142052.htm

使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)http://www.linuxidc.com/Linux/2017-03/142136.htm

Ubuntu 14.04 下 Hadoop 集群安装  http://www.linuxidc.com/Linux/2017-02/140783.htm

CentOS 6.7 安装 Hadoop 2.7.2  http://www.linuxidc.com/Linux/2017-08/146232.htm

Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群  http://www.linuxidc.com/Linux/2017-07/145503.htm

CentOS 7.3 下 Hadoop2.8 分布式集群安装与测试  http://www.linuxidc.com/Linux/2017-09/146864.htm

CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建  http://www.linuxidc.com/Linux/2017-06/144932.htm

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程  http://www.linuxidc.com/Linux/2017-06/144926.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-11/148345.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3949字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中