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
)使环境变量生效 : 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环境配置成功了。
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时会导致错误。
4.切换到map/reduce透视图
5.通过show views将新建一个hadoop location地址,在输入界面中
6.
core-site.xml hdfs.xml map-red.xml文件中的一致。
查看是否连接到集群中
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即可解决