CentOS上Hadoop环境的搭建与管理

Linux就该这么学

entOS上Hadoop环境的搭建与管理

please down load the attachment

编辑日期:2015年9月1日

 

实验要求:

完成Hadoop平台安装部署、测试Hadoop平台功能和性能,记录实验过程,提交实验报告。

1)    掌握Hadoop安装过程

2)    理解Hadoop工作原理

3)    测试Hadoop系统的可扩展性

4)    测试Hadoop系统的稳定性

一、先决条件

确保在集群中的每个节点上都安装所有必需软件:JDK ,ssh,Hadoop (2.6.0)。

1)JDK,必须安装(版本1.7以上),建议选择Sun公司发行的Java版本。

2)ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。

 

二、Hadoop的安装与配置

HDFS在Master节点启动dfs和yarn服务时,需要自动启动Slave节点服务,HDFS需要通过ssh访问Slave节点机。HDFS需要搭建多台服务器组成分布式系统,节点机间需要无密码访问。本节任务是进行ssh的设置、用户的创建、hadoop参数的设置,完成HDFS分布式环境的搭建。

任务实施:

本节任务需要四台节点机组成集群,每个节点机上安装CentOS-6.5-x86_64系统。四台节点机使用的IP地址分别为:192.168.23.111、192.168.23.112、192.168.23.113、192.168.23.114,对应节点主机名为:node1、node2、node3、node4。节点机node1作为NameNode,其他作为DataNode。

在node1主机上,

编辑 vi /etc/hosts,添加如下内容:

192.168.23.111 node1

192.168.23.112 node2

192.168.23.113 node3

192.168.23.114 node4

编辑 vi /etc/sysconfig/network,修改

HOSTNAME=node1

关闭防火墙

chkconfig iptables off

service iptables stop 

在其他节点主机上进行类似的操作,但需要将HOSTNAME的值分别修改为对应的主机名。

 

 

 

步骤1

创建hadoop用户,分别在四台节点机上创建用户hadoop,uid=660,密码分别为h1111, h2222, h3333, h4444。登录node1节点机,创建hadoop用户和设置密码。操作命令如下。

[root@node1 ~]# useradd -u 660 hadoop

[root@node1 ~]# passwd hadoop

其他节点机的操作相同。

 



步骤2

设置master节点机ssh无密码登录slave节点机。

(1)在node1节点机上,以用户hadoop用户登录或者使用su – hadoop切换到hadoop用户。操作命令如下。

[root@node1 ~]# su - hadoop

(2)使用ssh-keygen生成证书密钥,操作命令如下。

[hadoop@node1 ~]$ssh-keygen -t dsa

(3)使用ssh-copy-id分别拷贝证书公钥到node1,node2,node3,node4节点机上,操作命令如下。

 

[hadoop@node1 ~]$ cd ~

hadoop@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub node1

