关于这个spark的环境搭建了好久,踩了一堆坑,今天

环境: WIN7笔记本

    spark 集群(4个虚拟机搭建的)

    Intelij IDEA15

    scala-2.10.4

    java-1.7.0

版本问题:

个人选择的是hadoop2.6.0 spark1.5.0 scala2.10.4  jdk1.7.0

接下来就是用Intelij IDEA来远程连接spark集群,这样就可以方便的在本机上进行调试。

首先需要注意windows可以设置hosts,在 C:\Windows\System32\drivers\etc 有个hosts,把以下映射地址填进去, 这样能省去不少事

172.21.75.102   spark1

172.21.75.194   spark2

172.21.75.122   spark3

172.21.75.95   spark4

1)首先在个人WIN7本上搭好java,scala环境,并配置好环境变量,安装好Intelij IDEA,并安装好scala插件。

2)新建Scala项目,选择Scala:

win7下用Intelij IDEA 远程调试spark standalone 集群

3)分别引入 java 与 Scala SDK,并对项目命名,这里一会我们运行SparkPi的程序,名字可以随意

win7下用Intelij IDEA 远程调试spark standalone 集群

4)进入主界面,双击src,或者File->Project Structer,进入程序配置界面

win7下用Intelij IDEA 远程调试spark standalone 集群

5)点击library里“+”,点击java,添加spark-1.5.0-hadoop-2.6.0的jar包

win7下用Intelij IDEA 远程调试spark standalone 集群 

6)点击library里“+”,点击Scala SDK 添加Scala SDK

win7下用Intelij IDEA 远程调试spark standalone 集群

7)以上步骤点击OK退出,在src新建 SparkPi.scala 的scala object文件

win7下用Intelij IDEA 远程调试spark standalone 集群

8)写代码之前,先进行一个jar包设置

win7下用Intelij IDEA 远程调试spark standalone 集群

9) 这里的路径一定要设置好,为jar包的输出路径,一会要写到程序里,使得spark集群的查找

win7下用Intelij IDEA 远程调试spark standalone 集群

10)选中这里的Build on make,程序就会编译后自动打包

win7下用Intelij IDEA 远程调试spark standalone 集群

11)注意以上的路径,这个路径就是提交给spark的jar包

.setJars(List("F:\\jar_package\\job\\SparkPi.jar"))

12)复制如下代码到SparkPi.scala 

win7下用Intelij IDEA 远程调试spark standalone 集群 View Code

13)现在大功告成,设置Run 的Edit Configuration,点击+,Application,设置MainClass,点击OK!

win7下用Intelij IDEA 远程调试spark standalone 集群

14)点击Run即可运行程序了,程序会在刚才的路径生成对应的jar,然后会启动spark集群,去运行该jar文件,以下为执行结果:

win7下用Intelij IDEA 远程调试spark standalone 集群 View Code

win7下用Intelij IDEA 远程调试spark standalone 集群

看着真是有点小激动!

15)去172.21.75.102:8080查看运行的痕迹

win7下用Intelij IDEA 远程调试spark standalone 集群

16)搭建调试环境过程中的错误

  •   null\bin\winutils.exe,这个错误很简单,是因为本win7压根就没装hadoop系统,解决办法是从集群上复制一份过来,放到F盘,并且配置好环境变量
HADOOP_HOME=F:\hadoop-2.6.0

Path=%HADOOP_HOME%\bin

   接下来下载对应的版本的winutils放到 F:\hadoop-2.6.0\bin 文件夹下,应该就解决了

  •  SparkUncaughtExceptionHandler: Uncaught exception in thread Thread

这个错误好坑,查了好久的资料,才解决,原来是搭建集群时候spark-env.sh设置的问题

将SPARK_MASTER_IP=spark1改成

SPARK_MASTER_IP=172.21.75.102即可解决,改了之后再网页里也能查出来

win7下用Intelij IDEA 远程调试spark standalone 集群

  • Exception in thread "main" java.lang.IllegalArgumentException: java.net.UnknownHostException : spark1 

以上是当需要操作HDFS时候,写上HDFS地址 hdfs://spark1:9000,会出现,后来发现原来windows也可以设置hosts,在 C:\Windows\System32\drivers\etc 有个hosts,把需要映射的地址填进去即可

172.21.75.102   spark1

 

 

  • FAILED: RuntimeException org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=dbs, access=WRITE, inode="/opt/hadoop-1.0.1":hadoop:supergroup:drwxr-xr-x 

 

解决办法:

 

在 hdfs-site.xml 总添加参数:

 

 <property>
        <name>dfs.permissions</name>
        <value>false</value>
  </property>  
</configuration>

改完后记得重启HDFS

相关文章:

  • 2022-01-17
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2021-10-26
  • 2022-12-23
  • 2022-12-23
  • 2021-09-21
猜你喜欢
  • 2021-07-09
  • 2021-10-02
  • 2021-09-29
  • 2022-12-23
  • 2021-12-23
相关资源
相似解决方案