第一部分-Hadoop集群搭建

该部分是实验整理,一共三部分内容
1、Hadoop集群搭建
2、MapReduce程序的编写
3、Hadoop使用和Hbase使用

第一部分:Hadoop集群搭建

一、实验目的和要求

掌握Hadoop的安装过程,完成Linux系统配置,启动Hadoop集群。

二、实验内容和原理

在Hadoop部署中,有三种服务器角色,他们分别是客户端、Masters节点以及Slave 节点。Master 节点,Masters节点又称主节点,主节点负责监控两个核心功能:大数据存储(HDFS)以及数据并行计算(Map Reduce)。其中,Name Node 负责监控以及协调数据存储(HDFS)的工作,Job Tracker 则负责监督以及协调 Map Reduce 的并行计算。而Slave 节点则负责具体的工作以及数据存储。每个 Slave 运行一个Data Node 和一个Task Tracker 守护进程。这两个守护进程负责与 Master 节点通信。Task Tracker 守护进程与 Job Tracker 相互作用,而 Data Node 守护进程则与 Name Node 相互作用。
所有的集群配置都会存在于客户端服务器,但是客户端服务器不属于Master 以及 Salve,客户端服务器仅仅负责提交计算任务给 Hadoop 集群,并当 Hadoop 集群完成任务后,客户端服务器来拿走计算结果。

三、主要环境

CentOS 6.5、hadoop-2.5.2、jdk-8u101-linux-x64、虚拟机

四、实验数据记录和处理

4.1启动两台虚拟客户机

打开VMware Workstation10,打开已经安装好的虚拟机:HadoopMaster和HadoopSlave。

4.2 Linux系统配置

以下操作步骤需要在HadoopMaster和HadoopSlave节点上分别完整操作,都是用root用户,从当前用户切换root用户的命令如下:

su root

输入密码:自定义密码
本节所有的命令操作都在终端环境
终端环境

4.2.1 拷贝软件包和数据包

将完整软件包整体拖拽到HadoopMaster节点的/home/zzf/resource文件夹中

4.2.2配置时钟同步

1.配置自动时钟同步
使用Linux命令配置

crontab -e

键入下面的一行代码:
输入i,进入插入模式

0 1 * * * /usr/sbin/ntpdate us.pool.ntp.org

输入完毕,按esc键,然后按shift+;组合键,再输入wq回车,完成输入。
2.手动同步时间

/usr/sbin/ntpdate us.pool.ntp.org
4.2.3配置主机名

1.HadoopMaster节点
使用gedit编辑主机名

gedit /etc/sysconfig/network

配置信息如下:如果已经存在则不修改,将HadoopMaster节点的主机名改为master,即下面代码的第3行所示

NETWORKING=yes             #启动网络
NETWORKING_IPV6=no
HOSTNAME=master             #主机名

确认修改生效命令

hostname master

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端

hostname

执行完命令,会看到下图的打印输入
hostname
2.HadoopSlave节点
使用gedit编辑主机名

gedit /etc/sysconfig/network

配置信息如下:如果已经存在则不修改,将HadoopSlave节点的主机名改为master,即下面代码的第3行所示

NETWORKING=yes #启动网络
NETWORKING_IPV6=no
HOSTNAME=slave #主机名

确认修改生效命令

hostname slave

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端

hostname

执行完命令,会看到下图的打印输入
slave

4.2.4使用setup命令配置网络环境

在终端中执行下面的命令

ifconfig

如果看到下面的打印输出
ifconfig

4.2.5关闭防火墙

在终端中执行如下命令

setup

会出现如下图中的内容
wall
光标移动选择“Firewall configuration”选项,回车进入选项
如果该项前面有“*”标,则按一下空格键关闭防火墙,如下图所示,然后光标移动选择“ok”保存修改内容,选择ok, 选择yes,quit
wall_1wall_2wall_3

4.2.6配置hosts列表

编辑主机名列表的命令

gedit /etc/hosts

将下面两行添加到/etc/hosts文件中,如下图

192.168.58.132 master
192.168.58.136 slave

edit hosts
验证是否配置成功的命令是

ping master master
ping slave

ping

4.2.7安装JDK

将JDK文件解压,放到/usr/java目录下

cd /home/zzf/resource
mkdir /usr/java
mv jdk-8u101-linux-x64.tar.gz /usr/java/
cd /usr/java
tar -xvf jdk-8u101-linux-x64.tar.gz

使用gedit配置环境变量

gedit /home/zzf/.bash_profile

复制粘帖一下内容添加到上面gedit打开的文件中

export JAVA_HOME=/usr/java/jdk1.8.0_101/
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

使改动生效命令

source.bash_profile

测试配置

java -version

出现下图的信息
java -version

4.2.8免密钥登录配置

该部分所有的操作都要在zzf用户下

su zzf

1.HadoopMaster节点
在终端生成密钥,命令如下(一路点击回车生成密钥)

ssh-keygen -t rsa

复制公钥文件

cat /.ssh/id_rsa.pub>>/.ssh/authorized_keys

修改authorized_keys文件的权限,命令如下

chmod 600 authorized_keys

将authorized_keys文件复制到slave节点,命令如下

