这里和大家一起学习一下Hadoop0.20.2集群配置,本节主要包括准备工作和Hadoop配置两部分内容,希望通过本节介绍对Hadoop0.20.2集群配置有一定的认识。
Hadoop0.20.2集群配置入门
一、准备工作
在动手准备实践hadoop之前,最好把GoogleFileSystem和Map/Reduce的原理搞清楚,否则可能要走很多弯路。
准备机器:一台master,若干台slave,配置每台机器的/etc/hosts保证各台机器之间通过机器名可以互访,例如:
10.0.0.10master
10.0.0.11slave1
10.0.0.12slave2
保存后,重启网络服务,命令:servicenetworkrestart
Linux所需软件包括:
JavaTM1.5.x以上,必须安装,建议选择Sun公司发行的Java版本。
ssh必须安装并且保证sshd一直运行,以便用Hadoop脚本管理远端Hadoop守护进程。
ssh的安装以UbuntuLinux为例:
$sudoapt-getinstallssh
$sudoapt-getinstallrsync
免密码ssh设置,保证至少从master可以不用口令登陆所有的slaves:
登陆master,执行命令
$ssh-keygen-tdsa-P''-f~/.ssh/id_dsa
将生成的id_dsa.pub拷贝到所有slaves机器上相同路径下,例如:$scp~/.ssh/id_dsa.pubroot@slave1:/root/.ssh/master_dsa.pub
注意,此处重命名了一下。
登陆到slaves的机器上执行命令:
$cat/root/.ssh/master_rsa.pub>>/root/.ssh/authorized_keys
现在再尝试通过ssh从master登录到slaves,应该不需要密码了
$sshslave1
如果还有问题,可以参考“理解RSA/DSA认证”:http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html。下面看一下Hadoop0.20.2集群配置入门中Hadoop的详细配置介绍。
二、hadoop配置
1.安装
下载hadoop发行版,地址:http://apache.freelamp.com/hadoop/core/stable/
安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。并且安装路径要一致,如果我们用HADOOP_HOME指代安装的根路径,通常,集群里的所有机器的HADOOP_HOME路径相同。
通常,集群里的一台机器被指定为NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。
下载安装包后,直接解压安装即可:
$tar-zxvfhadoop-0.20.2.tar.gz
$cdhadoop-0.20.2
注:如果集群内机器的环境完全一样,可以在一台机器上把Hadoop0.20.2集群配置好,然后把配置好的软件即hadoop-0.20.2整个文件夹拷贝到其他机器的相同位置即可。
2.配置
编辑conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。
配置conf/core-site.xml:
- <configuration>
- <property>
- <name>fs.default.name</name>
- <value>hdfs://master:9100</value>
- </property>
- </configuration>
- fs.default.name是NameNode的URI。hdfs://主机名:端口/
dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。
配置conf/mapred-site.xml
- <configuration>
- <property>
- <name>mapred.job.tracker</name>
- <value>master:9200</value>
- </property>
- </configuration>
mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。
masters:master
slaves:slave1,slave2
配置结束,把配置好的hadoop-0.20.2文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh
$scp-r/opt/hadoop/hadoop-0.20.2root@slave1:/opt/hadoop。请继续关注下节关于Hadoop0.20.2集群配置详细介绍。
【编辑推荐】
- Hadoop集群配置全程跟踪报道
- Hadoop安装与使用如何进行?
- 专家讲解 Hadoop:HBASE松散数据存储设计
- 两种模式运行Hadoop分布式并行程序
- Windows下轻松实现Hadoop开发环境安全配置