Hadoop环境安装配置

一、软件准备

软件:Unbuntu11.10 , jdk1.6以上, hadoop-0.20.203, eclipseHelilo3.6.2版,

hadoop-0.20.203-plugin.jar插件。

硬件:3台pc机,主节点尽量配置好点的。

如下:192.168.1. 11 namenode  (域名用来识别机器,namenode为主节点)

                  192.168.1.4  datanode1 

                 192.168.1.6   datanode2  

二、安装过程简介

、先在各台机器上安装unbuntu系统。首先整理出一个磁盘,安装双系统,使用wubi安装,比较简单。安装时尽量断开网线,会加快安装速度。安装时各台机器尽量取一致的用户名比如都用 hadoop作为用户名。

安装完配置如下:首先对每台机机器host进行配置:

 1)命令行输入命令: sudo gedit  /etc/hosts    将上面的ip和对应的域名写入,这样就可以用host名来访问各个节点了。 

)将用户名hadoop加为特权用户:sudo gedit /etc/sudoers

root    ALL=(ALL:ALL) ALL 加入如下语句:

                         hadoop  ALL=(ALL:ALL) ALL

                                 

安装ssh

自动安装,各个节点机器都要安装: sudo apt-get install openssh-server 

which  ssh   which ssd  which ssh-keygen验证是否已经安装过ssh

在namenode节点上生成公钥:  ssh-keygen -t rsa 

    3)加入信任列表中:

rsa.pub>>/home/hadoop/.ssh/authorized_keys

         4)查看:

             [hadoop@hadoop1 ~]$ ls .ssh/ 

                      authorized_keys  id_rsa  id_rsa.pub  known_hosts 

         5)重新载入:sudo /etc/init.d/ssh reload

)将id_rsa.pub拷贝到各个datanode节点上:

              进到各个数据节点使用命令将公钥从namenode节点拷过来:

              sudo scp hadoop@namenode /home/hadoop/.ssh/id_rsa.pub   /home/hadoop/.shh/

              加入到信任列表里:cat  /home/hadoop/is_rsa.pub>>/home/hadoop/.ssh/authorized_keys

          7)验证:ssh datanode1  ssh datanode2   ssh namenode  查看结果是否是通的。

exit退出。之后就可以 。

datanode节点机器了

、安装配置jdk

下载jdk直接解压到/home/hadoop目录下或者放到好记的目录下,修改目录名字为jdk1.6

配置环境变量:sudo gedit /etc/profile

        

hadoop运行环境 win hadoop环境配置要求_hadoop

      

           

)使环境变量生效 : source /etc/profile 

)验证jdk是否安装配置成功:java -version

)通过ssh进到各个datanode节点,将jdk目录和配置文件分别拷到各个节点上。   sudo scp hadoop@namenode /home/hadoop/jdk1.6  /home/hadoop/

         sudo scp hadoop@namenode /etc/profile /etc/

验证各个节点上的jdk环境是否正确。

、安装hadoop

下载并解压hadoop-0.20.203.0.修给解压文件夹名字为hadoop-0.20.203

按上述所示将hadoop-0.20.203/bin路径加到PATH环境变量中

           sudo gedit/etc/profile

修改配置文件,配置文件都在hadoop-0.20.203/conf目录下。

进到/hadoop-0.20.203/conf/hadoop-env.sh中,解注释JAVA_HOME

JAVA_HOME=/home/hadoop/jdk1.6

修改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://namenode:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name> <!-hadoop的临时文件位置->

<value>/home/hadoop/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>2</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>namenode:9001</value>

</property>

</configuration>

、在masters和slave文件中分别配置主节点和各个数据节点:

:中写入namenode

: 写入datanode1

                            datanode2

4)将hadoop-0.20.203目录拷贝到datanode1和datanode2节点上。

ssh datanode1

             sudo scp hadoop@namenode /home/hadoop/hadoop-020.203 /home/hadoop/

             exit

             ssh datanode2

             sudo scp hadoop@namenode /home/hadoop/hadoop-020.203 /home/hadoop/

             exit

5)格式化hdfs系统 在主节点下执行hadoop fs namenode -format

启动hadoop服务,关闭的话用stop-all.sh

jps验证:

                         10492 Jps

                         2132 JobTracker

                         1817 NameNode

                          2980 

                          2059 SecondaryNameNode      

datanode1和datanode2中输入jps验证进程是否启动。

                           

hadoop运行环境 win hadoop环境配置要求_Eclipse_02

 

出现上述结果则表明hadoop环境配置成功了。

6.在hadoop集群环境中运行wordcount程序。

)hadoop中附带了小事例可以验证集群环境。

有wordcount事例程序。

)新建一个test.txt文件,在里面拷入文字。放到/home/hadoop/下,保证你的hadoop下的bin目录已经加到PATH环境变量中,否则无法直接执行hadoop命令

3)通过命令hadoop fs -put /home/hadoop/test.txt /  将test.txt传到hdfs文件系统中

4)执行命令

hadoop-0.20.203/hadoop-examples-0.20.203.0.jar wordcount /test.txt /out 将会在集群中运行词频统计程序

查看输出结果

既可以看到词频统计的结果,也可以通过

将运行结果下载到本地文件系统中查看。

6)当运行下个程序时需要将输出结果文件夹里的内容清空,否则会出现错误。 

   hadoop fs -rmr /out

hadoop集群运行环境基本配置完成!!!!

              在eclipse下通过插件开发运行mapreduce程序。

1.安装eclipse3.6.2

2.下载修改过的hadoop-0.20.203-plugins.jar插件,

hadoop-0.20.203\contrib\eclipse-plugin\也有一个对应的开发插件,但笔者经过验证此插件基本不能用,需要自己手动修改。

