windows通过eclipse远程提交代码到完全分布式hadoop集群
windows下安装hadoop环境
想要将Hadoop代码提交到linux集群上windows也需要配置Hadoop环境
这是我已经把坑都填好的hadoop包,直接解压就可用(bin目录下需要添加的工具我都添加好了,用就完事了)
链接:https://pan.baidu.com/s/1tZeQTQhTmqv9knzsGbCr2Q
提取码:a445
配置环境变量
先配置HADOOP_HOME
(目录就是我所给压缩包解压后的目录)
在path中添加%HADOOP_HOME%\bin
(将hadoop的bin目录添加到环境变量中)
然后hadoop就配置成功了,就是这么简单!
windows中通过eclipse连接linux上的Hadoop集群
参考(这个是我之前在linux上配置的教程,相信大家在windows上安装eclipse都没问题,可以只看安装Hadoop插件这部分)
只有一点不一样,在linux中是将插件拷贝到plugins目录下,在windows下是拷贝到dropins目录下,其余的配置都一样
https://blog.csdn.net/weixin_43622131/article/details/105797846
实现代码的自动提交(在集群的主节点上提交)
可以看我之前写的这篇博客:
https://blog.csdn.net/weixin_43622131/article/details/106134955
实现代码的自动提交(在Windows上提交)
相对于上一步的代码只做了一点点修改
在配置conf时加上这一行代码可以解决跨平台问题:
conf.set("mapreduce.app-submission.cross-platform","true");
除此之外还需要在Hadoop集群主节点上启动历史服务,不然会出报错
mr-jobhistory-daemon.sh start historyserver &
然后还需要在配置一下mapred-site,只需要配置windows项目中bin目录下的就可以,集群的不需要
加上这一段,IP要写上自己集群主节点的IP
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.75.128:10020</value>
</property>
如果不设置会出现下列错误
ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:10020
此时windows上的环境已经没问题了,但是此时运行还是会出现问题,还会出现Windows中的用户名Administrator在访问hdfs被拒绝的情况,这个时候我本来是想尝试改windows的管理员账户的用户名但是没什么好的办法,就直接在Hadoop集群的hdfs上新建了一个Administrator账户并将其添加到supergroup组中解决了问题。
下面是创建账户并添加到supergroup的过程
因为Administrator不符合规定所以需要加一个参数
adduser -force-badname Administrator
hdfs dfs -mkdir /user/Administrator
hdfs dfs -chown Administrator /user/Administrator
groupadd supergroup
usermod -a -G supergroup Administrator
然后再运行就成功了
可以看出这是在windows下的eclipse上运行的,并且提交到了我搭的完全分布式的Hadoop集群上
这是我所用的完全分布式集群,是ubuntu系统个,一个master节点,两个slave节点,可以看到master的IP和在windows中eclipse提交到的IP是一一致的