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

CentOS7下Hadoop分布式系统的安装部署

150次阅读
没有评论

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

1、关于虚拟机的复制

新建一台虚拟机,系统为 CentOS7,再克隆两台,组成一个三台机器的小集群。正常情况下一般需要五台机器(一个Name 节点,一个 SecondName 节点,三个 Data 节点。)

 此外,为了使网络生效,需要注意以下几点:

1>  编辑网络配置文件

/etc/sysconfig/network-scripts/ifcfg-eno16777736

先前的版本需要 删除 mac 地址行,注意不是 uuid,而是hwaddr 这一点新的 CentOS 不再需要

2> 删除网卡和 mac 地址绑定文件 

rm -rf /etc/udev/rules.d/70-persistent-net.rules

3> 重启动系统

此外,mapreduce在运行的时候会随机开放端口,在 CentOS7 中,可以使用下面的命令将防火墙关闭

systemctl stop firewalld

2、IP 地址设置为静态

准备了三个 IP 地址

192.168.1.215

192.168.1.218

192.168.1.219

 CentOS7 下,修改 ip 地址的文件为/etc/sysconfig/network-scripts/ifcfg-eno16777736

主要作如下设置,其他的不需要变

# none 或 static 表示静态
OOTPROTO=static
# 是否随网络服务启动
ONBOOT=yes
IPADDR=192.168.1.215
# 子网掩码
NETMASK=255.255.255.0
# 网关,设置自己的
GATEWAY=192.168.0.1
# dns
DNS1=202.106.0.20

3、修改 hostname 与 hosts 文件

这两个文件均处于系统根目录的 etc 文件夹之中

下图显示了映射后的机器名称以及对应的 ip 地址(#localhost.localdomain 这一行多余,仅 master 刚刚好)

主节点master,两个数据节点data1data2

 CentOS7 下 Hadoop 分布式系统的安装部署

4、添加用户与组

需要为 Hadoop 软件系统设置单独的用户和组,本例中新添加的用户和所属组的名称均为hadoop  

adduser hadoop
passwd hadoop 

 5、利用 ssh 实现免密码登录

注意,目的是使 Hadoop 系统的所属用户在集群之间实现免密码登录,而不是 root 用户(除非 Hadoop 系统的所有者root,但一般不建议这么做)。这一点非常重要。

在本例中,软件所有者是上面新建的 hadoop 用户,密钥也要由 hadoop 用户来生成。

1> 更改配置文件

需要对 sshd_config 文件进行修改,主要是以下三项,取消注释即可 

?
1
vim /etc/ssh/sshd_config

 

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

之后,执行以下命令重启sshd 服务

service sshd restart

2> 生成密钥并分发相关文件

实现步骤如下:

a> 将三台计算机(masterdata1data2)分别切换到 hadoop 用户下,并分别 cdhadoop用户的家目录,然后执行 ssh-keygen -t rsa 命令,这样的结果,是在各自家目录的 .ssh 文件夹中生成了对应的 id_rsa.pub id_rsa 密钥对。

b> data1192.168.1.218),data2192.168.1.219)两台计算机中的公钥文件复制到master192.168.1.215)中,并重命名为id_rsa.pub218id_rsa.pub219,置于hadoop 用户家目录下的 .ssh 文件夹下。命令参考如下: 

scp id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub218
scp id_rsa.pub hadoop@master:~/.ssh/id_rsa.pub219

 hadoop@master表示用 master 中的 hadoop 用户登录master

这样以来,master主机 hadoop 用户的 .ssh 文件夹就有了以下三个公钥文件:

d_rsa.pubd_rsa.pub218d_rsa.pub218

c> master 中,将以上三个文件以追加的形式写入 authorized_keys 文件,这些文件均位于 hadoop 用户 .ssh 文件夹中。 

cat id_rsa.pub >> authorized_keys 
cat id_rsa.pub218 >> authorized_keys
cat id_rsa.pub219 >> authorized_keys

 d> 更改  authorized_keys  文件的权限。这一步也可在分发后单独进行 

chmod 600 authorized_keys

 e> 分发 authorized_keys 文件到data1,data2 中 hadoop 用户的.ssh 文件中,并再次检查权限 

