单机模式的hadoop部署

部署主要看以下的文档:http://hadoop.apache.org/common/docs/r0.19.2/cn/

开发测试可以使用单机模式部署,以下内容的单机部署和测试参考以下链接:
http://hi.baidu.com/zengjianyuan/blog/item/c86fa10fa3e386e6ab645780.html

就是想了解一下这个东西怎么跑的,为以后工作做准备。

需要软件:
ssh:fedore 9 自带。
jdk:http://java.sun.com/javase/downloads/index.jsp,下最近版本jdk-6u18-linux-i586
hadoop:http://apache.etoak.com/hadoop/core/hadoop-0.20.1/,最新版本0.20.1,据说这个版本jdk必须1.6以上。

三种运行模式:
单机(非分布式)模式,伪分布式运行模式(用不同进程模仿分布式运行中的各类结点),分布式运行模式。

其中前两种运行模式体现不了Hadoop分布式计算的优势,并没有什么实际意义,但对程序的测试及调试很有帮助。现在只有一台机器, 主要想了解基于Hadoop的分布式并行程序是如何运行的。

单机模式安装步骤:
1.解压安装包至:/usr/local/hadoop
如果安装jdk已经设置了路径,安装完毕。否则:
2.cd /usr/local/hadoop/conf,修改hadoop-env.sh,最后一行添加:export JAVA_HOME=/usr/local/jdk1.6.0_18(jdk路径).

看看这玩意怎么跑的:
1.
# mkdir input
# cp conf/*.xml input
# bin/hadoop jar hadoop-0.20.1-examples.jar grep input output 'dfs[a-z.]+'
10/01/26 00:22:54 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
10/01/26 00:22:54 INFO mapred.FileInputFormat: Total input paths to process : 5
...
# cat output/*
1 dfsadmin
# ls output/
part-00000
程序是hadoop自带的,把conf下的xml文件拷贝到input下作为输入,找到并显示所有与最后一个正则表达式匹配的行,输出到output.
jar 是 bin/hadoop 脚本定义的参数,会调用 Hadoop 自己的一个工具类 RunJar,这个工具类能够执行一个 Jar 文件。
2.
# mkdir test-in
# echo "hello world bye world" > test-in/file1.txt
# echo "hello hadoop googbye hadoop" > test-in/file2.txt
# bin/hadoop jar hadoop-0.20.1-examples.jar wordcount test-in test-out
10/01/26 00:43:46 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
10/01/26 00:43:46 INFO input.FileInputFormat: Total input paths to process : 2
...
# cat test-out/*
bye 1
googbye 1
hadoop 2
hello 2
world 2
# ls test-out/
part-r-00000
这个程序也是hadoop自带的,统计各个单词出现次数。

刚开始上网搜的结果都是修改fs.default.name,mapred.job.tracker等等,都是分布式运行模式的配置,没想到单机模式这么简单,浪费了不少时间。

参考:
http://blog.csdn.net/inkfish/archive/2010/01/07/5149858.aspx
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/index.html

你可能感兴趣的:(Soft)