前言:
想学习
hadoop,google了许久,找到两本资料《hadoop权威指南》清华大学出版社出版的,另外一本是《hadoop in action》,均是中文版。个人觉得前者适
合理论学习和查阅,后者可以当做实践练习(具体过程中由于hadoop
版本问题以及其他种种原因,书上的
例子运行起来会让菜鸟很蛋疼,至少我是这样,哎。。),网上关于安装hadoop的教程已经很多,可是本人很负
责任地告诉正在阅读此文的读者(你就暗爽吧,少走许多冤枉路):大多数都是坑爹!十分的坑爹!尤其是对于使用centos的同学,因为铺天盖地的几乎都是ubuntu下安装。。。安装过程中遇到许多问题,主要包括:
1 hadoop版本的选择。
2 centos中自带的openjdk与自行安装的jdk-6u20-linux-i586.bin,在运行eclipse时出现的问题。
3 利用eclipse做hadoop开发时,eclipse不能使用的问题。
本文主要用于记录本人摸索半个月后,终于在centos5.5上安装hadoop0.20.1(伪分布模式)并且利用eclipse做开发的步骤和心得,仅供参考,不喜勿喷,有
错误的地方希望留言指正。
*********************************************************************************
安装jdk
采用版本:jdk-6u20-linux-i586.bin
安装方法:
新建目录/usr/java
[root@www ~]# mkdir /usr/java
将jdk-6u20-linux-i586.bin拷贝至 /opt/java目录下并切换当前工作目录为/usr/java
[root@www ~]# cd /usr/java
对所有用户赋予安装文件“可执行”权限
[root@www java]# sudo ./jdk-6u20-linux-i586.bin
之后就是安装了,按照提示操作,很快就结束
安装完毕后,配置/etc/profile中的变量。添加内容如下:
---------------------------------------------------------------------
# set java enviroment
export JAVA_HOME=/usr/java/jdk1.6.0_20
export JRE_HOME=/usr/java/jdk1.6.0_20/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
--------------------------------------------------------------------
运行一下代码使得配置文件生效
[root@www ~]# source /etc/profile
将目录切换至/usr/bin设置链接(该链接据说是为了引导centos将其默认jdk设置为我们安装的jdk,否则centos会去寻找自带的openjdk)
cd /usr/bin
[root@www bin]# ln -s -f /usr/java/jdk1.6.0_20/jre/bin/java
[root@www bin]# ln -s -f /usr/java/jdk1.6.0_20/bin/javac
安装完jdk后,再
卸载系统自带jdk
通过以下命令可以查看本系统jdk
[root@www ~]# rpm -qa|grep jdk
删除除了jdk1.6.0_20以外的jdk,本文所涉及需删除的jdk如下
[root@www ~]# yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
删除完成后,再次运行
[root@www ~]# source /etc/profile
测试一下,看看是不是此时系统只有我们安装的那个jdk
[root@www ~]# java -version
[root@www ~]# javac
大致出现如图1_java.jpg所示,则说明此步骤安装成功。
**********************************************************************************
ssh无密码验证登录localhost(SSH服务已经安装)[size=medium][/size]
启动终端,执行命令:
[root@www ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
[root@www ~]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#测试SSH无密码验证
[root@www ~]# ssh localhost
The authenticity of host 'localhost (127.0.0.1)'
can't be established.
RSA key fingerprint is 79:91:d5:b6:3f:6f:8c:e4:72:1a:65:c6:3c:ee:2e:87.
Are you sure you want to
continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Last login: Wed May 23 20:41:09 2012
**********************************************************************************
安装hadoop
(之所以选择hadoop0.20.1,是考虑到这个版本可以向下兼容,0.20之后的版本都不兼容老版本的hadoop了,头疼的是本来就少有的参考书还基本都是基于0.19版本的)
采用版本:hadoop-0.20.1.tar.gz
[root@www ~]# cd /opt
将hadoop安装文件hadoop-0.20.1.tar.gz拷贝至/opt目录下,安装
[root@www opt]# tar -zxvf hadoop-0.20.1.tar.gz
完成后配置/opt/hadoop-0.20.1/conf/hadoop-env.sh,添加如下内容
------------------------------------------------------------------------
export JAVA_HOME=/usr/java/jdk1.6.0_20
export HADOOP_HOME=/opt/hadoop-0.20.1
export PATH=$PATH:$HADOOP_HOME/bin
------------------------------------------------------------------------
根据所需要的模式进行单机/伪分布/集群配置,我们选择伪分布:
hadoop伪分布配置: 更改/opt/hadoop/hadoop-0.20.1/conf/目录下的三个xml文件
core-site.xml
======================================
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop/hadoop-${user.name}</value>
</property>
</configuration>
======================================
hdfs-site.xml
======================================
<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>
======================================
最后测试,运行jps命令后,出现6个进程则表示安装正确
[root@localhost ~]# cd /opt/hadoop-0.20.1
[root@localhost hadoop-0.20.1]# bin/hadoop namenode -format
12/05/24 09:53:34 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost.localdomain/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.1
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
12/05/24 09:53:35 INFO namenode.FSName
system: fsOwner=root,root,bin,daemon,sys,adm,disk,wheel
12/05/24 09:53:35 INFO namenode.FSNamesystem: supergroup=supergroup
12/05/24 09:53:35 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/05/24 09:53:35 INFO common.Storage: Image file of size 94 saved in 0 seconds.
12/05/24 09:53:35 INFO common.Storage: Storage directory /tmp/hadoop/hadoop-root/dfs/name
has been successfully formatted.
12/05/24 09:53:35 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1
************************************************************/
[root@localhost hadoop-0.20.1]# bin/start-all.sh
starting namenode, logging to /opt/hadoop-0.20.1/
logs/hadoop-root-namenode-localhost.localdomain.out
localhost: starting datanode, logging to /opt/hadoop-0.20.1/logs/hadoop-root-datanode-localhost.localdomain.out
localhost: starting secondarynamenode, logging to /opt/hadoop-0.20.1/logs/hadoop-root-secondarynamenode-localhost.localdomain.out
starting jobtracker, logging to /opt/hadoop-0.20.1/logs/hadoop-root-jobtracker-localhost.localdomain.out
localhost: starting tasktracker, logging to /opt/hadoop-0.20.1/logs/hadoop-root-tasktracker-localhost.localdomain.out
[root@localhost hadoop-0.20.1]# jps
3866 DataNode
3763 NameNode
3987 SecondaryNameNode
4059 JobTracker
4221 Jps
**********************************************************************************
eclipse安装
[root@www ~]# cd /opt
将eclipse安装文件eclipse-SDK-3.5.2-linux-gtk.tar.gz拷贝至/opt目录下
[root@www opt]# tar -zxvf eclipse-SDK-3.5.2-linux-gtk.tar.gz
解压缩完成后将hadoop-0.20.1-eclipse-3.5-plugin.jar(这个是挺关键的,且该插件只能用于eclipse3.5.2版本,附件中可以下载)拷贝至eclipse的plugins目录下
对eclipse/eclipse.ini进行修改,如下(主要添加jvm路径):
------------------------------------------------------------------------------
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.200.v20090520
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
/usr/java/jdk1.6.0_20/bin/java
-vmargs
-Xms40m
-Xmx256m
--------------------------------------------------------------------------------
完成后可以运行/opt/eclipse目录下的eclipse文件打开eclipse。
--------------------------------------------------------------------------------
- 大小: 144.6 KB
- hadoop-0.20.1-eclipse-3.5.2-plugin.jar (2.8 MB)
- 下载次数: 4
- 大小: 137.7 KB