700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > hadoop搭建与eclipse开发环境设置

hadoop搭建与eclipse开发环境设置

时间:2022-03-24 08:51:39

相关推荐

hadoop搭建与eclipse开发环境设置

hadoop搭建与eclipse开发环境设置(转)

1. Windows下eclipse开发环境配置

1.1 安装开发hadoop插件

将hadoop安装包hadoop\contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar拷贝到eclipse的插件目录plugins下。

需要注意的是插件版本(及后面开发导入的所有jar包)与运行的hadoop一致,否则可能会出现EOFException异常。

重启eclipse,打开windows->open perspective->other->map/reduce 可以看到map/reduce开发视图。

1.2 设置连接参数

打开windows->show view->other-> map/reduce Locations视图,在点击大象后弹出的对话框(General tab)进行参数的添加:

参数说明如下:

Location name:任意

map/reduce master:与mapred-site.xml里面mapred.job.tracker设置一致。

DFS master:与core-site.xml里fs.default.name设置一致。

User name: 服务器上运行hadoop服务的用户名。

然后是打开“Advanced parameters”设置面板,修改相应参数。上面的参数填写以后,也会反映到这里相应的参数:

主要关注下面几个参数:

fs.defualt.name:与core-site.xml里fs.default.name设置一致。

mapred.job.tracker:与mapred-site.xml里面mapred.job.tracker设置一致。

dfs.replication:与hdfs-site.xml里面的dfs.replication一致。

hadoop.tmp.dir:与core-site.xml里hadoop.tmp.dir设置一致。

hadoop.job.ugi:并不是设置用户名与密码。是用户与组名,所以这里填写hadoop,hadoop。

说明:第一次设置的时候可能是没有hadoop.job.ugi和dfs.replication参数的,不要紧,确认保存。打开Project Explorer中DFSLocations目录,应该可以年看到文件系统中的结构了。但是在/hadoop/mapred/system下却没有查看权限,如下图:

而且删除文件的时候也会报错:

这个原因是我使用地本用户Administrator(我是用管理员用户登陆来地windows系统的)进行远程hadoop系统操作,没有权限。

此时再打开“Advanced parameters”设置面板,应该可以看到hadoop.job.ugi了,这个参数默认是本地操作系统的用户名,如果不幸与远程hadoop用户不一致,那就要改过来了,将hadoop加在第一个,并用逗号分隔。如:

保存配置后,重新启动eclipse。/hadoop/mapred/system下就一目了然了,删除文件也OK。

1.3 运行hadoop程序

首先将hadoop安装包下面的所有jar包都导到eclipse工程里。

然后建立一个类:DFSOperator.java,该类写了四个基本方法:创建文件,删除文件,把文件内容读为字符串,将字符串写入文件。同时有个main函数,可以修改测试:

然后Run AsàRun on HadoopàChoose an exitsing server from the list belowàfinish.

结果很简单(那个警告不管):

也可以运行hadoop自带的WorkCount程序,找到其源代码导进来,然后设置输入输出参数,然后同样“Run on hadoop”。具体步骤不再示范。

每“Run on hadoop”都会在workspace\.metadata\.plugins\org.apache.hadoop.eclipse下生成临时jar包。不过第一次需要Run on hadoop,以后只需要点击那运行的绿色按钮了。

2. 错误及处理

2.1 安全模式问题

我在eclipse上删除DFS上的文件夹时,出现下面错误:

错误提示说得也比较明示,是NameNode在安全模式中,其解决方案也一并给出。

类似的运行hadoop程序时,有时候会报以下错误:

org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode

解除安全模式:

bin/hadoop dfsadmin -safemode leave

用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:

enter - 进入安全模式

leave - 强制NameNode离开安全模式

get - 返回安全模式是否开启的信息

wait - 等待,一直到安全模式结束。

2.2 开发时报错Permission denied

解决方法是,在“Advanced parameters”设置面板,设置hadoop.job.ugi参数,将hadoop用户加上去。

变为:

然后重新在运行中”Run on hadoop”。

另一方法是改变要操作的文件的权限。

上面的意思是:test1.txt文件的访问权限是rw-r--r--,归属组是supergroup,归属用户是hadoop,现在使用Administrator用户对test1.txt文件进行WRITE方式访问,被拒绝了。

所以可以改变下test1.txt文件的访问权限:

当然使用-chown命令也可以。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。