开始研究一下开源项目Hadoop,因为根据本人和业界的一些分析,海量数据的分布式并行处理是趋势,咱不能太落后,虽然开始有点晚,呵呵。首先就是安装和一个入门的小实例的讲解,这个恐怕是我们搞软件开发的,最常见也最有效率地入门一个新鲜玩意的方式了,废话不多说开始吧。
本人是在Ubuntu下进行实验的,java和ssh安装就不在这里讲了,这两个是必须要安装的,好了我们进入主题安装hadoop:
解压:$ tar –zvxf hadoop-0.20.1.tar.gz
把Hadoop 的安装路径添加到环/etc/profile 中:
export HADOOP_HOME=/home/hexianghui/hadoop-0.20.1
export PATH=$HADOOP_HOME/bin:$PATH
2.配置hadoop
hadoop 的主要配置都在hadoop-0.20.1/conf 下。
(1)在conf/hadoop-env.sh 中配置Java 环境(namenode 与datanode 的配置相同):
$ gedit hadoop-env.sh
$ export JAVA_HOME=/home/hexianghui/jdk1.6.0_14
3.3)配置conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml(简单配
置,datanode 的配置相同)
core-site.xml:
<configuration>
<!--- global properties -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yangchao/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml:( replication 默认为3,如果不修改,datanode 少于三台就会报错)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
4.运行hadoop
首先进入hadoop所在目录,执行格式化文件系统 bin/hadoop namenode –format
启动hadoop: bin/start-all.sh
用jps命令查看进程,显示:
@linuxidc-VirtualBox:~/Downloads/hadoop-0.20.203.0/test-in$ jps
5238 TaskTracker
4995 SecondaryNameNode
4836 DataNode
4687 NameNode
5077 JobTracker
7462 Jps
既是正常的,接下来要上传数据到文件系统里
还有就是使用 web 接口。访问 :50030 可以查看 JobTracker 的运行状态。访问 :50060 可以查看 TaskTracker 的运行状态。访问 :50070 可以查看 NameNode 以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及 log 等。
5.运行wordcount.java
在hadoop所在目录里有几个jar文件,其中hadoop-examples-0.20.203.0.jar就是我们需要的,它里面含有wordcount,咱们使用命令建立测试的文件
(1)先在本地磁盘建立两个输入文件file01 和file02:
$ echo “Hello World Bye World” > file01
$ echo “Hello Hadoop Goodbye Hadoop” > file02
(2)在hdfs 中建立一个input 目录:$ hadoop fs –mkdir input
(3)将file01 和file02 拷贝到hdfs 中:
$ hadoop fs –copyFromLocal /home/hexianghui/soft/file0* input
(4)执行wordcount:
$ hadoop jar hadoop-0.20.1-examples.jar wordcount input output
(5)完成之后,查看结果:
$ hadoop fs -cat output/part-r-00000
结果为:
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2
是不是很神奇的玩意呢,这是在单机上实现hadoop的应用小实例,以后有机会再来一篇真正的分布式的,前提是需要三台机器。