混吃等死的猪
I believe, I can.

  最近几天闲来无事,准备研究一下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
有 2 个候选项可用于替换 java (提供 /usr/bin/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

如上所示,这样就设置好了要使用的java了。最后我们验证一下:
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上插件的配置,有时间在写吧。

 

posted on 2012-04-24 16:57  混吃等死的猪  阅读(829)  评论(0编辑  收藏  举报