3.将上述插件放到eclipse的plugins目录中,重启eclipse则会出现蓝色的小象图标,然后再eclipse中的首选项配置中,将所使用的hadoop路径加进来,版本要与集群中的版本一致,

否则运行多个版本的hadoop时会导致错误。

hadoop运行环境 win hadoop环境配置要求_Eclipse_03

4.切换到map/reduce透视图

hadoop运行环境 win hadoop环境配置要求_eclipse_04

5.通过show views将新建一个hadoop location地址,在输入界面中

hadoop运行环境 win hadoop环境配置要求_Eclipse_05

6.

core-site.xml hdfs.xml map-red.xml文件中的一致。

hadoop运行环境 win hadoop环境配置要求_eclipse_06

查看是否连接到集群中

hadoop运行环境 win hadoop环境配置要求_eclipse_07

8.新建一个map/reduce项目,将源码文件中自带的wordcount.java程序加入,然后在运行参数配置中给出hdfs的路径

hdfs://namenode:9000/test.txt hdfs://namenode:9000/oddd  运行即可,然后刷新左边的dfs location即可看到相应的运行结果。

9.windows下和ubuntu下的eclipse连接基本相同不过要注意一点就是hadoop-0.20.203版本中进行了优化,所以如果windows系统的用户名如果与hadoop集群的用户名不一致可能会出现文件访问权限的问题,所以要修改windows系统的用户名与集群保持一致。

10.关于mahout的运行基本与wordcount运行的过程基本一致,下载mahout的源代码或者直接调用对应jar包,在集群中运行就行了。

eclipse插件连接集群运行map/reduce程序基本完成。                          

               hadoop集群配置的相关问题和资料集锦

1. 当出现无法向hdfs中上传文件时,可能是由于运行了多个版本的hadoop程序所导致的namespaceID不一致,所以要删除对应的目录中的文件

将对应的namenode节点,datanode节点中的文件清空,然后重新格式化hdfs文件系统,重新启动服务即可。

2. windows下通过eclipse插件向hadoop-020.203版本的集群中提交代码时要把windows系统的用户名修改为集群环境的用户名才能提交。

3. windows下无法进行job分配时要再程序中加入如下手动指定mapred地址,要与配置中的保持一致:

       Configuration conf = new Configuration();

       conf.set("mapred.job.tracker", "namenode:9001");

开发环境

http://phz50.iteye.com/blog/932373 开发环境

--------------------------------------------------------------------------------------------------------------

下安装hadoop

http://blog.sina.com.cn/s/blog_5fc3f6f901013w0h.html             Hadoop-eclipse-plugin插件安装

http://weixiaolu.iteye.com/blog/1402919 Hadoop                   作业提交多种方案具体流程详解

格式化HDFS报错java.net.UnknownHostException: localhost.localdomain: localhost.localdomain

http://blog.sina.com.cn/s/blog_575b0ca501016z6i.html             Hadoop-eclipse-plugin的运行历险

http://cloudtech.iteye.com/blog/1614791                   Win7 eclipse Hadoop Failed to set permissions of path 

       Win7 eclipse Hadoop Failed to set permissions of path

http://blog.chinaunix.net/uid-21335514-id-1989431.html                  hadoop的配置问题(windows下eclipse)

配置hadoop遇到的错误(包括windows下用eclipse配置hadoop)

http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada    关于Hadoop-0.20.203.0通过Eclipse连接编程的问题

解决win下eclipse连linux的hadoop集群连不上的问题

集群搭建

错误

编译Hadoop的Eclipse插件(Windows) 

http://blog.sina.com.cn/s/blog_72827fb10101a3dx.html           hbase的error总结

常见问题集锦

在eclipse中配置hadoop插件

修改后的插件下载

----------------------------------------------2012.12.7--------------------------------------------------------

1.hadoop异常“could only be replicated to 0 nodes, instead of 1” 解决

  

  

  http://hi.baidu.com/xiaomi/item/49d16a90720d16f629164727

2.Hadoop集群配置(最全面总结)

  

3.关于Hadoop-0.20.203.0通过Eclipse连接编程的问题 修改eclipse插件

  http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada

4.编译Hadoop的Eclipse插件(Windows)     

5.Hadoop-eclipse-plugin插件安装       http://blog.sina.com.cn/s/blog_5fc3f6f901013w0h.html 

6.双系统  http://wenku.baidu.com/view/a9263b160b4e767f5acfce6e.html

7.  hadoop dfs    权限问题

---------------------------------------------------2012.12.8-----------------------------------------------

1.直接打包上传后运行

hadoop jar ~/hadoop-0.20.203/hadoop-examples-0.20.203.0.jar wordcount  /test.txt /output

2.参数

hdfs://namenode:9000/test.txt  hdfs://namenode:9000/out

3.Plug-in org.eclipse.jdt.ui was unable to load

Eclipse:Could not create the view: Plug-in org.eclipse.jdt.ui was unable to load class org.eclipse.

使用Eclipse时,遇到了如下的异常,工作空间(workspace)打不开:Could not create the view: Plug-inorg.eclipse.jdt.ui was unable to load class  org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.***

解决方案就是:删除workspace下的.metadata文件夹,重新打开Eclipse就OK了。或者换一个工作空间! 

4.无法在模块路径中找到主题引

ubuntu11.10安装后qtcreator编译运行,发现出现这个错误

”Gtk-WARNING **: 无法在模块路径中找到主题引擎:“pixmap”“

通过网上搜索之后,发现可能是gtk引擎除了问题,

在终端下输入sudo apt-get install gtk2-engines-pixbuf即可解决