ubuntu12.04版本兼容问题其实是很让人头疼的。
hadoop在安装之前得先装好jdk,
jdk的安装方法我是参考的:http://www.linuxidc.com/Linux/2012-12/76532.htm
注:其中使用的解压语句我还是用的常用的-zxvf
安装好了jdk之后开始准备安装hadoop,我使用的Hadoop版本为hadoop-0.20.203.0rc1.tar.gz,之所以使用这个版本的Hadoop是因为在与eclipse插件的兼容方面,这个版本是比较好的一个。下载地址为:
http://download.chinaunix.net/download.php?id=39946&ResourceID=13378
对于Hadoop的安装步骤,我还是亲自写一遍吧,虽然网上有很多操作步骤,但是你实现的时候你会发现那些东西是很老很老的,或者在某一部分存在着很大问题的。
1、首先将下载的hadoop-0.20.203.0rc1.tar.gz解压到你的用户目录“xinxin”就是你登录ubuntu时的用户名
cd /home/xinxin
sudo tar -zxvf /home/xinxin/Downloads/hadoop-0.20.203.0rc1.tar.gz
mv hadoop-0.20.203.0 hadoop
sudo chown -R xinxin:xinxin hadoop/
注:这条命令如果是按我说的路径在你的用户住目录下则可执行可不执行,要是在其它目录,则必须执行该命令解决权限问题。
以上实现了将hadoop解压到了你的用户的主目录下,ls /home/xinxin就会有hadoop文件夹了,接下来进行配置。
2、注:我的参考步骤:http://www.cnblogs.com/linjiqin/p/3147880.html,
配置配置文件:在/home/xinxin/hadoop/conf/hadoop-env.sh文件中添加环境变量信息。
sudo gedit /home/xinxin/hadoop/conf/hadoop-env.sh
在文件中的最后添加如下信息:
HADOOP_HOME=/home/xinxin/hadoop
JAVA_HOME=/usr/lib/jvm/java-7-sun
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/lib:$CLASSPATH
export HADOOP_HOME
export JAVA_HOME
export PATH
export CLASSPATH
另一处环境变量配置:
sudo gedit /etc/profile
在配置文件末尾添加同样的配置信息:(注意:将其中的jdk路径等改成你自己的,若其中的path等与前面设置的jdk的路径有冲突,大胆覆盖即可,以前jdk安装时配置的那些export都不要了,拿下边这段进行覆盖)
HADOOP_HOME=/home/xinxin/hadoop
JAVA_HOME=/usr/lib/jvm/java-7-sun
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/lib:$CLASSPATH
export HADOOP_HOME
export JAVA_HOME
export PATH
export CLASSPATH
在配置之后用命令更新一下:source /etc/profile
3、SSH的配置:
接下来配置ssh可以无密码登录localhost:
sudo apt-get install ssh
//如果以前已经安装了ssh可以通过命令:sudo /etc/init.d/ssh start 来启动sshserver
sudo apt-get install rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost 这里可以无密码登录
证实它已启动:ps -e |grep ssh 此时若接下来出现sshd字样说明ssh正在运行
4、单个机器或一台虚拟机上学习用,配置的是单击伪分布式的hadoop。(注:真正的集群操作配置与此配置有差别,请看仔细再参考,3Q!)
配置时,需要配置三个配置文件:
sudo gedit /home/xinxin/hadoop/conf/core-site.xml
文件中改为:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
(加上下边这一部分的配置信息很重要,因为如果只按照以上进行设置,每次重启之后你会发现50030运行正常,但是50070怎么都是错误信息,这是因为默认的tmp目录,每次重启都会清空缓存,所以相当与每次你都要格式化format一次,50070才能运行正常,这显然在实际工作中是不允许的。报错信息为:Directory /tmp/hadoop-xinxin/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.解决方法就是在该core-site.xml配置文件中再加上一段修改tmp路径的配置语句:这里,我放在了/usr/hadoop/tmp ,进入usr目录 sudo mkdir hadoop ,千万别忘记修改权限:sudo chown -R xinxin:xinxin hadoop 修改权限之后进入hadoop,cd hadoop 创建tmp文件夹(不用加sudo):mkdir tmp )
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
</configuration>
文件中改为:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
文件中改为:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
以上三步的配置完成了安装配置hadoop
5、格式化namenode及启动hadoop
cd /home/xinxin/hadoop//bin/ 进入目录
hadoop namenode -format 格式化HDFS
在此bin目录下执行启动操作:
xinxin@xinxin-virt:~/hadoop/bin$ ./start-all.sh
也可以分别来启动:./start-dfs.sh
./start-mapred.sh
至此,启动成功。
检验:在此bin目录下执行jps来查看hadoop是否正常运行
xinxin@xinxin-virt:~/hadoop/bin$ jps
5231 SecondaryNameNode
6114 Jps
5607 TaskTracker
4609 NameNode
4913 DataNode
5300 JobTracker
若以上六项全部出现,则说明配置成功。
输入 hadoop version 会显示你装的hadoop的版本,所不显示,再次执行一遍source /etc/profile更新一边
如果成功显示,那你可以在浏览器中输入:http://localhost:50070 和 http://localhost:50030 来检查你的hadoop的运行了
检验您的Hadoop的运行,可以从最简单的hadoop版helloworld:wordcount程序开始。详细过程参见:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html
以上完成了Hadoop的全部安装,只要是按照这个步骤和版本进行安装一定可以安装成功。因为自己在这方面尝试了很多次,也遇到过很多问题,很希望自己的一些小经验能给初学hadoop的同伴一些提示,好了,下面我们来说明 eclipse的安装和连接hadoop吧:
eclipse的版本用的是3.7,下载地址为:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/indigosr2 ,在下载页面的右上部分选择自己的机器类型,我是64位的,就选择linux 64-bit 。
注意这里下载完之后是:eclipse-jee-indigo-SR2-linux-gtk-x86_64.tar.gz 您要是下下来之后是.zip结尾的话请您回去再检查一边您下载时的选择版本吧。
eclipse的安装仅仅是解压,然后运行eclipse图标即可。eclipse与hadoop的连接,需要通过一个插件hadoop-eclipse-plugin-0.20.203.0.jar,具体的对插件的重新配置,以及插件的使用,即eclipse连接hadoop,请见下面这篇blog,写的很详细。这里需要澄清的就是网上都在说的安装插件时,重启,修改hadoop.job.ugi的问题,在这个版本的插件中是没有这个ugi插件的,所以根本不用像网上说的去重启,等着那个选项出现,因为根本就不可能出现。不仅不用在意什么ugi的问题,连网上说的ant编译我都尝试过,完全不必要去装的。因为仅仅按照博客中的简单方法去加一些包,该一个文件就完全可以用,不用去编译修改那么多之类之类的,那些可能都是老版本的。
注意:下面的博客中有一点没说,所以安装不会成功,就是hadoop.tmp.dir一定要按照配置hadoop的配置文件中的core-site.xml中配置的hadoop.tmp.dir的值填写,改变之后重启eclipse,其余配置便会自行改变。其实这一点在hadoop错误中有说明,在这里在补充说明一下。
还有一定要澄清一点:插件安装成功的标志并不是什么会出现一个文件夹上面写着2,其实刚刚装完,那上面只有个1的。。哎~~真心觉得网上有些东西让初学者很迷茫~~~
安装修改过程见下博客:
http://blog.csdn.net/matraxa/article/details/7182382