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

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>Zeppelin是一个开源的数据分析和可视化工具,可以连接多种数据源,包括Spark。要连接Spark,需要进行以下配置和使用步骤: 1. 在Zeppelin的主页上,点击“Create new note”创建一个新的笔记本。 2. 在笔记本中,点击“Interpreter binding”按钮,选择“spark”作为解释器。 3. 在“Interpreter setting”页面中,配置Spark的相关参数,包括Spark的主机名、端口号、应用名称等。 4. 点击“Save”保存配置,然后点击“Run”运行解释器。 5. 在笔记本中输入Spark的代码,例如: ``` val data = Seq(1, 2, 3, 4, 5) val rdd = sc.parallelize(data) rdd.collect() ``` 6. 点击“Run”运行代码,可以看到Spark的输出结果。 通过以上步骤,就可以在Zeppelin中连接和使用Spark了。需要注意的是,Zeppelin的版本和Spark的版本需要匹配,否则可能会出现兼容性问题。 <h3>回答2:</h3><br/>Zeppelin是一种使用方便的笔记本工具,它可以支持多语言,包括Scala、Python等,而且对于连接Spark来说非常友好。在ZeppelinSpark之间,有两个连接选项可以使用:使用本地模式连接或者使用远程模式连接。本地模式连接意味着ZeppelinSpark运行在同一台机器上,而远程模式连接意味着ZeppelinSpark运行在不同的机器上。 下面是使用Zeppelin连接Spark的步骤: 1. 首先,在Zeppelin中创建一个新的笔记本。 2. 接着,创建一个新的Spark interpreter。在Zeppelin首页的设置菜单中选择“Interpreter”,然后选择“Create”按钮。在弹出的界面中,填写相关信息(interpreter名称、Spark master URL等)后,选择“保存”按钮。 3. 启动interpreter。在Zeppelin中选择“Notebook”按钮,然后选择“Interpreters”按钮,接着在“Spark Interpreter”下面选择“start”按钮即可启动interpreter。 4. 配置Spark连接。如果使用本地模式连接,那么不需要其他操作。如果使用远程模式连接,需要在Zeppelin配置文件中添加Spark的master URL。在Zeppelin的安装目录下找到conf目录中的zeppelin-site.xml文件,接着在其中添加: <property> <name>spark.master</name> <value>spark://your-spark-master-url:7077</value> </property> 上面的your-spark-master-url应该替换为实际的Spark master URL。 5. 测试Spark连接。在Zeppelin的笔记本中输入Spark相关的代码,例如: val data = Array(1, 2, 3, 4, 5) val distData = sc.parallelize(data) distData.map(x => x * x).collect().foreach(println) 接着执行代码,如果能够得到正确的结果,那么就说明ZeppelinSpark已经连接成功了。 总之,ZeppelinSpark的连接非常简单,只需要按照上面的步骤进行配置即可。使用Zeppelin可以方便地进行Spark相关的编程任务,而且支持多种语言,非常实用。 <h3>回答3:</h3><br/>Zeppelin 是一个开源的数据分析和可视化工具,提供了丰富的组件。其中,连接 Spark 可以让用户更加方便地利用 Zeppelin 的交互式笔记本功能来进行 Spark 的数据分析和处理。 一、配置 1. 安装 Spark 首先需要安装 Spark 并设置好环境变量,确保命令行中可以调用 Spark 相关命令。同时,需要设置 Spark 依赖的 Hadoop 和 Hive 环境。 2. 配置 Zeppelin Interpreter 进入 Zeppelin 配置页面,点击 Interpreter 选项卡。找到 spark 相关的 Interpreter,设置为以下参数: - master:设置为本地或集群的 Spark 主节点 URL; - deploy.mode:设置为 client 或 cluster,表示在本地还是在集群环境中运行; - executor.memory:设置每个 executor 的内存大小; - Num executors:设置 executor 的数量。 保存设置,重新启动 Zeppelin。 二、使用 1. 创建 Notebook 在 Zeppelin 主界面中创建一个新的 Notebook,选择与 Spark 相关的 Interpreter。创建 Notebook 后,会自动在页面中显示 Spark 的版本和相关信息,说明连接 Spark 成功。 2. 编写代码 在 Notebook 中,可以使用 Scala、Python 或 SQL 等语言编写 Spark 相关代码。Zeppelin 会自动将代码解析并显示在界面中,供用户查看和交互。用户可以在代码中使用 Spark 相关的 API,完成数据分析和处理任务,并将结果显示在界面中进行可视化。 3. 运行代码和查看结果 用户可以使用 Shift+Enter 快捷键或点击运行按钮来运行代码。运行结束后,可以在页面下方查看代码执行的结果和输出。如果有可视化图表,会自动显示在页面中。用户还可以进行进一步的分析和操作,以及保存 Notebook 和结果。 总之,连接 Spark 可以让 Zeppelin 更加方便地进行数据分析和可视化。用户可以利用 Zeppelin 提供的丰富功能和灵活性,快速完成数据分析任务并生成可视化报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值