ITPub博客

首页 > 大数据 > Hadoop > Hadoop 环境搭建

Hadoop 环境搭建

Hadoop 作者:hnwuxuezhong 时间:2012-03-29 16:46:16 0 删除 编辑

Hadoop 环境搭建

版本历史

版本

日期

作 者/修改人

修 改 内 容

1.0

20120328

freecoder

首个版本

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. 软硬件条件及安装规划

1.1. 硬件

测试环境的服务器共有4台,配置如下:

CPU:Intel Xeon E5440 2.83G * 2

内存:ECC DDR2 16G

硬盘:SATA  1T

1.2. 软件

OS:CentOS 5.8

Hadoop: hadoop-1.0.1

1.3. 规划

选取一台做为NameNode(Job Tracker),其他三台作为DataNode(Task Tracker)。NameNode上做RAID以备份数据。因为hadoop内建的数据备份机制,所以DataNode不需要RAID。

2. 操作系统

Hadoop使用Java语言开发,因此需要JDK作为运行环境。JDK的安装不在此说明。需要注意的是要安装64位的JDK,并且开启压缩长指针选项。

2.1. Hadoop用户

Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。因此,我们创建一个名为hadoop的帐户,将设置为sudoer。

useradd hadoop#增加一个用户
passwd hadoop#增加用户后,用这个命令设定密码

 

切换到root,将hadoop添加到sudoer。

su root

vim /etc/sudoers

在最后一行加上

hadoop ALL=(ALL)ALL

保存退出。此时hadoop 帐户就可以使用sudo命令了。

 

2.2. 网络配置

配置各个节点hosts文件,确保主机之间可以通过域名互相通信。为了便于记忆做如下配置:

127.0.0.1      localhost

192.168.1.10  namenode

192.168.1.11 datanode1

192.168.1.12 datanode2

192.168.1.13 datanode3

IP地址的11,12,13分别对应datanode的1,2,3.

 

2.3. SSH无密码登录

NameNode通过SSH连接到各个DataNode,然后通过控制脚本启动各个节点。所以要保证NameNode到各个DataNode可以无密码登录(也包括NameNode自己)。具体配置参考:http://blog.sina.com.cn/s/blog_6b65e6a70100xedb.html 。需要注意的是,一定不能忘记最好修改.ssh以及.ssh/authorized_keys权限的步骤。

2.4. 目录规划

2.4.1. NameNode

NameNode的数据比较重要,如果损坏,则整个HDFS数据丢失。因此,NameNode所在机器要做RAID。并且配置的时候,要指定一个远程的NFS目录以防NameNode自己的宕机事故。

我们在/home/hadoop/中安装hadoop。安装后的目录应该是:

~/hadoop-install/hadoop-1.0.1

建立一个软链接,以免每次输入命令,都要输入一长串目录名:

ln -s ~/hadoop-install/hadoop-1.0.1  hadooplink

2.4.2. DataNode

测试服务器有多块硬盘,有不同的挂载点,因此要为DataNode配置多个数据目录。为了保持配置文件的一致,要保证磁盘挂载点一致。

安装程序和配置文件的位置和NameNode保持一直。事实上,程序和配置文件是事先在NameNode上配置好,然后再分发到各个DataNode上的。

3. Hadoop配置文件

3.1. 环境变量 hadoop-env.sh

name

value

含义

JAVA_HOME

 

/usr/java/jdk1.6.0_30

JDK所在路径

 

 

3.2. HDFS配置

3.2.1. 配置 core-site.xml

Name

value

含义

fs.default.name

hdfs://namenode

指定默认的文件系统,默认端口 8020。

 

io.file.buffer.size

65536

指定缓冲区的大小,默认4K太小,64k(65536)或128k(131072)更为常用

 

3.2.2. 配置 hdfs-site.xml

Name

Value

含义

dfs.name.dir 

逗号分隔的目录列表

NameNode上持久化存储元数据和事务日志的路径。指定多个目录的话,各个目录内容完全一致。

dfs.data.dir 

逗号分隔的目录列表

DataNode上存储数据块的地方。如果指定多个目录,则数据库被随机的存放。

dfs.replication

整数

数据复制的份数

fs.checkpoint.dir

逗号分隔的目录列表

辅助NameNode检查点存储目录,分别存储到各个目录,支持冗余备份。

 

3.3. Map Reduce 配置

MapReduce的配置集中在mapred-size.xml。如果只用到了HDFS,这一部分的配置可以忽略。

Name

Value

说明

mapred.job.tracker

namenode:8021

Jobtracker的RPC服务器所在的主机名称和端口。

mapred.local.dir

逗号分隔的目录列表

存储作业中间数据的目录列表,作业结束后,数据被清楚

mapred.system.dir

HDFS上的目录

作业运行期间的存储共享目录的目录,必须是HDFS之上的目录

mapred.task.tracker.

map.tasks.maximum

整数

运行在tasktracker之上的最大map任务数

mapred.task.tracker.

reduce.tasks.maximum

整数

运行在tasktracker之上的

最大reduce任务数

mapred.child.java.opts

Java虚拟机选项

JVM选项,默认 -Xmx200m

3.4. 主从配置

masters配置辅助namenode的机器列表,每行一个,在本例中,辅助NameNode和NameNode在同一机器上。故内容只有一行:namenode

slaves配置datanode和tasktracker的机器列表,在本例中内容如下:

datanode1

datanode2

datanode3

3.5. 配置文件分发方案

3.5.1.  配置HADOOP_MASTER

可以通过在hadoop-env.sh中配置HADOOP_MASTER的方式,实现自动同步。在集群启动的时候,Master节点会通过脚本控制各个节点。使用rsync工具,各个节点同步HADOOP_MATER和本地HADOOP目录。但是这种方式要求各个节点到Master可以SSH无密码登录,配置比较繁琐,因此不使用该方案。

3.5.2.  Shell脚本

配置完成后,通过shell脚本,将程序分发到各个节点。

for i in 1 2 3;do scp -r ~/hadoop-install datanode$i:~ ;done;

4. 部署

1.分发程序以及配置文件到各个节点。脚本参见  3.5.2  在namenod上执行 : 

hadoop namenode  -format

格式化一个新的文件系统。

2.执行 ~/hadooplink/bin/start-dfs.sh,启动HDFS。

 





<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21815389/viewspace-1120221/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-06-04