Hadoop2.6.0+eclipse安装配置,hadoop2.6.0eclipse


几乎因为安装配置hadoop的事弄了三四天,昨天unbuntu莫名其妙的崩溃了。好在今天及其顺利都弄好了,虽然经过了很多烦恼的问题挫折,不过他们是有意义的。

  • 第一次配置是用hadoop2.52的版本,可能是配置文件的问题,当时没有发现,但是看到做wordcount那个例子时遇到bin/hdfs dfs -put etc/hadoop input这条命令时总会出现 No such file or directory.我一开始以为是路径问题,没有在意。后面也遇到了,我都是修改路径就好了。其实遇到这个问题时就应该发现之前装的是有问题的,这是因为namenode没有启动,导致了不会再你自己的子目录下新建/user/username这个文件夹。
  • 第二次是配置是因为没有datanode,导致发现没有datanode节点做mapreduce,localhost:50070一直进不去,但我步骤都对,所以一直重复步骤还是打不开,用jps只看到了jps一个进程,其实是namenode,datanode都没有打开。

总结教训
- 一步一步来,只要遇到中间有不正常的情况,可能就是自己程序配置出了问题,哪怕绕过了以后也可能会出问题。
- 然后遇到问题,返回去看log,通过log里的错误信息来解决。
- 有官方文档尽量看官方文档。

来正式说配置的事:
我是在linux环境下,Ubuntu14.04下配置的
资源:java+eclipse+hadoop2.6.2
里面包括了,Java(1.7和1.8都有,我用的1.8),eclipse,hadoop2.6.2 还有eclipse的hadoop2.6.0的插件

sudo tar -zxvf jdk-8u40-linux-x64.gz
sudo mv hadoop-2.6.0 /usr/local/jdk1.8.0_40  

然后

sudo gedit /etc/profile 

在最后面添加

export JAVA_HOME=/usr/local/jdk1.8.0_40
export PATH=$PATH:$JAVA_HOME/bin
export    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

第一行代码目的是加环境变量,可以用JAVA_HOME代替/usr/local/jdk1.8.0_40这个地址,后面就可以少写一点。
第二行代码目的是,为了方便运行java程序,这样涉及到程序软件要调用java时,只需要用java -arg 就可以,而不用找java的路径。
第三行代码的目的是,当需要用到jar的包时,系统会自动从classpath的路径里寻找加载
然后
source /etc/profile
重新编译一遍profile就安装好了java。可输入

java -version

来测试

2.安装ssh

sudo apt-get install ssh
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

安装ssh的主要目的是因为登陆远程主机会用ssh协议,第二行代码是自己创建了一对密钥,分别为id_dsa和id_dsa.pub。第三行代码是把公钥传递给自己的公钥目录。具体ssh这样的原理可自行百度。

3.配置Hadoop2.6.0
在你hadoop的下载目录下

sudo tar -zxvf hadoop-2.6.0.tar.gz
sudo mv hadoop-2.6.0 /usr/local/hadoop
sudo chmod -R 777 /usr/local/hadoop

然后

sudo gedit /etc/profile

在后面加入

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

而后

sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh

将JAVA_HOME的值改为/usr/local/jdk1.8.0_40

然后修改
etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改mapred-site.xml

<configuration>
 <property>   
      <name>mapred.job.tracker</name>  
      <value>localhost:9001</value>   
     </property>   
</configuration>

修改yarn-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

修改hdfs-site.xml

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
    <property>                 //这个属性节点是为了防止后面eclopse存在拒绝读写设置的
            <name>dfs.permissions</name>
            <value>false</value>
     </property>
 </configuration>

sudo gedit /usr/local/hadoop/etc/hadoop/masters 添加:localhost

sudo gedit /usr/local/hadoop/etc/hadoop/slaves 添加:localhost

然后
创建好临时目录和datanode与namenode的目录

cd /usr/local/hadoop
mkdir tmp dfs dfs/name dfs/data
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh

bin/hdfs namenode -format成功的话,最后的提示如下,Exitting with status 0 表示成功,Exitting with status 1: 则是出错。
尽量不要用start-all.sh,以为hadoop作者发现这个脚本可能有点问题。
http://localhost:50070来查看Hadoop中hdfs的信息
http://localhost:8088 查看all application的信息

然后输入以下代码可以来测试

bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/<username>
bin/hdfs dfs -put etc/hadoop input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -cat output/*

正常情况下会有wordcount的输出结果

4.配置eclipse
下载完eclipse和其插件后,先解压缩eclipse然后
把hadoop-eclipse-plugin-2.6.0.jar这个文件放在eclipse/plugins这个目录下。
具体配置可以参照这个文档,我也是照着配的,原博是2.4.0的,我试过,2.6.0也是一样的配置。
Eclipse下搭建Hadoop2.6.0开发环境

相关内容