欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zeppelin的求学之路(2)——配置Spark解释器,job提交到yarn

程序员文章站 2024-03-18 09:07:46
...

1: Spark解释器:

Zeppelin  的日常使用中,使用最频繁的或者说目前最重要的解释器非Spark了,下面就说一下Spark解释器的配置。

Zeppelin的求学之路(2)——配置Spark解释器,job提交到yarn

Apache Spark是一种快速和通用的集群计算系统。它提供Java,Scala,Python和R中的高级API,以及支持一般执行图的优化引擎。Zeppelin支持Apache Spark,Spark解释器组由5个解释器组成。上图表格便是五个解释器的简单描述了。

(1)%spark:注意%spark在初始化时和spark-shell一样,已经在内部创建了SparkContex对象sc了,在使用的时候不必重新创建!

(2) %spark.pyspark 和%spark.r看名字就可以知道,主要是为了支持python和R语言。

(3)%spark.sql:在我们用到spark的sql的时候要用到这个解释器,添加使用是会自动创建sqlcontext对象

(4:%spark .dep :可以动态的添加下载依赖。使用必须在其他解释器之前使用;z是zeppelin初始化时内部创建的ZeppelinContext对象,用来调用zeppelin内部自己的函数和一些工具类,它可以联系scala和python两种环境,如果中间需要两个环境的

对象,可以通过ZeppelinContext进行转换等功能

下面是官网上几个dep的列子,可以了解一下。

%spark.dep
z.reset() // 清除以前添加的 artifact 和 repository

// 添加 maven repository
z.addRepo("RepoName").url("RepoURL")

// 添加 maven snapshot repository
z.addRepo("RepoName").url("RepoURL").snapshot()

// 添加 private maven repository身份验证
z.addRepo("RepoName").url("RepoURL").username("username").password("password")

// 从文件系统中添加 artifact
z.load("/path/to.jar")

// 从maven repository添加没有依赖的artifact  
z.load("groupId:artifactId:version").excludeAll()

// add artifact recursively
z.load("groupId:artifactId:version")

// add artifact recursively except comma separated GroupID:ArtifactId list
z.load("groupId:artifactId:version").exclude("groupId:artifactId,groupId:artifactId, ...")

// exclude with pattern
z.load("groupId:artifactId:version").exclude(*)
z.load("groupId:artifactId:version").exclude("groupId:artifactId:*")
z.load("groupId:artifactId:version").exclude("groupId:*")

// local() skips adding artifact to spark clusters (skipping sc.addJar())
z.load("groupId:artifactId:version").local()

2: Spark 解释器的配置:

     在我们下载的spark目录下,有个conf目录主要是对zeppelin进行各种配置的,在启动一个zeppelin执行任务时,也是从这个目录下读取其配置属性。下面我们主要说一下spark的配置属性,在 你的zeppelin目录下的conf/下,你首先需要将zeppelin-env.sh.template  这个示例文件cp成zeppelin-env.sh正式文件,然后在这里面进行我们随心所欲的修改配置参数,包括spark的属性也都可以在这里面进行配置。下面是spark的一些常用属性

Property Default Description
args   Spark commandline args
master local[*] Spark master uri.
例如:spark://masterhost:7077
spark.app.name Zeppelin Spark应用的名称。
spark.cores.max   要使用的核心总数。
空值时使用所有可用的核心
spark.executor.memory 1g 每个worker实例的执行程序内存。
ex)512m,32g
zeppelin.dep.additionalRemoteRepository spark-packages, 
http://dl.bintray.com/spark-packages/maven, 
false;
A list of id,remote-repository-URL,is-snapshot;

for each remote repository.

每个远程库的list表

zeppelin.dep.localrepo local-repo 依赖加载器的本地存储库
zeppelin.pyspark.python python Python命令来运行pyspark
zeppelin.spark.concurrentSQL false

Execute multiple SQL concurrently if set true

如果设置为true,则同时执行多个SQL。.

zeppelin.spark.maxResult 1000

Max number of Spark SQL result to display

要显示的Spark SQL结果的最大数量。.

zeppelin.spark.printREPLOutput true Print REPL output
zeppelin.spark.useHiveContext true

Use HiveContext instead of SQLContext if it is true

如果设置为true,使用HiveContext而不是SQLContext。.

zeppelin.spark.importImplicit true

Import implicits, UDF collection, and sql if set true

下面就是正经的用到spark解释器的关键设置项了。


    Step1: 设置SPARK_HOME(必设)

   

 export SPARK_HOME=/usr/lib/spark

   

  

    Step2:有选择的设置,但是推荐还是都设置吧

# set hadoop conf dir
export HADOOP_CONF_DIR=/usr/lib/hadoop


# set options to pass spark-submit command

export SPARK_SUBMIT_OPTIONS="
--packages com.databricks:spark-csv_2.10:1.2.0 --jars /path/mylib1.jar,/path/mylib2.jar --files /path/mylib1.py,/path/mylib2.zip,/path/mylib3.egg
"
//你可可以在里面设置你spark submit启动时的参数,比如“--master yarn-client --num executors 10”

# extra classpath. e.g. set classpath for hive-site.xml
export ZEPPELIN_INTP_CLASSPATH_OVERRIDES=/etc/hive/conf

 

     Step3:  设置master,这个决定你的任务是提交到哪里去具体执行,和spark submit --master local【4】 一个道理         

export MASTER=yarn-client    //将任务提交到yarn上
下面都是可选择的,设置具体根据你自己的需要和你集群实际情况选择
  • local[*]  //本地模式
  • spark://master:7077  //spark standalone模式
  • yarn-client  //yarn模式
  • mesos://host:5050  //mesos cluster模式

    

   

       Step4:   到zeppelin/bin目录下,启动我们的zeppelin吧!zeppelin-daemon.sh restart 


在zeppelin的web上也有关于Interpreter的设置,在使用的时候要留意,下一篇再讲。

下面附上我的配置截图,仅供参考!

Zeppelin的求学之路(2)——配置Spark解释器,job提交到yarn

Zeppelin的求学之路(2)——配置Spark解释器,job提交到yarn