Hadoop环境安装配置
一、软件准备
1.软件:Unbuntu11.10 , jdk1.6以上, hadoop-0.20.203, eclipseHelilo3.6.2版,
及修改过的hadoop-0.20.203-plugin.jar插件。
2.硬件:3台pc机,主节点尽量配置好点的。
ip如下:192.168.1. 11 namenode (域名用来识别机器,namenode为主节点)
192.168.1.4 datanode1
192.168.1.6 datanode2
二、安装过程简介
1、先在各台机器上安装unbuntu系统。首先整理出一个磁盘,安装双系统,使用wubi安装,比较简单。安装时尽量断开网线,会加快安装速度。安装时各台机器尽量取一致的用户名比如都用 hadoop作为用户名。
2. 安装完配置如下:首先对每台机机器host进行配置:
1)命令行输入命令: sudo gedit /etc/hosts 将上面的ip和对应的域名写入,这样就可以用host名来访问各个节点了。
2)将用户名hadoop加为特权用户:sudo gedit /etc/sudoers
在 root ALL=(ALL:ALL) ALL 加入如下语句:
hadoop ALL=(ALL:ALL) ALL
3.安装ssh
1)自动安装,各个节点机器都要安装: sudo apt-get install openssh-server
安装之前可以使用 which ssh which ssd which ssh-keygen验证是否已经安装过ssh
2)在namenode节点上生成公钥: ssh-keygen -t rsa
3)加入信任列表中:
cat /home/hadoop/is_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
6)将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节点机器了
4、安装配置jdk
1)下载jdk直接解压到/home/hadoop目录下或者放到好记的目录下,修改目录名字为jdk1.6
2)配置环境变量:sudo gedit /etc/profile
3)使环境变量生效 : source /etc/profile
4)验证jdk是否安装配置成功:java -version
5)通过ssh进到各个datanode节点,将jdk目录和配置文件分别拷到各个节点上。 sudo scp hadoop@namenode /home/hadoop/jdk1.6 /home/hadoop/
sudo scp hadoop@namenode /etc/profile /etc/
6)验证各个节点上的jdk环境是否正确。
5、安装hadoop
1)下载并解压hadoop-0.20.203.0.修给解压文件夹名字为hadoop-0.20.203
2)按上述所示将hadoop-0.20.203/bin路径加到PATH环境变量中
sudo gedit/etc/profile
3)修改配置文件,配置文件都在hadoop-0.20.203/conf目录下。
a.进到/hadoop-0.20.203/conf/hadoop-env.sh中,解注释JAVA_HOME
修改为:JAVA_HOME=/home/hadoop/jdk1.6
b.修改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>
c、修改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>
d、修改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>
e、在masters和slave文件中分别配置主节点和各个数据节点:
masters:中写入namenode
slaves: 写入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
start-all.sh 启动hadoop服务,关闭的话用stop-all.sh
在主节点下输入jps验证:
10492 Jps
2132 JobTracker
1817 NameNode
2980
2059 SecondaryNameNode
在数据节点datanode1和datanode2中输入jps验证进程是否启动。
出现上述结果则表明hadoop环境配置成功了。
6.在hadoop集群环境中运行wordcount程序。
1)hadoop中附带了小事例可以验证集群环境。
hadoop-0.20.203/hadoop-examples-0.20.203.0.jar有wordcount事例程序。
2)新建一个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 将会在集群中运行词频统计程序
5)查看输出结果
hadoop fs -cat /out/part-r-00000 既可以看到词频统计的结果,也可以通过
hadoop fs -get /out/part-r-00000 /home/hadoop/out.txt将运行结果下载到本地文件系统中查看。
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\也有一个对应的开发插件,但笔者经过验证此插件基本不能用,需要自己手动修改。修改的连接教程:
http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada 或者是到csdn上下载
http://download.csdn.net/download/zhb_mccoy/3949146
3.将上述插件放到eclipse的plugins目录中,重启eclipse则会出现蓝色的小象图标,然后再eclipse中的首选项配置中,将所使用的hadoop路径加进来,版本要与集群中的版本一致,
否则运行多个版本的hadoop时会导致错误。
4.切换到map/reduce透视图
5.通过show views将新建一个hadoop location地址,在输入界面中
6.
配置如下:输入的参数要与你的集群中配置文件core-site.xml hdfs.xml map-red.xml文件中的一致。
7.查看是否连接到集群中
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不一致,所以要删除对应的目录中的文件
/home/hadoop/tmp/hdfs/data将对应的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");
4.其它资料:
-------------------------------------------2012.12.6-------------------------------------------------------
--------------------------------------hadoop环境搭建资料-------------------------------------------
http://www.360doc.com/content/11/0506/00/18042_114694337.shtml
http://www.360doc.com/content/11/0506/00/18042_114694222.shtml
http://dngood.blog.51cto.com/446195/775368
http://blog.csdn.net/sony315/article/details/6865416
http://www.cnblogs.com/hiddenfox/archive/2011/11/26/2264461.html eclipse 开发环境
http://phz50.iteye.com/blog/932373 开发环境
--------------------------------------------------------------------------------------------------------------
http://blog.csdn.net/cybercode/article/details/7081552 win7下安装hadoop
http://blog.sina.com.cn/s/blog_5fc3f6f901013w0h.html Hadoop-eclipse-plugin插件安装
http://weixiaolu.iteye.com/blog/1402919 Hadoop 作业提交多种方案具体流程详解
http://blog.csdn.net/shirdrn/article/details/6562292 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
http://blog.csdn.net/bhq2010/article/details/7364041 Win7 eclipse Hadoop Failed to set permissions of path
http://blog.chinaunix.net/uid-21335514-id-1989431.html hadoop的配置问题(windows下eclipse)
http://blog.csdn.net/cp01ter/article/details/7198611 配置hadoop遇到的错误(包括windows下用eclipse配置hadoop)
http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada 关于Hadoop-0.20.203.0通过Eclipse连接编程的问题
http://blog.csdn.net/hunkyguy/article/details/8089148 解决win下eclipse连linux的hadoop集群连不上的问题
http://blog.csdn.net/aidayei/article/details/6555255 hadoop集群搭建
http://www.cnblogs.com/riverphoenix/archive/2012/05/21/2511382.html hadoop错误
http://blog.csdn.net/arbel/article/details/7674750 编译Hadoop的Eclipse插件(Windows)
http://blog.sina.com.cn/s/blog_72827fb10101a3dx.html hbase的error总结
http://www.cnblogs.com/siwei1988/archive/2012/07/10/2585002.html Hadoop 常见问题集锦
http://www.cnblogs.com/hiddenfox/archive/2011/11/26/2264461.html 在eclipse中配置hadoop插件
http://download.csdn.net/download/zhb_mccoy/3949146 0.20.203 修改后的插件下载
----------------------------------------------2012.12.7--------------------------------------------------------
1.hadoop异常“could only be replicated to 0 nodes, instead of 1” 解决
http://blog.csdn.net/zuiaituantuan/article/details/6533867
http://blog.csdn.net/foamflower/article/details/5980406
http://hi.baidu.com/xiaomi/item/49d16a90720d16f629164727
2.Hadoop集群配置(最全面总结)
http://blog.csdn.net/hguisu/article/details/7237395
3.关于Hadoop-0.20.203.0通过Eclipse连接编程的问题 修改eclipse插件
http://hi.baidu.com/ritchie_wang/item/4c6419117816cbfa9c778ada
4.编译Hadoop的Eclipse插件(Windows) http://blog.csdn.net/arbel/article/details/7674750
5.Hadoop-eclipse-plugin插件安装 http://blog.sina.com.cn/s/blog_5fc3f6f901013w0h.html
6.双系统 http://wenku.baidu.com/view/a9263b160b4e767f5acfce6e.html
7.http://blog.csdn.net/larrylgq/article/details/7580488 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即可解决