怎样在Windows中使用Intellij idea搭建远程Hadoop开发环境

最后再总结一下:
本机访问hadoop环境:
1.需要在本机下载hadoop,不需要修改配置安装,但需要设置下hadoop_home,java_home等;
2.(windows下)下载hadoop在win下的执行文件放到bin目录(可以去github上搜winutils)
3.拷贝集群配置文件到resources下面
4.如果集群设置了hdfs访问权限限制,比如开启了指定用户xxx才能访问那么可以在程序里设置System.setProperty("HADOOP_USER_NAME", "xxx")
5.如果集群配置中都是指定的主机名,那么需要在你本机hosts中加上集群主机解析
那么这样应该就可以访问hdfs,hbase等等。应该可以应对大部分的调试,如果有些还是不方便的话可以考虑java远程调试
另外我本身主要做spark开发,对于spark开发调试:
1.spark远程调试,ide的配置网上一大堆就不说了,在远程服务器的spark脚本中可以这样设置:--driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9527"后面是端口,和你的ide保持一致。
2.spark local调试,spark的local模式调试很方便,也很方便看日志输出,配置好前面说的本机访问Hadoop 环境就可以,然后需要在你的spark master中指定local
3.spark on yarn调试,在做到前面的本机访问Hadoop 环境后,要能在你的ide里面直接run就提交到集群yarn上面还需要做些改变:
a:在自己的工程中新建org.apache.spark.deploy包,在spark源码中拷贝SparkSubmit到该包下(可以改下类名),新建一个提交类将spark脚本参数封装在一个数组中,比如Array("--name","SparkTest","--class","xxx.xxx.xxx.test")等等完全类似脚本提交的参数,只是需要注意的是应用程序jar可以指定在target下,这样不用经常改,然后将该参数数组传入sparksubmit.main()。
b:拷贝集群配置文件到一个目录,环境变量中设置HADOOP_CONF_DIR指向该目录(我小小修改了下sparksubmit可以不用在环境变量中指定)。本机下载spark,配置sparkhome,可以参考网上的spark on win教程
c:工程中引入spark-yarn包
d:这样就可以run你的应用提交了,看看是不是提交到yarn上面了,这个方法我在mac上试过没问题,在windows下做好前面的也应该是没问题的。
【怎样在Windows中使用Intellij idea搭建远程Hadoop开发环境】 f:最后再提个小技巧,为了避免每次spark上传很大的依赖包,可以把大部分依赖放到hdfs上,然后在spark_default中指明spark.yarn.jars到hdfs目录
欢迎讨论交流。

-----------------------------------------------------------------------------------------------------
如果工作环境和集群服务器能网络互通其实有更加方便的调试方式
可以在本地下载hadoop,不需要修改配置安装(只是以客户端方式提交,最终在服务器上执行),只需设置下hadoop_home,另外需要注意的是需要下几个hadoop在win下的执行文件放到bin目录(下载方式:推荐去github上搜winutils,只需要bin下面的几个执行文件包括winutils.pdb winutils.exe libwinutils.lib Hadoop.pdb hadoop.lib hadoop.exp hadoop.dll ,版本一致的话直接把他的bin目录拷下来覆盖你的bin),其余配置文件不用修改,
然后工程里面需要把服务器的集群配置文件拷到resource下面,就是几个site.xml,然后就可以直接run你的应用,spark的话只是测试的话建议local比较方便,计算任务比较重可以考虑on yarn ,这种直接run比远程调试会方便很多的
-------------------原答案--------------------我现在是在win上用idea开发,调试时直接打好jar提交到服务器上执行,调试则可以用java远程调试,idea里面就能看到调试信息。

■网友
Tools -\u0026gt; Deployment -\u0026gt; Configuration点击左上角 + ,Type选择SFTP,然后配置服务器ip和部署路径,用户名密码等选项之后选择自动部署,这样每次修改都会自动部署到服务器,也可以右键,选择Deployment,upload to ...


推荐阅读