Linux中的MyEclipse配置Hadoop

一.所需软件

  注意:安装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,左侧可以直接少苗二维码加群。

posted @ 2015-06-16 11:56  加拿大小哥哥  阅读(1323)  评论(0编辑  收藏  举报