从真正知道有hadoop 这个东西,是从去年年底开始的, 从去年到现在这段时间,其中也有过间断的学习,hadoop当初给我的感觉是这个东西比较神奇,以至于到现在我对它都保持极高的好奇心。
真正下决心学习hadoop是今年过年后了,想找一个技术作为突破口,来充实自己的技能,于是我选择了hadoop.
原因有2个,第1 hadoop 的生态系统完善及数据处理能力,第2是开源,.
这个日记算是学习笔记,现在来说说hadoop 的编译,打包,及安装。
一,hadoop 2.0.3 的编译
- 选择hadoop版本:branch-2.0.3-alpha
- 操作系统版本: suse11 x64
- 假设java 环境安装正确,java 版本1.6
操作方法及具体步骤:
1,从git.apache.org 中clonehadoop-common
git clonegit://git.apache.org/hadoop-common.git
2,安装编译hadoop-common 需要用到的软件,并测试是否安装成功.具体安装步骤在此略过了.
Requirements:
* Unix System
* JDK 1.6
* Maven 3.0
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.4.1+ (for MapReduce andHDFS)
* CMake 2.6 or newer (if compiling nativecode)
3,进入到hadoop-common 切换到2.03版本
git checkout branch-2.0.3-alpha
然后运行maven 命令
$ mvn install -DskipTests $ mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
大概经过1小时左右的运行(由网络环境而定) 如果没有意外hadoop 源码编译完成了,也可以导入eclipse 做二次开发了,
4, 现在我们编译成tar包来进行安装. mvn package -Dtar -DskipTests –Pdist,native,docs
等待运行完成命令后 就可以在hadoop-common/hadoop-dist/target 见到我们编译好的hadoop-2.0.3-alpha.tar.gz
值得注意的是suse11里面运行报错,可能系统没有安装zlib和openssl-devel 的问题,
从http://zlib.net/下载安装zlib ,和使用yast 安装libopenssl-devel之后在次运行上面的命令就可以成功运行maven编译了.
二hadoop 2.0.3 的安装
根据官方文档,分文单机安装,和分布式安装
- 单机安装
步骤1,假设上面编译通过,并且解压设置HADOOP_COMMON_HOME/HADOOP_HDFS_HOME,
这2个变量设置为hadoop-alpha目录,然后我们就可以继续下一步安装了,运行命令
$ cd hadoop-mapreduce-project/target 可以看到一个tar文件,虽然文档上面提供了一个命令
$ mvn clean install assembly:assembly -Pnative
但是可能由于我maven 版本问题,也可能是pom 配置问题 无法运行这个命令,但是既然生产了tar 文件,对于当前情况就不过于研究问题所在了。
步骤2.其次解压hadoop-mapreduce-2.0.3-alpha.tar.gz
设置 HADOOP_YARN_HOME/HADOOP_MAPRED_HOME.为hadoop-mapreduce-2.0.3-alpha.tar.gz 的解压目录.
- 3.设置配置文件.mapred-site.xml yarn-site.xml capacity-scheduler.xml
- ,应为有默认的,运行文档上的命令
$ cd $HADOOP_MAPRED_HOME
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
$HADOOP_COMMON_HOME/bin/hadoop jar hadoop-examples.jar randomwriter out
- ,访问http://host:8088 就能看见资源管理节点了.
- ,如果设置了以上配置文件则启动命令必须添加参数
$ sbin/yarn-daemon.sh –config $HADOOP_CONF_DIRstart resourcemanager
$ sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR start nodemanager
- 分布式安装