Rootop 服务器运维与web架构

centos6.6搭建hadoop-1.2测试环境

对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。
一个HDFS集群是由一个NameNode和若干个DataNode组成的。
其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作,集群中的DataNode管理存储的数据。
MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。
主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。
当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。
HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。
HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

系统版本       : Centos6.6 x64
hadoop版本: hadoop-1.2.1
JDK版本      : jdk-7u67-linux-x64.rpm

1、系统信息

IP地址: 主机名:
192.168.0.171 Master.Hadoop
192.168.0.172 Slave1.Hadoop
192.168.0.173 Slave2.Hadoop
192.168.0.174 Slave3.Hadoop

根据上面信息修改各主机的主机名

2、添加主机名与ip映射
编辑/etc/hosts 添加 (4台机器均添加

192.168.0.171 Master.Hadoop
192.168.0.172 Slave1.Hadoop
192.168.0.173 Slave2.Hadoop
192.168.0.174 Slave3.Hadoop

3、关闭iptable及selinux (4台机器均执行)

service iptables stop
chkconfig iptables off
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux

4、安装配置JDK (4台机器均执行)
[root@Master ~]# rpm -ivh jdk-7u67-linux-x64.rpm
添加环境变量,追加以下参数到 /etc/profile 中

export JAVA_HOME=/usr/java/jdk1.7.0_67/
export JRE_HOME=/usr/java/jdk1.7.0_67/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

使之生效执行: source /etc/profile

5、配置ssh登陆互相信任

[root@Master ~]# ssh-keygen -t rsa   #一路回车
拷贝公钥到另外三台机器(包括本机)
[root@Master ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.171/172/173/174

另外3台slave也需要配置hadoop集群之间互相信任,过程略。

6、安装hadoop (另外3台也需要配置)

[root@Master ~]# tar zxvf hadoop-1.2.1.tar.gz
[root@Master ~]# cp -R hadoop-1.2.1 /usr/local/hadoop
[root@Master ~]# mkdir /usr/local/hadoop/tmp

添加hadoop变量信息,编辑/etc/profile 追加下面部分:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

source /etc/profile 使之生效。

7、编辑hadoop配置文件:
首先编辑 hadoop-env.sh,追加一行参数:
[root@Master ~]# vi /usr/local/hadoop/conf/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_67/

开始配置:
[root@Master ~]# cd /usr/local/hadoop/conf/

修改Hadoop核心配置文件core-site.xml配置HDFS地址和端口:
[root@Master conf]# vi core-site.xml

<configuration>

 <property>
 <name>hadoop.tmp.dir</name>
 <value>/usr/local/hadoop/tmp</value> #之前创建的tmp文件夹
 <description>A base for other temporary directories.</description>
 </property>
<!-- file system properties -->
 <property>
 <name>fs.default.name</name>
 <value>hdfs://192.168.0.171:9000</value> #地址+端口
 </property>

</configuration>

备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被删除,必须重新执行format才行,否则会出错。

[root@Master conf]# vi hdfs-site.xml

<configuration>

 <property>
 <name>dfs.replication</name>
 <value>3</value> #数据副本数量默认为3,salve少于3台就会报错
 </property>

</configuration>

配置JobTracker地址和端口:
[root@Master conf]# vi mapred-site.xml

<configuration>

 <property>
 <name>mapred.job.tracker</name>
 <value>http://192.168.0.171:9001</value> #ip+端口
 </property>

</configuration>

配置主节点地址:
[root@Master conf]# vi masters #写主机名或IP,如果是主机名需要hosts映射

192.168.0.171

配置从节点地址:
[root@Master conf]# vi slaves #写主机名或IP,如果是主机名需要hosts映射

192.168.0.172
192.168.0.173
192.168.0.174

8、复制配置文件到从节点(3个从节点都复制过去)
[root@Master conf]# scp * root@192.168.0.172:/usr/local/hadoop/conf/
[root@Master conf]# scp * root@192.168.0.173:/usr/local/hadoop/conf/
[root@Master conf]# scp * root@192.168.0.174:/usr/local/hadoop/conf/
slaves 这个配置文件不需要复制到从节点,我这里偷懒直接用*号同步全部。

9、格式化HDFS文件系统
在”Master.Hadoop”上使用普通用户hadoop进行操作。(只需格式化一次,下次启动只需执行 start-all.sh )
我这里用root权限执行格式化
[root@Master ~]# hadoop namenode -format  #就一个减号
可能最后会提示一个警告,不过可以忽视。

10、启动hadoop
[root@Master ~]# start-all.sh

启动hadoop成功后在Master中的tmp文件夹中生成了dfs文件夹,在Slave中的tmp文件夹中均生成了dfs文件夹和mapred文件夹。

11、验证hadoop
在Master上用 java自带的工具 jps 查看进程:
[root@Master ~]# jps
2187 Jps
1921 SecondaryNameNode
2008 JobTracker
1775 NameNode

另一种方法用 hadoop dfsadmin -report 查看Hadoop集群的状态。
[root@Master ~]# hadoop dfsadmin -report
Warning: $HADOOP_HOME is deprecated.

Configured Capacity: 158131408896 (147.27 GB)
Present Capacity: 144937943040 (134.98 GB)
DFS Remaining: 144937795584 (134.98 GB)
DFS Used: 147456 (144 KB)
DFS Used%: 0%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

————————————————-
Datanodes available: 3 (3 total, 0 dead)

Name: 192.168.0.173:50010
Decommission Status : Normal
Configured Capacity: 52710469632 (49.09 GB)
DFS Used: 49152 (48 KB)
Non DFS Used: 4397809664 (4.1 GB)
DFS Remaining: 48312610816(44.99 GB)
DFS Used%: 0%
DFS Remaining%: 91.66%
Last contact: Fri Apr 17 09:46:36 CST 2015

Name: 192.168.0.174:50010
Decommission Status : Normal
Configured Capacity: 52710469632 (49.09 GB)
DFS Used: 49152 (48 KB)
Non DFS Used: 4397830144 (4.1 GB)
DFS Remaining: 48312590336(44.99 GB)
DFS Used%: 0%
DFS Remaining%: 91.66%
Last contact: Fri Apr 17 09:46:38 CST 2015

Name: 192.168.0.172:50010
Decommission Status : Normal
Configured Capacity: 52710469632 (49.09 GB)
DFS Used: 49152 (48 KB)
Non DFS Used: 4397826048 (4.1 GB)
DFS Remaining: 48312594432(44.99 GB)
DFS Used%: 0%
DFS Remaining%: 91.66%
Last contact: Fri Apr 17 09:46:38 CST 2015

12、网页查看集群
访问:http://192.168.0.171:50030

访问:http://192.168.0.171:50070

完成。

PS:
在执行hadoop命令会提示个警告信息:
[root@Master ~]# hadoop
Warning: $HADOOP_HOME is deprecated.

编辑 /etc/profile 添加:
export HADOOP_HOME_WARN_SUPPRESS=1

执行source /etc/profile生效。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3400.html

赞赏

微信赞赏支付宝赞赏

作者:Venus

专注于 服务器运维与web架构 E-mail:venus#rootop.org

评论已关闭。