一.所需软件
注意:安装MyEclipse后,我再已安装软件里找不到MyEclipse,所以我在root权限下用命令行启动MyEclipse,貌似避免了很多权限问题。
sudo su 输入密码 cd usr/myeclipse ./myeclipse
二.步骤
1.先把hadoop-eclipse-plugin-1.2.1.jar复制到ubuntu桌面(我的不能直接复制到MyEclipse的dropins目录下,我同学的能,真是奇怪啊),然后在进入桌面。
还是先进入root cd cd ..//回到根目录 cd home/hxsyl/DeskTop//找到真正的桌面 //移动文件需要在该文件的目录下 //放在dropins目录下,并不是plugins目录下,原来我以为没有plugins目录呢,才放在dropins,并不是这样 sudo mv hadoop-eclipse-plugin-1.2.1.jar /usr/myeclipse/dropins
注意:左面有两个文件夹下的Places下直接有个桌面,但是却找不到刚复制过来的hadoop-eclipse-plugin-1.2.1.jar,Devices下有computer,然后home,然后DeskTop看到了插件,记住这个路径吧,以后少不了还要复制东西。
2.进入与dropins同目录下的configuration,删除org.eclipse.update(这是个文件夹,不过我并没删除)。
3. 重启MyEclipse4. 添加Mapreduce视图“windows”-> "open perspective" -> "other",会看到一只小象map/reduce,如无,请勾上“show all”,就可以打开该视图(普通工程在Java视图下,该步骤就是多打开一个试图,方面写代码)。此时,MyEclipse的左侧的工程浏览器里会显示DFS Locations,下面有个MyHadoopServer(我的Hadoop服务器名字),这样就想咱平时jsp的服务器。
4. 配置Hadoop服务器“widows” -> "show views" ->"mapReduce tool" -> "Map/Reduce locations",打开后,(在下面Console附近有Map/Reduce locations),空白处右键,选择新建服务“New Hadoop Location,进入General选项卡。
1) “location name” : 填入新hadoop服务名,我写的是MyHadoopServer
2) "Map/Reduce Master":这个对应hadoop服务器的jobtracker
A) Host:对用hadoop的jobtracker所在的IP,单机就是localhost,可更改
B) Port:对应jobtracker的端口,在mapred-site.xml配置的端口,一般为9001,默认的是50400
3) “DFS Master”: 这个对应hdfs的端口,对应在core-site.xml
A) Host: 对用hadoop的hdfs所在的IP,就是localhost,这个不可更改
B) Port: 对应hdfs的端口,在mapred-site.xml配置的端口,一般为9000,默认的是50400
注意:下边还有个用户名,默认root我没改动。
注意:open perspective打开的东西,在MyEclipse右边,算是编辑视图;show views打开的东西在MyEclipse下边,和Console在一起。
5.打开和General选项卡同级的Advanced Parameters选项卡,找到hadoop.tmp.dir(很好找,按字典序排序的),然后在core-site.xml找到对应的内容,我的是home/hxsyl/tmp。
6.此时可以看到左侧的工程浏览器下的DFS Locations下的MyHadoopServer的两个文件夹,一个叫home/hxsyl/tmp,这个就是第5步配置的那个文件夹;另一个是user/root/In和Out。
这个root应该是第4步下的那个用户名,In和Out分别是赞运行WordCount的输入输出文件,运行WordCount需要命令行传参数,具体就是邮件run-as、run configurations、parameters,然后输入(注意:必须先运行WordCount.java,然后提示少参数的错误,然后再run-as、run configurations、parameters,直接的话不显示parameters,这是奇怪)
hdfs://localhost:9000/user/root/In hdfs://localhost:9000/user/root/Out
注意:需要先把In文件上传到hdfs上,具体就是:我在根目录(和usr同级)贱了testHadoop文件夹
sudo mkdir testHadoop
然后进入到该文件夹
//test1和2会自动在testHadoop文件夹下生成 echo “hello world” >test1 echo "hello hadoop" >test2
然后把文件上传到hdfs
//此时在testHadoop所在文件夹,不过咱需要进入到Hadoop文件夹,主要是要用到hadoop这个命令 //不过不需要cd,切不可进入hadoop文件夹,因为上传那个文件就要在那个文件的目录下 //因为咱直接./testHadoop,没写绝对路径(自己理解的)。 usr/hadoop1.2.1file/hadoop-1.2.1/bin/hadoop fs -put ./testHadoop In //注意:./testHadoop,如果按tab只能生成./testHadoop的话 ,他后面会多个/,一定要删除,In就是上传到的hdfs上对应的文件夹 //想查看In内容,两种方法,一种是用下面的命令 usr/hadoop1.2.1file/hadoop-1.2.1/bin/hadoop fs -ls ./testHadoop //另一种方法是(此时已经上传了hdfs),运行代码*(不管有没有错误都行,个人理解就是简历和hdfs的链接,然后就看到hdfs里的内容了),刷新DFS Locations,在user/root/In下会看到
7.配置好后,运行,结果就在DFS Locations 的 user/root/Out下part-r-0000文件下,结果如下。
hadoop 1 hello 2 world 1
注意:如果在命令行下运行WordCount需要(此时已上传到hdfs),需要先进入hadoop
cd usr/hadoop1.2.1file/hadoop-1.2.1
然后运行代码如下
//没试过WordCount,莫非命令行不区分大小写 bin/hadoop jar hadoop-examples-1.2.1.jar wordcount In Out
注意:此处的问题是,必须不能进入bin目录,我试过,进入的话就运行不了了,真是奇怪了。
然后查看运行结果。
bin/hadoop fs -cat ./Out/part-r-00000
三.结束语及遗留问题
3.1 遗留问题
1.如何直接从win复制到linux对应的文件夹,不用先复制到左面,在mv
2.xml类文件,有时候可以直接打开,编辑,保存,但有时后这样的话,那个save不可用,真是奇怪了,必须
//这个是jdk的环境变量 sudo gedit /etc/profile
莫非是因为命令行终端不是root,应该不是这个问题,我每次进入ubuntu,就先打开终端,然后进入root。
3.2 结束语
对照命令行和DFS Locations,这样理解很方便。
3.3 CodeForFuture
CodeForFuture,DotaForFun......本群专注于互联网、电子商务及数据挖掘, 群内成员来自各大高校的研究生和本科生(比如清华大学、北京大学、中山大学 、北京联合大学、华南理工大学、中科院计算所、上冻理工、山东大学、平顶山 学院、南阳理工,上海大学、网络研究所......不再一一列举)以及各大公司的员工(比如百度、新浪、金山、乐逗游戏等等),还有猎头偶......期待您的加入,让我们一起从优秀走向卓越......\
群号:163354117,左侧可以直接少苗二维码加群。