scp authorized_keys hadoop@data1:~/.ssh/authorized_keys
scp authorized_keys hadoop@data2:~/.ssh/authorized_keys

 之后就可以在小集群中使用 hadoop 用户实现免密码登录了。 

6、安装 jdk 

先在 master 中安装,之后分发,这里使用的是jdk-8u112-linux-x64.tar.gz

 1> 解压安装

 首先需要切换到 root 用户 

su root
cd /usr
mkdir java
tar -zxvf jdk-8u112-linux-x64.tar.gz ./java
ln -s jdk1.8.0_112/ jdk

 2> 分发

scp -r /usr/java root@data2:/usr/
scp -r /usr/java root@data2:/usr/

3> 设置环境变量,三台都要设置

1
vim /etc/profile
export JAVA_HOME=/usr/java/jdk
export JRE_HOME=/usr/java/jdk/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
source /etc/profile

CentOS7 下 Hadoop 分布式系统的安装部署

 7、安装 hadoop

先在 master 下安装,再分发

安装的版本为 2.6.5 解压安装到/usr/Apache/ 目录下,并建立软连接

Hadoop 所有配置文件的目录位于 /usr/Apache/hadoop-2.6.5/etc/hadoop 下,由于建立了一个软连接,所以 /usr/Apache/hadoop/etc/hadoop 是一样的

在 hadoop 软件目录的 dfs 文件夹中创建三个子文件夹 name、data、tmp,下面属性的设置会用到,注意其所有者和所属组。

CentOS7 下 Hadoop 分布式系统的安装部署

以下是配置文件的设置:

1> hdfs.site.xml 

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/usr/Apache/hadoop/dfs/name</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/usr/Apache/hadoop/dfs/data</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:50090</value>
</property>
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>

2> mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
</property>

3> yarn-site.xml

设置如下: 

<property> 
    <name>yarn.nodemanager.aux-services</name> 
    <value>mapreduce_shuffle</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.address</name>  
    <value>master:8032</value>  
</property>  
<property>  
    <name>yarn.resourcemanager.scheduler.address</name>  
    <value>master:8030</value>  
</property>  
<property>  
    <name>yarn.resourcemanager.resource-tracker.address</name> 
    <value>master:8031</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.admin.address</name> 
    <value>master:8033</value> 
</property> 
<property> 
    <name>yarn.resourcemanager.webapp.address</name> 
    <value>master:8088</value> 
</property> 

 4> slaves 配置文件

master
data1
data2

注:本例将 master 也作为了一个数据节点

5> hadoop-env.sh 和 yarn-env.sh

这是两个相当重要的环境变量配置文件,由于目前仅安装 Hadoop,所以仅设置 jdk 即可,其他默认。

export JAVA_HOME=/usr/java/jdk

6> 将 Apache 文件夹分发到 data1,data2 对应的目录下

# 分发
scp -r ./Apache root@data1:/usr/
scp -r ./Apache root@data2:/usr/

# 这里使用了 root 用户,记得分发后要改所有者与所属组
chown -R hadoop:hadoop Apache/

注意 jdk 是不需要改所有者与所属组的,因为通用 

7> 三台机器分别配置 hadoop 用户的.bashrc 文件,设置环境变量

su hadoop
vim ~/.bashrc
export $HADOOP_HOME=/usr/Apache/hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export CLASSPATH=.:$HADOOP_HOME/lib:$CLASSPATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc

8、开启历史服务器

./mr-jobhistory-daemon.sh start historyserver
./yarn-daemon.sh start historyserver

9、运行结果

相关进程

 CentOS7 下 Hadoop 分布式系统的安装部署

  CentOS7 下 Hadoop 分布式系统的安装部署

  CentOS7 下 Hadoop 分布式系统的安装部署

All Applications

http://192.168.1.215:8088

JobHistory 

http://192.168.1.215:19888

Master

http://192.168.1.215:50070

 CentOS7 下 Hadoop 分布式系统的安装部署

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

CentOS 6.3 下 Hadoop 伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

实战 CentOS 系统部署 Hadoop 集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop 2.6.0 HA 高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

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

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

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