环境准备:
CentOS 5.5 x64 (3台)
10.129.8.52 (master) ======>> NameNode, SecondaryNameNode,JobTracker
10.129.8.76 (slave01) ======>> DataNode, TaskTracker
10.129.8.33 (slave02) ======>> DataNode, TaskTracker
单台机器的本地host 文件如下:
10.129.8.52 master
10.129.8.76 slave01
10.129.8.33 slave02
(一) 配置好master 到slave 的ssh 登陆信任关系,做好都相互之间到配置好
(二) 安装好 java version "1.6.0_24" 源码包为jdk-6u24-linux-x64.bin
(三) 安装hadoop 集群
下载hadoop-1.2.0.tar.gz,然后解压到/home/hadoop/hadoop目录下
修改相应的配置文件:
1 hadoop-env.sh 指明 java 的环境变量 export JAVA_HOME=/usr/local/java/jdk1.6.0_24
2 core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9010</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
3 mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9011</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
4 hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<!--
NameNode 主要存放文件映射和文件更改日志
SecondaryNameNode 一个守护进程 定时从NameNode同步文件更改日志并合并成一条日志,方便hadoop每次重启时 找到上次宕机的还原点。在后续的版本中会被backupNameNode和nameNode集群取代。
Jobtracker 任务调度守护进程
Tasktracker 任务执行进程
DataName 数据存储节点,往往和Tasktracker部署在同一台机器上。
-->
<configuration>
<property>
<name>dfs.name.dir</name> // 指定name 镜像文件存放目录,如不指定则
<value>/home/hadoop/filedata/name01,/home/hadoop/filedata/name02</value> //默认为core-site中配置的tmp目录
</property>
<property>
<name>dfs.data.dir</name> // 数据存放的目录,如果不写 默认为
<value>/home/hadoop/filedata/data01</value> // core-site中配置的tmp目录
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
5 masters
master
6 slaves (如果这里包含有master的主机名,那么master也会成为datanode,如果没有,那么master就只会成为namenode,不会成为datanode)
slave01
slave02
(四) 创建相应的目录:
/home/hadoop/hadoop/tmp hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
/home/hadoop/filedata NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。(他下面有子目录,程序自己创建)
/home/hadoop/filedta/data01 DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。 (程序自己创建)
(五) 在namenode 上格式化
/home/hadoop/hadoop/bin/hadoop namenode -format
查看输出保证分布式文件系统格式化成功
执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。在主节点 master上面启动hadoop,主节点会启动所有从节点的hadoop。
(六) /home/hadoop/hadoop/bin/start-all.sh (启动所有服务)
执行完毕后,可以用jps 查看所有启动的服务 (启动日志在hadoop安装的logs目录下)
[hadoop@master ~]$ jps
16276 SecondaryNameNode
16374 JobTracker
16103 NameNode
19003 Jps
这时可以去看看dataname节点上有没有创建数据目录,当然也可以用jps查看,但是我的dataname有得这个命令可以用,有得不可以,原因待查
(七) 上传文件测试
/home/hadoop/hadoop/bin/hadoop dfs -put X-ForWarded-For-survey.beisen.com-10.22.1.35_D2013070* /home/iis_log/survey.beisen.com/20130705
(八) 查看上传的文件
/home/hadoop/hadoop/bin/hadoop dfs -ls /home/iis_log/survey.beisen.com/20130705