大数据

来源:互联网 发布:单机成本核算软件 编辑:程序博客网 时间:2024/05/01 05:55

Spark版本:1.6.3 for hadoop2.6 
下载地址:https://spark.apache.org/downloads.html

Scala版本:2.11.8 
下载地址:http://www.scala-lang.org/download/2.11.8.html

Spark配置: 
spark-env配置:

export SPARK_MASTER_IP=hadoop000
  • 1

slaves配置:

hadoop000
  • 1

启动后,使用web UI访问Spark、 
http://192.168.85.128:8080/

调整Spark-shell的日志输出级别: 
conf/log4j.properties:

log4j.rootCategory=ERROR, consol
  • 1

使用命令行提交Example里的实例程序到Spark当中去运行

app/spark-1.6.3-bin-hadoop2.6/bin/spark-submit  --class "org.apache.spark.examples.SparkPi" --master local[*] app/spark-1.6.3-bin-hadoop2.6/lib/spark-examples-1.6.3-hadoop2.6.0.jar
  • 1

Java语言编写的示例工程代码:https://github.com/langyw98/SparkExampleWordCountProject

Scala开发Spark程序,使用Idea写代码,使用sbt打包 
Windows上装好Scala的,设置SCALA_HOME到环境变量中,Idea安装Scala插件。 
导包会自动由sbt完成。 
但是打包成Jar的时候,不使用Idea,而是另下载独立的sbt(我没找到怎么使用Idea的sbt进行命令行打包的方法),为了避免重新下载依赖的jar包,修改sbt中的conf文件夹下的sbtconfig.txt文件,使其依赖指向Idea已经下载好的文件位置

-Dsbt.boot.directory=C:\Users\kgc\.sbt-Dsbt.ivy.home=C:\Users\kgc\.ivy2
  • 1
  • 2

Intelij Idea的sbt插件的boot.directory和ivy.home也是可以修改的,修改的方法是找到studio的sbt_launcher.jar(我的文件位置是D:\Users\xxx.IntelliJIdea2016.3\config\plugins\Scala\launcher),使用winrar打开jar,直接修改其中的sbt\sbt.boot.properties中的文件路径即可。

配置sbt环境变量,然后运行sbt package就可以打包生成Jar了 
生成的Jar运行和Maven生成的Jar运行方法是一样的。 
Scala语言编写的示例工程代码:https://github.com/langyw98/SparkExampleWordCountProject-Scala

在Spark上提交作业的命令: 
spark-submit –class 类名 –master local[*] jar包 
用sbt生成Jar包提交到Spark上有可能会出现这样的错误信息

java.lang.NoSuchMethodError: scala.runtime.ObjectRef.create(Ljava/lang/Object;)Lscala/runtime/ObjectRef;
  • 1

产生这个问题的原因是编译时scala的版本和spark支持的scala版本不一致 
我的环境spark是1.6.3的,支持的scala版本是2.10.5 
当sbt中scalaVersion := “2.11.8”时就会出现上面的错误,但是将scalaVersion := “2.10.5”,编译出的jar包是可以正常使用的。

网上说编译时加入-Dscala-2.11可以使2.11编译的jar包运行在2.10上,但是我实验不成功,暂时没有找到好的解决方案。

Spark启动是有内存要求的,我在阿里云上做实验,基础配置1CPU,1G内存,Spark-shell启动失败,然后升级配置为2核8G,Spark-shell就启动成功了。当然多花了1300多块钱。。。。

还有就是无论是Hadoop还是Spark安装在阿里云上我都没有找到使用WebUI监控的方法,用公网ip访问Web界面一律失败。。。

后记:这个原因找到了,阿里云的默认安全策略是没有开放50070端口的,在控制台配置打开此端口就能够用公网IP访问WebUI管理界面了。这里写图片描述

原创粉丝点击