您的位置:首页 > 大数据

大数据学习笔记(六)-Spark环境配置

2017-11-27 17:28 501 查看
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


slaves配置:

hadoop000


启动后,使用web UI访问Spark、

http://192.168.85.128:8080/

调整Spark-shell的日志输出级别:

conf/log4j.properties:

log4j.rootCategory=ERROR, consol


使用命令行提交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


spark-submit --class "www.bdqn.cn.WordCount" --master spark://hadoop000:7077 ~/lib/SparkTechCount-1.0.jar


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


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;


产生这个问题的原因是编译时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管理界面了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spark 大数据