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

本文介绍了Apache Zeppelin中Spark解释器的配置方法及其在不同编程语言中的使用方式,包括如何配置Spark属性以适应不同的计算需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1: Spark解释器:

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


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的一些常用属性

PropertyDefaultDescription
args Spark commandline args
masterlocal[*]Spark master uri.
例如:spark://masterhost:7077
spark.app.nameZeppelinSpark应用的名称。
spark.cores.max 要使用的核心总数。
空值时使用所有可用的核心
spark.executor.memory1g每个worker实例的执行程序内存。
ex)512m,32g
zeppelin.dep.additionalRemoteRepositoryspark-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.localrepolocal-repo依赖加载器的本地存储库
zeppelin.pyspark.pythonpythonPython命令来运行pyspark
zeppelin.spark.concurrentSQLfalse

Execute multiple SQL concurrently if set true

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

zeppelin.spark.maxResult1000

Max number of Spark SQL result to display

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

zeppelin.spark.printREPLOutputtruePrint REPL output
zeppelin.spark.useHiveContexttrue

Use HiveContext instead of SQLContext if it is true

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

zeppelin.spark.importImplicittrue

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的设置,在使用的时候要留意,下一篇再讲。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值