由于工作需要开始研究测试hadoop,记录一下学习过程,大家一起交流一下。
1、hadoop的介绍我就不多说了,google一下有很多。
2、下载hadoop相关软件,包括了hadoop-0.20.203.0rc1.tar.gz、hive-0.7.0.tar.gz、pig-0.8.1.tar.gz,由于我们暂时不使用Hbase,所以没有下载Hbase,有兴趣的童鞋可以自己下载玩一玩。
3、安装部署,测试的部署结构如下:
10.0.2.49 NameNode JobNode
10.0.2.47 DataNode TaskNode
10.0.2.50 DataNode TaskNode
1)、首先分别在三台机器上创建hadoop用户;上传hadoop-0.20.203.0rc1.tar.gz分别到三台机器的hadoop目录下。
以下在10.0.2.49上完成
2)、上在hadoop主目录下创建hadoop文件夹,解压缩hadoop安装包到hadoop的目录下,切换到hadoop-0.20.203.0下显示的目录为:/home/hadoop/hadoop/hadoop-0.20.203.0
3)、切换到conf目录下,创建hadoop-site.xml文件,大致内容如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://10.0.2.49:9000/</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>10.0.2.49:9010</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx512m</value>
</property>
<property>
<name>dfs.block.size</name>
<value>5120000</value>
<description>The default block size for new files.</description>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
</configuration>
详细属性配置以后再解释,主要是fs.default.name指定NameNode位置,指明JobNode位置,hadoop.tmp.dir指明临时文件夹位置,编辑完文件保存。
4)、编写slaves文件,填写如下:
10.0.2.50
10.0.2.47
指定从属节点ip,从属节点完成DataNode和TaskNode的任务。
5)、编写masters文件,指定NameNode节点ip
10.0.2.49
以下内容在其他机器上完成
6)、按照如上方法配置其他机器。
4、创建临时文件夹/home/hadoop/hadoop/tmp。
5、格式化存储数据文件,调用hadoop_home下的hadoop命令,“hadoop namenode -format” 如果出现java找不到,需要修改conf/hadoop-env.sh中的“# export JAVA_HOME=/usr/lib/j2sdk1.5-sun” 为你自己的jdk位置,要求是1.6以上版本。没有异常则表明已经格式化好了。
6、启动Hdfs,在10.0.2.49机器上,使用命令bin/start-dfs.sh启动,注意该命令会调用ssh访问slaves文件中指定的ip启动其他从属节点的hadoop进程,所以需要输入密码,用户名使用的是当前用户名。
7、启动MapReduce,在10.0.2.49机器上,使用命令bin/start-mapred.sh启动,该命令同样调用ssh。
8、启动完成标识,在slaves机器上的进程如下:
889 DataNode
1061 TaskTracke
在master机器上的进程如下:
2885 JobTracker
2573 NameNode
2759 SecondaryNameNode
也可以用http://10.0.2.49:50070查看文件系统,使用http://10.0.2.49:50030/查看任务情况。
到目前为止Hadoop系统就算启动成功了