首页 > 大数据 > Hadoop > Hadoop 环境搭建
版本历史
|
版本 |
日期 |
作 |
修 |
|
1.0 |
20120328 |
首个版本 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
测试环境的服务器共有4台,配置如下:
CPU:Intel
内存:ECC
硬盘:SATA
OS:CentOS
Hadoop:
选取一台做为NameNode(Job
Hadoop使用Java语言开发,因此需要JDK作为运行环境。JDK的安装不在此说明。需要注意的是要安装64位的JDK,并且开启压缩长指针选项。
Hadoop要求所有机器上hadoop的部署目录结构要相同,并且都有一个相同的用户名的帐户。因此,我们创建一个名为hadoop的帐户,将设置为sudoer。
|
useradd 切换到root,将hadoop添加到sudoer。
su
vim 在最后一行加上 hadoop
保存退出。此时hadoop |
配置各个节点hosts文件,确保主机之间可以通过域名互相通信。为了便于记忆做如下配置:
127.0.0.1
192.168.1.10
192.168.1.11 datanode1
192.168.1.12 datanode2
192.168.1.13 datanode3
IP地址的11,12,13分别对应datanode的1,2,3.
NameNode通过SSH连接到各个DataNode,然后通过控制脚本启动各个节点。所以要保证NameNode到各个DataNode可以无密码登录(也包括NameNode自己)。具体配置参考:http://blog.sina.com.cn/s/blog_6b65e6a70100xedb.html
NameNode的数据比较重要,如果损坏,则整个HDFS数据丢失。因此,NameNode所在机器要做RAID。并且配置的时候,要指定一个远程的NFS目录以防NameNode自己的宕机事故。
我们在/home/hadoop/中安装hadoop。安装后的目录应该是:
~/hadoop-install/hadoop-1.0.1
建立一个软链接,以免每次输入命令,都要输入一长串目录名:
ln
测试服务器有多块硬盘,有不同的挂载点,因此要为DataNode配置多个数据目录。为了保持配置文件的一致,要保证磁盘挂载点一致。
安装程序和配置文件的位置和NameNode保持一直。事实上,程序和配置文件是事先在NameNode上配置好,然后再分发到各个DataNode上的。
|
name |
value |
含义 |
|
JAVA_HOME |
/usr/java/jdk1.6.0_30 |
JDK所在路径 |
|
Name |
value |
含义 |
|
fs.default.name |
hdfs://namenode |
指定默认的文件系统,默认端口 |
|
io.file.buffer.size |
65536 |
指定缓冲区的大小,默认4K太小,64k(65536)或128k(131072)更为常用 |
|
Name |
Value |
含义 |
|
dfs.name.dir |
逗号分隔的目录列表 |
NameNode上持久化存储元数据和事务日志的路径。指定多个目录的话,各个目录内容完全一致。 |
|
dfs.data.dir |
逗号分隔的目录列表 |
DataNode上存储数据块的地方。如果指定多个目录,则数据库被随机的存放。 |
|
dfs.replication |
整数 |
数据复制的份数 |
|
fs.checkpoint.dir |
逗号分隔的目录列表 |
辅助NameNode检查点存储目录,分别存储到各个目录,支持冗余备份。 |
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选项,默认 |
masters配置辅助namenode的机器列表,每行一个,在本例中,辅助NameNode和NameNode在同一机器上。故内容只有一行:namenode
slaves配置datanode和tasktracker的机器列表,在本例中内容如下:
datanode1
datanode2
datanode3
可以通过在hadoop-env.sh中配置HADOOP_MASTER的方式,实现自动同步。在集群启动的时候,Master节点会通过脚本控制各个节点。使用rsync工具,各个节点同步HADOOP_MATER和本地HADOOP目录。但是这种方式要求各个节点到Master可以SSH无密码登录,配置比较繁琐,因此不使用该方案。
配置完成后,通过shell脚本,将程序分发到各个节点。
for
1.分发程序以及配置文件到各个节点。脚本参见
hadoop
格式化一个新的文件系统。
2.执行
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21815389/viewspace-1120221/ ,如需转载,请注明出处,否则将追究法律责任。