最近几天闲来无事,准备研究一下Hadoop,折腾了一个星期,总算在elcipse下将WordCount跑起来了,写篇日志,以做记录。
各种下载请看这里,http://dl.dbank.com/c0b3kwezsa,这个搭配完全可以运行,一开始下载了各种版本的eclipse和hadoop,结果搭配不是那么完美。
ubuntu的安装就不在这里介绍了,ubuntu11.10的软件源里没有jdk,索性连jdk的安装也在这里一并说了。主要说一下jdk,hadoop,eclipse的安装。
1. JDK的安装(jdk-6u30-linux-i586.bin)
sudo cp jdk-6u30-linux-i586.bin /usr/lib/jvm //将jdk复制到所安装的目录下
cd /usr/lib/jvm //进入所安装的目录
sudo ./jdk-6u30-linux-i586.bin //执行.bin文件
sudo rm jdk-6u30-linux-i586.bin //删除.bin文件
在/usr/lib/jvm下存在一个文件夹为jdk1.6.0_30
设置环境变量:
sudo gedit /etc/profile //设置全局环境变量
最下面添加:
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_30
export JRE_HOME=/usr/lib/jvm/jdk1.6.0_30/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/lib:$PATH
如果你的ubuntu安装了OpenJDK,那么你还需要选择一下系统使用为Sun-JDK,而不是OpenJDK
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_30/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_30/bin/javac 300 sudo update-alternatives --config java
选择 路径 优先级 状态 ------------------------------------------------------------ 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自动模式 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手动模式 * 2 /usr/lib/jvm/java-6-sun/bin/java 300 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:2
sachie@ubuntu:~/Software$ java -version java version "1.6.0_30" Java(TM) SE Runtime Environment (build 1.6.0_30-b12) Java HotSpot(TM) Server VM (build 20.5-b03, mixed mode)
查看jdk配置的路径
sachie@ubuntu:~$ echo $JAVA_HOME sachie@ubuntu:~$ echo $PATH sachie@ubuntu:~$ echo $CLASSPATH
2. Eclipse3.5的安装(eclipse-SDK-3.5.2-linux-gtk.tar.gz)
首先将eclipse解压到所安装的文件夹下
sudo tar -zxvf eclipse-SDK-3.5.2-linux-gtk.tar.gz /usr/local sudo chown -R sachie:sachie eclipse //设置eclipse所属的用户和组
sudo chmod 777 /usr/local/eclipse/eclipse //拥有执行权限 sudo /usr/local/eclipse/eclipse //启动eclipse
创建ubuntu的eclipse菜单
sudo gedit /usr/share/applications/eclipse.desktop
添加以下内容
[Desktop Entry] Type=Application Name=Eclipse Comment=Eclipse Integrated Development Environment Icon=/usr/local/eclipse/icon.xpm Exec=/usr/local/eclipse/eclipse Terminal=false Categories=Development;IDE;Java;
此时你可以在/usr/share/applications/中看到Eclipse图标,并且可以启动
也可以在主面板里启动,eclipse配置到这里。
3. Hadoop-0.20.1配置 (hadoop-0.20.1.tar.gz)伪分布式单节点
在这里首先安装SSH,hadoop环境中都是采用SSH来访问其他节点的信息的,无论是在伪分布式还是完全分布式中,在这里我们用openssh-server
sudo apt-get install openssh-server
下来配置SSH,这样集群之间就可以实现无密码登录
ssh-keygen -trsa -P "" //生成公钥和私钥对,放在~/.ssh文件夹下 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys //使集群之间通过无密码方式通过SSH访问分布式文件系统
通过以下命令来测试,是否安装成功
ssh localhost
下来配置Hadoop
首先解压hadoop-0.20.1.tar.gz到用户文件夹下:
sudo tar -zxvf hadoop-0.20.1.tar.gz ~/ //将hadoop-0.20.1解压到/home/sachie/目录下
cd hadoop-0.20.1/conf
修改四大配置文件 注意文件夹的所属权限
第一:hadoop-env.sh
将
# Thejava implementation to use. Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
修改为:
# Thejava implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_30
第二:修改core-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/sachie/program/tmp</value> </property> </configuration>
第三:修改hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四:修改mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
运行hadoop
在命令行里执行hadoop,如果说无此命令,那么请注销一下当前用户,重新登录。
首先设置环境变量
export HADOOP_HOME=/home/sachie/hadoop-0.20.1
export PATH=$HADOOP_HOME/bin
hadoop namenode -format //格式化分布式文件系统(HDFS) start-all.sh //启动hadoop
如果启动成功,执行jps命令,会出现一下5个JVM进程。
sachie@ubuntu:~$ jps 3913 NameNode 4347 SecondaryNameNode 4642 TaskTracker 4433 JobTracker 4121 DataNode 4686 Jps
停止单节点集群:
stop-all.sh
另外可以通过以下网址查看节点的运行情况:
http://localhost:50030/ - Hadoop 管理介面
http://localhost:50060/ - Hadoop Task Tracker 状态
http://localhost:50070/ - Hadoop DFS 状态
如果没有执行成功,请对照日志文件进行修改
另外:
从上面所给出的网站下载的eclipse打开的时候可能会出现让你选择路径的问题,无论你怎么选择路径都不会好使,这里给出解决办法
sudo gedit /usr/local/eclipse/configuration/.settings/org.eclipse.ui.ide.prefs
将最下面的一句话去掉:RECENT_WORKSPACES=/home/sachie/workspace
或者稍作修改。
wordcount例子程序以及elipse上插件的配置,有时间在写吧。