[hadoop@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub node2

[hadoop@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub node3

[hadoop@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub node4

(4)在node1节点机上使用ssh测试无密码登录node1节点机,操作命令如下。

[hadoop@node1 ~]$ ssh node1

Last Login: Mon Dec 22 08:42:38 2014 from node1

[hadoop@node1 ~]$ exit

Logout

Connection to node1 closed.

以上表示操作成功。

在node1节点机上继续使用ssh测试无密码登录node2、node3和node4节点机,操作命令如下。

[hadoop@node1 ~]$ ssh node2

[hadoop@node1 ~]$ ssh node3

[hadoop@node1 ~]$ ssh node4

测试登录每个节点机后,输入exit退出。

 

步骤3

上传或下载hadoop-2.6.0.tar.gz软件包到node1节点机的root目录下。如果hadoop软件包在node1节点机上编译,则把编译好的包拷贝到root目录下即可。首先找到所需软件包的地址http://mirror.bit.edu.cn/apache/hadoop/common/,如图所示。

 

然后使用wget命令或其他命令下载所需的软件包,操作示例如:

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz

 

步骤4

解压文件,安装文件。操作命令如下。

[root@node1 ~]# cd

[root@node1 ~]# tar xvzf hadoop-2.6.0.tar.gz

[root@node1 ~]# cd hadoop-2.6.0

[root@node1 hadoop-2.6.0]# mv * /home/hadoop/

步骤5

修改hadoop配置文件。Hadoop配置文件主要有:hadoop-env.sh、yarn-env.sh、slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。配置文件在/home/hadoop/etc/hadoop/目录下,可进入该目录进行配置。操作命令如下。

[root@node1 hadoop-2.6.0]# cd /home/hadoop/etc/hadoop/

(1)修改hadoop-env.sh,

如果还没有安装java,先安装java

    yum -y install java-1.7.0-openjdk*

安装出现问题可以参考以下网址教程进行处理.

http://jingyan.baidu.com/article/4853e1e51d0c101909f72607.html

检查各主机的/etc/profile是否有JAVA_HOME变量,没有就在末尾添加:

 

JAVA_HOME=/usr/lib/jvm/java-1.7.0

export JAVA_HOME

 

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH

export CLASSPATH

 

export HADOOP_HOME=/home/hadoop/

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 



保存退出后执行 source /etc/profile

 



将hadoop-env.sh文件中的export JAVA_HOME=${JAVA_HOME}修改为

 

export JAVA_HOME=/usr/lib/jvm/java-1.7.0

 

(2)修改slaves,该文件登记DataNode节点主机名,本处添加node2,node3,node4三台节点主机名。如下所示。

[root@node1 hadoop]# vi slaves

node2

node3

node4

(3)修改core-site.xml,将文件中的<configuration></configuration>修改为如下内容。

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://node1:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hadoop/tmp</value>

<description>Abase for other temporary directories.</description>

</property>

<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.groups</name>

<value>*</value>

</property>

</configuration>

其中node1为集群的NameNode(Master)节点机,node1可以使用IP地址表示。

(4)修改hdfs-site.xml,将文件中的<configuration></configuration>修改为如下内容。

<configuration>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>node1:9001</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

其中为了便于教学,第二个NameNode也使用node1节点机,NameNode产生的数据存放在/home/hadoop/dfs/name目录下,DataNode产生的数据存放在/home/hadoop/dfs/data目录下,设置3份备份。

(5)将文件mapred-site.xml.template改名为mapred-site.xml。操作如下。

[root@node1 hadoop]# mv mapred-site.xml.template mapred-site.xml

将文件中的<configuration></configuration>修改为如下内容。

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>node1:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>node1:19888</value>

</property>

</configuration>

(6)修改yarn-site.xml,将文件中的<configuration></configuration>修改为如下内容。

<configuration>

<property>

<name>yarn.resourcemanager.hostname</name>

<value>192.168.23.111</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>node1:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>node1:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>node1:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>node1:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>node1:8088</value>

</property>

</configuration>

步骤6

修改“/home/hadoop/”文件用户主/组属性,操作如下。

[root@node1 hadoop]# chown -R hadoop:hadoop /home/hadoop

步骤7

将配置好的hadoop系统复制到其他节点机上,操作如下。

[root@node1 hadoop]# cd /home/hadoop

[root@node1 hadoop]# scp -r hadoop-2.6.0 hadoop@node2:/home/hadoop

[root@node1 hadoop]# scp -r hadoop-2.6.0 hadoop@node3:/home/hadoop

[root@node1 hadoop]# scp -r hadoop-2.6.0 hadoop@node4:/home/hadoop

步骤8

分别登录node2,node3,node4节点机,修改 “/home/hadoop/”文件用户主/组属性。

[root@node2~]# chown -R hadoop:hadoop /home/hadoop

[root@node3~]# chown -R hadoop:hadoop /home/hadoop

[root@node4~]# chown -R hadoop:hadoop /home/hadoop

至此,整个hadoop分布式系统搭建完成。

三、Hadoop的管理

 

1.格式化一个新的分布式文件系统

先格式化一个新的分布式文件系统

$ cd /home/hadoop

$ bin/hadoop namenode -format

成功情况下系统输出:

/opt/hadoop/hadoopfs/name has been successfully formatted.

 

查看输出保证分布式文件系统格式化成功

执行完后可以到master机器上看到/home/hadoop/name目录。

2.启动分布式文件服务

 sbin/start-all.sh 

 

sbin/start-dfs.sh

sbin/start-yarn.sh

使用浏览器浏览Master节点机 http://192.168.23.111:50070,查看NameNode节点状态和浏览Datanodes数据节点。

 



使用浏览器浏览Master节点机 http://192.168.23.111:8088查看所有应用。

 

 

 

3.关闭分布式文件服务

sbin/stop-all.sh

4.文件管理

在hdfs创建swvtc目录,操作命令如下。

[hadoop@node1 ~]$ hdfs dfs -mkdir /swvtc         #类似 mkdir /swvtc

在hdfs查看当前目录,操作命令如下。

[hadoop@node1 ~]$ hdfs dfs -ls /                 #类似 ls /

Found 1 items

drwxr-xr-x   - hadoop supergroup          0 2014-12-23 10:07 /swvtc

在本地系统编辑文件jie.txt,操作命令如下。

[hadoop@node1 ~]$ vi jie.txt

添加内容:

Hi,Hadoop!

上传文件jie.txt到hdfs的/swvtc目录中,操作命令如下。

[hadoop@node1 ~]$ hdfs dfs -put jie.txt /swvtc

从hdfs中下载文件。操作命令:

[hadoop@node1 ~]$ hdfs dfs -get /swvtc/jie.txt

查看hdfs中/swvtc/jie.txt的内容,操作命令:

[hadoop@node1 ~]$ hdfs dfs -text /swvtc/jie.txt

Hi,Hadoop!

hadoop dfs -get in getin 从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录

hadoop dfs -rmr out 删除指定文件从HDFS上

hadoop dfs -cat in/* 查看HDFS上in目录的内容

hadoop dfsadmin -report 查看HDFS的基本统计信息,结果如下

hadoop dfsadmin -safemode leave 退出安全模式

hadoop dfsadmin -safemode enter 进入安全模式

 



5.添加节点

可扩展性是HDFS的一个重要特性,首先在新加的节点上安装hadoop,然后修改$HADOOP_HOME/conf /master文件,加入 NameNode主机名,然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新加节点主机名,再建立到新加节点无密码的SSH连接。

运行启动命令:

./start-all.sh

然后可以通过http://(Masternode的主机名):50070查看新添加的DataNode

6.负载均衡

运行命令:

./start-balancer.sh

可以使DataNode节点上选择策略重新平衡DataNode上的数据块的分布。

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注