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

Hadoop分布式集群搭建Hadoop2.6+Ubuntu 16.04

235次阅读
没有评论

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

前段时间搭建 Hadoop 分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题。以下是自己根据搭建 Hadoop 分布式集群的经验希望给新手一些帮助。当然,建议先把 HDFS 和 MapReduce 理论原理看懂了再来搭建,会流畅很多。

准备阶段:

系统:Ubuntu Linux16.04  64 位(下载地址:https://www.ubuntu.com/download/desktop)

安装好 Ubuntu 之后,如果之前没有安装过 jdk,需要先安装 jdk。这里安装 jdk 的版本是:jdk1.8.0_144  (下载地址:http://www.Oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) 这里就不展开安装说明,安装 jdk 很简单,可以参考以下内容。

Ubuntu 16.04 安装 JDK 并配置环境变量  http://www.linuxidc.com/Linux/2017-02/140908.htm

Ubuntu 14.04 安装 JDK1.8.0_25 与配置环境变量  http://www.linuxidc.com/Linux/2015-01/112030.htm 

在 Linux 虚拟机下配置 JDK 的环境变量  http://www.linuxidc.com/Linux/2017-01/139212.htm

Ubuntu 安装 JDK 7 / JDK8 的两种方式  http://www.linuxidc.com/Linux/2017-07/145563.htm

Ubuntu 上安装 JDK 1.8  http://www.linuxidc.com/Linux/2016-12/138940tm

Linux 下安装配置 JDK  http://www.linuxidc.com/Linux/2017-08/146053.htm

Ubuntu 16.04 LTS 配置 JDK1.8 出现问题及解决笔记 http://www.linuxidc.com/Linux/2017-02/140138.htm

建议 Ubuntu 下载 64 位,因为 Hadoop2.5.0 之后的版本里面的库都是 64 位的,32 位的 Linux 系统里面每次运行 Hadoop 都会报警告。

现在准备好了一台安装了 java 的 Ubuntu 虚拟机,别忘了搭建 Hadoop 集群至少需要三台 Ubuntu 虚拟机。

最简单的办法就是 使用 VMware 自带的 克隆 的办法,克隆出三台一模一样的虚拟机。

具体操作参见地址(http://www.linuxidc.com/Linux/2017-06/144861.htm)

准备好了三台 Ubuntu Linux 虚拟机,接下来就开始搭建集群。

先总的看一下所有的步骤:

一、配置 hosts 文件

二、建立 hadoop 运行帐号

三、配置 ssh 免密码连入

四、下载并解压 hadoop 安装包

五、配置 /etc/hadoop 目录下的几个文件及 /etc/profile

六、格式化 namenode 并启动集群 

接下来根据步骤开始搭建:

一、配置 hosts 文件

以上准备了三台虚拟机,但是虚拟机的主机名也是一样的,需要现对虚拟机主机名进行修改,来进行区分一个主节点和两个从节点。

修改主机名命令:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

显示的 master 就是主机名,我这里已经修改好了,可以把三台虚拟机分别命名 主节点:master 从节点 1:node1 从节点 2:node2

 Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

修改好了,保存即可。

接下来,分别查看三台虚拟机的 ip 地址,命令如下:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

inet addr 就是这台虚拟机的 ip 地址。

接下来打开 hosts 文件 进行修改:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

将三台虚拟机的 ip 地址和主机名加在里面,其它的不用动它。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

三台虚拟机 都要修改 hosts 文件。简单的说配置 hosts 后三台虚拟机就可以进行通信了,可以互相 ping 一下试试,是可以 ping 通的。

 

二、建立 hadoop 运行帐号

解释一下这一步骤,就是建立一个 group 组,然后在三台虚拟机上重新建立新的用户,将这三个用户都加入到这个 group 中。

以下操作 三台虚拟机都要进行相同操作

 首先添加一个叫 hadoop 用户组进来

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

添加名叫 hduser 的用户,并添加到 hadoop 组中。

 

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

接着输入以下指令然后输入两次密码

 Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

然后赋予 hduser 用户 admin 权限

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

接下来的操作 切换到刚刚新建的用户进行

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

三、配置 ssh 免密码连入

开始配置 ssh 之前,先确保 三台机器 都装了 ssh。

输入以下命令查看安装的 ssh。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

如果缺少了 opensh-server,需要进行安装。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

安装完毕之后开始配置 ssh

接下来的 这第三个步骤的操作请注意是在哪台主机上进行,不是在三台上同时进行

(1)下面的操作在 master 机上操作

首先在 master 机上输入以下命令,生成 master 机的一对公钥和私钥:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

以下命令进入认证目录可以看到,id_rsa 和 id_rsa.pub 这两个文件,就是我们刚刚生成的公钥和私钥。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

然后,下面的命令将公钥加入到已认证的 key 中:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

再次进入生成目录,可以看到多出 authorized_keys 这个文件:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

然后输入 ssh localhost 登录本机命令,第一次提示输入密码,输入 exit 退出,再次输入 ssh localhost 不用输入密码就可以登录本机成功,则本机 ssh 免密码登录已经成功。

 Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

到这里是不是已经对 ssh 免密码登录有了认识,不要着急,开始配置 node1 和 node2 节点的 ssh 免密码登录,目的是让 master 主机可以不用密码登录到 node1 和 node2 主机。

(2)这一步分别在 node1 和 node2 主机上操作

将 master 主机上的 is_dsa.pub 复制到 node1 主机上,命名为 node1_dsa.pub。node2 主机进行同样的操作。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

将从 master 得到的密钥加入到认证,node2 主机进行同样的操作。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

然后开始验证是不是已经可以进行 ssh 免密码登录。

(3)在 master 机上进行验证

同样第一次需要密码,之后 exit 退出,再 ssh node1 就不需要密码登录成功,说明 ssh 免密码登录配置成功!

 Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

如果失败了,可能是前面的认证没有认证好,可以将.ssh 目录下的密钥都删了重新生成和配置一遍。或者检查下 hosts 文件 ip 地址写的对不对。

 

四、下载并解压 hadoop 安装包

版本:Hadoop2.6.0(下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/)

建议初学者选择 2.6.0 或者 2.7.0 版本就可以了,而且如果后面要配置 Eclipse 开发环境的话,这两个版本的插件很容易找到,不用自己去编译。

话不多说,将 hadoop 压缩包,解压到一个文件夹里面,我这里解压到了 home 文件夹,并修改文件夹名为 hadoop2.6。所在的目录就是 /home/hduser/hadoop2.6

 三台主机都要解压到相应位置

 

五、配置 /etc/hadoop 目录下的几个文件及 /etc/profile

主要有这 5 个文件需要修改:

~/etc/hadoop/hadoop-env.sh

~/etc/hadoop/core-site.xml

~/etc/hadoop/hdfs-site.xml

~/etc/hadoop/mapred-site.xml

~/etc/hadoop/slaves

/etc/profile

三台机都要进行这些操作,可以先在一台主机上修改,修改完了复制到其它主机就可以了。

 首先是hadoop-env.sh , 添加 java 安装的地址,保存退出即可。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

然后 core-site.cml

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

解释下:第一个 fs.default.name 设置 master 机为 namenode   第二个 hadoop.tmp.dir 配置 Hadoop 的一个临时目录,用来存放每次运行的作业 jpb 的信息。

 

接下来 hdfs-site.xml 的修改:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

解释下:dfs.name.dir 是 namenode 存储永久性的元数据的目录列表。这个目录会创建在 master 机上。dfs.data.dir 是 datanode 存放数据块的目录列表,这个目录在 node1 和 node2 机都会创建。dfs.replication 设置文件副本数,这里两个 datanode,所以设置副本数为 2。

接下来mapred-site.xml 的修改:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

解释下:这里设置的是运行 jobtracker 的服务器主机名和端口,也就是作业将在 master 主机的 9001 端口执行。

 接下来修改 slaves 文件

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

这里将两台从主机的主机名 node1 和 node2 加进去就可以了。

 最后修改 profile 文件,如下进入 profile:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

将这几个路径添加到末尾:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

��改完让它生效:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

 

 检查下是否可以看到 hadoop 版本信息

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

显示出了版本信息,如果没有显示出来,回过去检查 profile 路径是否填写错误。

 

六、格式化 namenode 并启动集群 

接下来需要 格式化 namenode,注意 只需要在 master 主机上进行格式化。格式化命令如下:

 Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

看到 successful 表示格式化成功。

接下来启动集群:

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

启动完毕,检查下启动情况:master 主机看到四个开启的进程,node1 和 node2 看到三个开启的进程表示启动成功。

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

Hadoop 分布式集群搭建 Hadoop2.6+Ubuntu 16.04

如果有疑问或疏漏的地方,欢迎大家指出和讨论!

Hadoop2.3-HA 高可用集群环境搭建  http://www.linuxidc.com/Linux/2017-03/142155.htm

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 下 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-08/146389.htm

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