scp authorized_keys zzf@slave:~/

如果提示输入yes/no的时候,输入yes,回车
2.HadoopSlave节点
在终端生成密钥,命令如下(一路点击回车生成密钥)

ssh-keygen -t rsa

将authorized_keys文件移动到.ssh目录

mv authorized_keys ~/.ssh/

修改authorized_keys文件的权限

cd ~/.ssh
chmod 600 authorized_keys

3.验证免密钥登录
在HadoopMaster机器上执行下面的命令

ssh slave

如果出现下图的内容表示免密钥配置成功
ssh

4.3Hadoop配置部署

每个节点上的Hadoop配置完全相同,可以每个节点都操作一遍,或者一个操作完成复制到另一个节点。

su zzf
4.3.1Hadoop安装包解压

进入Hadoop软件包,命令如下:

cd /home/zzf/resource

复制并解压Hadoop安装包命令如下:

cp hadoop-2.5.2.tar.gz ~/
cd
tar -zxvf hadoop-2.5.2.tar.gz
cd hadoop-2.5.2
4.3.2配置环境变量 Hadoop-env.sh

环境变量文件中,只需要配置JDK的路径

gedit /home/zzf/hadoop-2.5.2/etc/hadoop/hadoop-env.sh

在文件的靠前面的部分找到下面一行代码
env.sh
将这行代码修改为
env.sh
然后保存。

4.3.3 配置环境变量 yarn-env. sh

环境变量文件中,只需要配置 JDK 的路径。

gedit /home/zzf/hadoop-2.5.2/etc/hadoopyarn-env.sh

在文件的靠前的部分找到下面的一行代码:

#export JAVA_HOME=/home/y/libexec/jdk1.6.0/

将这行代码修改为下面的代码(将#号去掉):

export JAVA_HOME=/usr/java/jdk1.8.0_101/

然后保存文件。
yarm-env.sh

4.3.4配置核心组件core-site.xml

使用gedit编辑

gedit /home/zzf/hadoop-2.5.2/etc/hadoop/core-site.xml

用下面的代码替换文件中的内容

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zzf/hadoopdata</value>
</property>
</configuration>
4.3.5配置文件系统hdfs-site.xml

使用gedit编辑

gedit /home/zzf/hadoop-2.5.2/etc/hadoop/hdfs-site.xml

用下面的代码替换文件中的内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>
4.3.6 配置文件系统 yarn-site.xml

使用gedit编辑

gedit /home/zzf/hadoop-2.5.2/etc/hadoop/yarn-site.xml

用下面的代码替换文件中的内容

<?xml version="1.0"?>
<configuration>
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
4.3.7配置计算框架mapred-site.xml

使用gedit编辑

gedit /home/zzf/hadoop-2.5.2/etc/hadoop/mapred-site.xml

用下面的代码替换文件中的内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4.3.8配置从节点slaves

使用gedit编辑

gedit /home/zzf/hadoop-2.5.2/etc/hadoop/slaves

用下面的代码替换conf/masters中的内容

slave
4.3.9复制到从节点

使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上

cd
scp -r hadoop-2.5.2 zzf@slave:~/

4.4启动Hadoop集群

下面所有的操作都使用自定义用户(zzf)。

4.4.1配置Hadoop启动的系统环境变量

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:

cd
gedit .bash_profile

将下面的代码追加到文件末尾

#HADOOP
export HADOOP_HOME=/home/zzf/hadoop-2.5.2
export PATH=$HADOOP_HOME/bin:$PATH

然后执行命令

source .bash_profile
4.4.2创建数据目录

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,在zzf的用户主目录下,创建数据目录,操作命令如下:

mkdir /home/zzf/hadoopdata
4.4.3启动Hadoop集群

1.格式化文件系统
格式化命令如下,该操作需要在HadoopMaster节点上执行

hadoop namenode -format

看到下图的打印信息表示格式化成功
start hadoop
2.启动Hadoop
使用start-all.sh启动Hadoop集群,首先进入Hadoop安装主目录,然后执行启动命令

cd ~/hadoop-2.5.2
sbin/start-all.sh

3.查看进程是否启动

在HadoopMaster的终端执行jps命令,在打印结果中会看到4个进程,分别是JobTracker、Jps、NameNode和SecondaryNameNode,如下图所示,表示主节点进程启动成功。
jps
在HadoopSlave的终端执行jps命令,在打印结果中会看到3个进程,分别是TaskTraker、DataNode和Jps,如下图所示。如果出现这3个进程表示从节点进程启动成功。
jps
4. Web UI查看集群是否成功启动
在HadoopMaster上启动Fixefox浏览器,在浏览器地址栏中输入http://master:50070/,UI页面如下图所示。
50070
在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:18088/, 检查Yarn 是否正常,页面如下图所示。
180885.运行PI实例检查集群是否成功
进入Hadoop安装主目录,执行下面的命令

cd /home/zzf//hadoop-2.5.2/share/hadoop/mapreduce/
hadoop jar /home/zzf/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10

会看到如下的执行结果
pipi
最后输出:Estimated value of Pi is 1.20000000000000000000

五、实验结果与分析

如果以上的 3 个验证步骤都没有问题,说明集群正常启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值