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是一一致的
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43622131/article/details/106150165