一Hadoop 2.x 分布式安装部署

Posted 王小小小草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一Hadoop 2.x 分布式安装部署相关的知识,希望对你有一定的参考价值。

一、Hadoop 2.x 分布式安装部署


1.分布式部署hadoop 2.x

1.1克隆虚拟机并完成相关配置

1.1.1克隆虚拟机

点击原有虚拟机–>管理–>克隆–>下一步–>创建完成克隆–>写入名称hadoop-senior02–>选择目录

1.1.2配置修改

1)启动克隆虚拟机(内存配置:01:2G;02:1.5G;03:1.5G)
2)修改主机名:改两处
3)修改网卡名称
编辑 /etc/udev/rules.d/70-persistent-net.rules
—>注释掉包含eth0的行
—>把包含eth1行中的eth1改成eth0
技术分享

编辑 /etc/sysconfig/network-script/ifcfg-eth0
—>将mac地址改成虚拟机设置的地址
技术分享

5)配置完后重启
6)设置固定IP
技术分享

7)将3台机器都连接到crt

1.2对集群中的虚拟机进行基本配置准备工作

1)首先将/tmp目录下的所有东东都删掉

$cd /tmp

$sudo rm -rf ./*

2)将hadoop-2.5.0,maven,m2所有删除

$cd /opt/modules/

rm?rf./hadoop?2.5.0/rm -rf ./apache-maven-3.0.5/
cd /.m2/rm -rf ./*

3)将所有机器的主机名和IP映射好
编辑/opt/hosts
将所有机器添加每台机器的映射,即在每台虚拟机上打开该文件,并如下添加:
技术分享
在windows中Hosts文件也同样配置映射
技术分享
如此在任一机器上都可以连接集群中的其他有机器。

4)在所有机器的opt目录下添加一个目录/app/并修改归属,所有集群都在这下面做(集群的安装目录必须统一!)

$sudo mkdir /opt/app

$sudo chown -R beifeng:beifeng /opt/app/

5)将hadoop-2.5.0解压到app目录下(将一台机器配好,然后发送给其他机器)

$tar -zxf /opt/softwares/hadoop-2.5.0.tar.gz -C /opt/app/

1.3合理规划hadoop服务组件部署

分布式架构都采用主从架构,若为伪分布式则主从都在一台机器,若分布式则主节点在一台机器,从节点在多台机器。一般把datanode和nodermanager放在一台机器上,前者使用电脑磁盘空间去存储数据,后者使用内存与CPU去计算分析数据。
若使用3台虚拟机则可配置如下

3台 hadoop-senior hadoop-senior02 hadoop-senior03
内存 2G 1.5G 1.5G
CPU 1核 1核 1核
硬盘 20G 20G 20G
服务组件 namenode
resourcemanager
datanode datanode datanode
nodemanager nodemanager nodemanager
MRHistoryserver secondarynamenode

若使用2台虚拟机则可配置如下(本次练习只使用两台机器)

2台 hadoop-senior hadoop-senior02
内存 2G 1.5G
CPU 1核 1核
硬盘 20G 20G
服务组件 resoucemanager
namenode
datanode datanode
nodemanager nodemanager
secondarynamenode MRHistoryserver

1.4以【hadoop 2.x伪分布式部署】为模板,配置各个服务组件部属节点

1.4.1配置${JAVA_HOME}

打开hadoop-evn.sh,mapred-env,yarn-env.sh
配置jdk的目录给JAVA_HOME
技术分享

1.4.2配置hdfs

创建tmp目录:

$mkdir -p /opt/app/hadoop2.5.0/data/tmp

打开core-site.xml,添加配置如下:
技术分享

打开slaves,配置如下
技术分享

打开hdfs-site.xml
技术分享

1.4.3配置yarn

打开yarn-site.xml, 配置如下:
技术分享

1.4.4配置historyserver

打开mapred.site.xml,配置如下:
技术分享

1.5分发hadoop到个机器,并启动hdfs,yarn

1.5.1分发

$scp -r hadoop-2.5.0/ [email protected]-senior02.ibeifeng.com:/opt/app/

1.5.2启动HDFS,YARN

1)先格式化hdfs
2)启动 senior02的namenode,两台datanode
3)启动senior的resourcemanager,两台nodemanager
4)启动senior02的Jobserver
5)启动senior的secondarynamenode
技术分享
技术分享

WEB UI查看datanode已经生成了2个
技术分享

WEB UI查看 nodemanager也有两个
技术分享

1.6测试

1.6.1上传文件

新建目录

$bin/hdfs dfs -mkdir -p tmp/conf

上传文件

$bin/hdfs dfs -put etc/hadoop/*-site.xml tmp/conf

技术分享
读取文件

$bin/hdfs dfs -text tmp/conf/core-site.xml

技术分享

1.6.2 wordcount程序测试

1)新建目录

$bin/hdfs dfs -mkdir -p  mapreduce/wordcount/input

2)上传文件到目录

bin/hdfs dfs -put /opt/datas/wc.input mapreduce/wordcount/input

技术分享

3)运行wordcount程序

$bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount mapreduce/wordcount/input mapreduce/wordcount/output

技术分享

4)读取文件

$bin/hdfs dfs -text mapreduce/wordcount/output/par*

技术分享

1.6.3基准测试(指南p315)

测试磁盘内存
1)

$bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar

2)

$bin/yarn jar hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.5.0.jar

1.7配置ssh无秘钥登入

现将原有的全删掉:

$cd .ssh/
$rm -rf ./*

在主节点上分别配置nodemanager 和 resourcemanage两个主节点:
1)生成一对公钥与密钥

$ssh-keygen -t rsa

2)拷贝公钥到各个机器上

$ssh-copy-id bigdata-senior.ibeifeng.com
$ssh-copy-id bigdata-senior02.ibeifeng.com

3)shh链接

$ssh bigdata-senior.ibeifeng.com
$ssh hadoop-senior02.ibeifeng.com

如图
技术分享

1.8集群时间同步

集群时间同步

1.8.1 找一台机器作为时间服务器,所有机器与这台时间服务器进行同步时间

如在01机上:
1)查看时间服务器是否安装:

sudo rmp -qa|grep ntp

2)查看时间服务器运行状态

sudo service ntp status 

3)开启时间服务器

sudo chkconfig ntpd start

4)设置随机启动

sudo chkconfig ntpd on

5)查看启动状态

sudo chkconfig --list|grep ntpd

6)配置文件

sudo vi /etc/ntp.conf

三处修改:
(1)删除下一行的注释,并修改网段(IP地址的前3串,后面为.0)

restrict 192.168.194.0 mask 255.255.255.0 nomodify notrap 

(2)将时间服务器server注释掉

#server 0.centos.pool.ntp.org
#server 1.centos.pool.ntp.org 

(3)去掉以下两行注释

server 127.127.1.0....
fudge 127.127.1.1.0.....

7)重启服务器

sudo service ntpd restart

8)时间服务器与bios同步

$sudo vi /etc/sysconfig/ntpd

添加内容:
SYNC_HWLOCK=yes
等待5分钟

1.8.2 配置所有机器与该机器同步

1)配置所有机器与这台hadoop-senior机器同步

sudo /usr/sbin/ntpdate hadoop-senior.ibeifeng.com

2)写一个定时任务,每过一段时间与时间服务器进行同步时间
首先切换到root
设置每过10分钟更新一次同步

$sudo crontab -e

加入:0-59/10* * * */user/sbin/ntpdate hadoop-senior.ibeifeng.com

3)设置时间

sudo date -s 2015-11-17
sudo date -s 17:54:00












































以上是关于一Hadoop 2.x 分布式安装部署的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop 2.x分布式集群部署

Hadoop.2.x_集群初建

Hadoop学习------Hadoop安装方式之:分布式部署

Centos环境下从零部署Hadoop分布式集群

hadoop 2.x HA(QJM)安装部署规划

阿里云ECS服务器部署HADOOP集群:Sqoop 安装