||
1. windows下安装VMWare workstation 7.1.2 并装centos 及 VMWare Tools ,详见Linux下的安装及设置
root:XXXXX grid:grid----hadoop将在grid用户下安装使用
2.ssh
系统已有,免安装。netstat -tunlp可查看已开的端口中有ssh的,可ssh localhost测试,需要输入密码登陆。
设置:目的是grid@A机器中ssh grid@B机器 免密码,方式是A机器中生成密钥对,自己留下私钥,把公钥放到B中的~/.ssh中
A中以grid登陆,生成dsa密钥对:$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
或生成rsa密钥对:ssh-keygen -t rsa
复制公钥:cp id_dsa.pub authorized_keys,若有多个公钥需要保存则往后添加:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
注意:.ssh的权限为700 authorized_keys的权限为600,则第一次登录时需要密码,之后不用。
3.安装jdk
参考:安装jdk(jdk-7u4-linux-i586.rpm)到/usr/java,以root身份。
4.装hadoop到/home/grid/app/下,以grid身份
cd ~/app/
tar -zxvf hadoop-1.0.3.tar.gz 解压到app下
改环境变量:
cd hadoop
gedit conf/hadoop.env.sh,export JAVA_HOME=/usr/java/jdk1.7.0_04
此时,单机模式OK,可测试grep正则搜索:
The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
$ cat output/*
5.配置伪分布式,仍然以grid身份:
gedit conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/home/grid/tmp/hadoop</value></property></configuration>
</configuration>
注意1:hadoop.tmp.dir是分布式文件系统的位置,默认是/tmp下,但不安全,因为可能被删导致文件系统部完整,导致namenode起不来。
注意2:/home/grid/tmp文件夹可以存在,但在格式化前,hadoop文件不要手动建立,否则文件系统格式化不成功。
gedit conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
gedit conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
格式化dfs:/bin/hadoop namenode -format
若不成功,要把/home/grid/tmp/hadoop删掉再格;若无权限也可能格不成功,此处均在grid用户下操作。
启动守护进程:bin/start-all.sh
可查看ps -ef 看有无5个java进程,分别是namenode secondnamenode datanode jobs task的
可http://localhost:50070/ 查看namenode
可http://localhost:50030/ 查看jobtrackeer
若datanode起不来,可尝试关掉防火墙:/etc/init.d/iptables stop
测试一:grep
bin/hadoop fs -put conf input 把hadoop文件夹下的conf文件夹复制到dfs的/user/grid/input,做为输入文件夹
bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 运行hadoop文件夹下的jar例子程序中的grep小程序(class),输入文件夹是input,输出文件夹是output,grep查找的是dfs开头的内容。此output文件夹貌似也不要手动建立。
bin/hadoop fs -get output output 将运行结果output文件夹复制到hadoop(当前目录)下
cat output/* 再查看输出
或直接在DFS中查看结果:bin/hadoop fs -cat output/*
测试二:wordcount
在hadoop/input中建test1.txt(hello world)和test2.txt(hello hadoop)
bin/hadoop fs -put input in
bin/hadoop jar hadoop-examples-*.jar wordcount in out
bin/hadoop fs -cat out/*
则结果是:hadoop 1 hello 2 world 1
6.配置分布式(仍都在grid用户下,没试过,请查看hadoop分布式配置)
7.hadoop的使用
关进程,在hadoop文件夹下:bin/stop-all.sh
查看命令:bin/hadoop
分布式文件系统:
HDFS:/home/grid/tmp/hadoop/mapred/system ----格式化后的DFS系统
/usr/grid/in ----直接复制(bin/hadoop fs -put input in)到in目录的情况
在文件系统中新建目录:bin/hadoop fs -mkdir /tmp/wordcount
复制本地文件到文件系统:bin/hadoop fs -copyFromLocal /home/grid/word.txt /tmp/wordcount/word.txt
8.eclipse安装到/home/grid/app/并汉化
Eclipse版本:eclipse-java-helios-SR2-linux-gtk.tar.gz(3.7的版本)
Eclipse官方下载 http://www.eclipse.org/downloads/
各版本的区别:
Eclipse IDE for Java Developers是Eclipse的platform加上JDT插件,用来java开发的
Eclipse IDE for Java EE Developers应该是Eclipse的platform加上WTP插件,用来java企业级开发的
Eclipse IDE for C/C++ Developers是Eclipse的platform加上CDT插件,用来做C和C++开发的
Eclipse for RCP/Plug-in Developers是Eclipse的SDK,主要用来插件开发
Eclipse Classic就是原来的Eclipse,还是主要用来开发java
将eclipse解压:tar xvf eclipse-java-indigo-SR2-linux-gtk.tar.gz则运行是英文版
汉化方法:http://www.oschina.net/question/111098_14079
汉化包下载:http://www.eclipse.org/babel/downloads.php
将BabelLanguagePack-eclipse-zh_3.7.0.v20111128043401.zip下的features和plugins下的文件分别放到eclipse目录下,再启动eclipse即中文。
9.eclipse安装hadoop插件及配置
将hadoop-eclipse-plugin-1.0.3.jar复制到eclipse/plugins下,
重启eclipse,窗口-首选项-Hadoop Map/Reduce,设置hadoop的安装目录/home/grid/hadoop-1.0.3
窗口-显示视图-Map/Reduce Location,则会出现Map/Reduce Location的视图窗口,在窗口右上角点新建,新建一个Location:
Location Name: hadoop(任意)
Map/Reduce Master: localhost 9000 (同hadoop中core-site.xml mapred-site.xml中的配置)
DFS Master: localhost 9001
配置后,在Project Exploror窗口中DFS Location出现hadoop-(2)-... 说明成功,能连上DFS服务
10.eclipse中wordcount例子:
新建项目:File-->New-->Other-->Map/Reduce Project ,项目名可以随便取,如WordCount。
复制 hadoop安装目录下/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。
输入文件准备:在hadoop/input中建test1.txt(hello world)和test2.txt(hello hadoop)
bin/hadoop fs -put input in
运行的配置:
在新建的项目Hadoop,点击WordCount.java,右键-->Run As-->Run Configurations
在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:
hdfs://localhost:9000/user/grid/in hdfs://localhost:9000/user/grid/out
如果运行时报java.lang.OutOfMemoryError: Java heap space 配置VM arguments(在Program arguments下)
-Xms512m -Xmx1024m -XX:MaxPermSize=256m
运行,控制台会输入一大堆信息,但查看结果:bin/hadoop fs -cat out/*
参考资料:
官方文档:http://hadoop.apache.org/common/docs/r1.0.3/single_node_setup.html
网络文档:基于Eclipse的Hadoop应用开发环境配置http://www.cnblogs.com/flyoung2008/archive/2011/12/09/2281400.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 09:27
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社