由于项目的需要,需要对一个分布式文件系统进行深入的学习,在MooseFS(MFS)和Hadoop的HDFS进行了大概一周的文档阅读、比较和资料的查阅,还是决定了用Apache的Hadoop开源项目进行开发,功能更强大,面向对象语言的开发(Java)而且比较大的开源组织的支持,文档也比较齐全,虽然都是基于Google File System(GFS)的实现,但是HDFS还是保留了更多的GFS的特性。支持超大文件的存储,高容错性(比MFS)且提供高吞吐量的数据访问,对于项目的需求来说,已经足以。
经过1天的资料阅读、软件安装与配置,终于搞定了Linux Ubuntu下 Hadoop 1.0.3版本的单节点配置,而且配置工作量不是很大。网上的配置版本很多,而且没有针对1.X的配置说明(可能跟之前0.2.X的类似吧)。
这里把自己的配置过程和配置文件分享下。1. 安装Oracle VM VirtualBox虚拟机(虚拟机随意,物理机最好,虚拟机作为单节点跑起Hadoop还是比较慢的)并安装Ubuntu 11.10(Ubuntu版本也随意,不过建议版本不要太旧)。
2.安装Java JDK
我是用的是稳定的1.6版本,1.6.32。下载地址 。下载jdk-6u32-linux-i586.bin版本。Linux下安装bin文件命令:
(1)移动到自己安装JDK的路径,我的路径是:/usr/lib/jvm/jdk6下,没有的文件夹自己创建;
(2)chmod +x jdk-6u32-linux-i586.bin
(3)./jdk-6u32-linux-i586.bin
安装完成然后配置环境变量。 使用vim或者gedit来编辑/etc/profile文件。在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/jdk6/jdk1.6.0_32
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
至此JDK安装完成。终端使用java -version查看版本是否匹配。注意Ubuntu自带的openjdk是不能正常运行Hadoop的(自己没有尝试,很多文档这么说),所以还是建议安装下JDK
3. 安装SSH
终端下使用下面的命令:
ssh-keygen -t rsa -P "" (生成SSH key)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (公布公钥。如果~下没有.ssh文件夹,首先手动先创建一个.ssh文件夹)
ssh localhost (测试是否成功)
(我的过程没问题,有的可能会遇到 connection refused错误。 查百度解决)
4. 禁用IPv6 (原因是Ubuntu上的IPv6可能会与0.0.0.0冲突,而0.0.0.0在Hadoop中又被广泛使用)
编辑/etc/sysctl.conf文件,在文件末尾添加:
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
完成并保存,测试是否禁用成功。 终端使用 cat /proc/sys/net/ipv6/conf/all/disable_ipv6 命令,如果是0则没有禁用,1则表示禁用成功
(这个是在别人那里看到的,不配置没试过,可能对于基本的运行,不用这样禁用ipv6)