Hadoop在虚拟机Linux中安装以及使用应注意的问题

有好多人写过关于在虚拟机Linux下安装Hadoop的过程,但是自己在实际安装过程中发现仍然有许多他人未涉及但确实是需要注意的部分,从而保证能够运行,同时也是作为自己的一个小总结。

一、关于Linux系统的设置


1.设置静态IP(最好能够设置成静态吧,否则重启后可能会有影响)

(设置静态IP是想在具体配置的时候能够写成该IP,方便于远程,如果没远程的需要也就无所谓)

但是如果想配置完全分布式最好是能够写成静态IP

用过CentOs和Ubuntu两个版本的系统

然后具体的设置代码略有不同,具体的代码可以直接谷歌(百度)

2.关闭防火墙

如果是伪分布式或者单机版本应该是没有影响,但是如果是在做多台机器的连接,或者多台虚拟机的连接则可能造成namenode在过段时间后自行关闭。


二、在使用的过程中出现的问题


1)在不同的教程中,大家可能都看过在使用hadoop的命令时,有人写作:“hadoop fs”,有人写“hadoop dfs”

其实效果基本一样,只是自己在伪分布式2.4.0版本下用dfs时会有报warning

无意浏览网上给的解释是:fs是一个比较抽象的层面,在分布式环境中,fs就是dfs;但是在本地环境中,fs就是 local file system,这时dfs就不能用。


2)使用hadoop fs -ls 可以查询当前账户下的hdfs,但是有时候却会有"." no file or directory 的错误 

这是因为当前使用的账户不是hdfs 的账户

解决的方法是当然是将当前用户添加到hdfs的账户里,具体的代码为:hadoop fs -mkdir -p /user/[current login user]


3) 用eclipse开发hadoop程序

在伪分布式的情形下,Map/Reduce(V2) Master 和 DFS Master这两项的端口号都需要配置为core-site.xml中配置的端口号(默认的是9000)



三、windows远程Ubuntu下的Hadoop环境


1.将ubuntu的ip改成静态IP

然后将core-site.xml中配置的localhost写成该IP


2.在DFS Location连上后,对于DFS上的文件可能存在操作权限不够的问题:permission defined

解决办法据说有三种,但是只实验成功了前两种:

(1)(不推荐)如果只是测试环境,则可以取消hadoop hdfs的用户权限检查,打开hdfs-site.xml,在里面添加


(2)在window下调用hadoop环境是以DrWho身份访问hdfs,由于DrWho用户对hadoop目录并没有写入的权限,所以有异常的发生。

所以可以通过放开hadoop目录权限的方式解决, 具体的命令:hadoop fs -chmod 777 ×××(×××为具体的文件夹名)

(3)据说可以修改hadoop location参数,在eclipse的advanced parameter选项卡中,将hadoop.job.ugi项改为hadoop的用户名即可(一直没找到,不知道是不是v2版本的问题)


3.对Linux上hadoop有操作权限后,提交任务仍然有java.lang.NullPointerException的错误

此时需要将hadoop-common-2.2.0-bin-master.zip中的winutils.exe添加到winhadoop中的bin文件夹下,将hadoop.dll添加到c:/Windows/System32/bin,在环境变量中添加HADOOP_HOME

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值