spark livy
来源:互联网 发布:淘宝上的电子烟可靠吗 编辑:程序博客网 时间:2024/05/22 10:22
livy是cloudera开发的通过REST来连接。管理spark的解决方案,此文记录在使用livy中遇到的一些问题。
livy的安装
- livy安装不多赘述,可以从github上自己build,也可以直接从livy.io上直接下载tar包。
- 下载livy,解压后,在livy-env中添加
export SPARK_HOME=/home/cax/spark/spark-1.6.1-bin-hadoop2.6export HADOOP_CONF_DIR=/etc/hadoop/conf
- 在livy.conf中可以进行一些配置
//默认使用hiveContextlivy.repl.enableHiveContext = true//开启用户代理livy.impersonation.enabled = true//设置session空闲过期时间livy.server.session.timeout = 1hlivy.server.session.factory = yarn/local本地模式或者yarn模式
使用livy-session来执行spark-shell。
通过使用livy,可以通过rest来执行spark-shell。
- new session。
curl -X POST --data '{"kind": "scala","proxyUser": "caoaoxiang"}' -H "Content-Type: application/json" localhost:8998/sessions
- get session list
curl localhost:8998/sessions
- run code
curl localhost:8998/sessions/{{sessionId}}/statements -X POST -H 'Content-Type: application/json' -d '{"code":"var a = 1;var b=a+1"}'
- get result
curl localhost:8998/sessions/{{sessionId}}/statements/{{statId}}
- delete session
curl -X DELETE localhost:8998/sessions/{{sessionId}}
- 通过livy建立的session,每一个session会维护一个spark-context,这时侯,如果我们将这个spark-context对应的application kill掉,然后查看session的状态会发现,状态仍然是idle,这时候仍然可以执行scala的基本语法,但不再可以执行spark statement。
- 如果我们这时候,再去执行一个spark statement,会接受到报错
java.lang.IllegalStateException: RPC channel is closed
- 然后查看session的状态,结果是busy。也就是说statement并没有退出。
livy batch and spark-submit
- livy session处理交互式请求,livy batches处理非交互式请求,即,相当与spark-submit操作。
- new batches
curl -X POST -H "Content-Type: application/json" localhost:8998/batches --data '{ "conf": {"spark.master":"yarn-cluster"}, "file": "/user/hdfs/spark-examples-1.6.1-hadoop2.6.0.jar", "className": "org.apache.spark.examples.SparkPi", "name": "Scala Livy Pi Example", "executorCores":1, "executorMemory":"512m", "driverCores":1, "driverMemory":"512m", "queue":"default", "args":["100"]}'
batches的相关问题
- 注意这里的spark.master需要设置为yarn-cluster。不然,在运行jar时,会报错,
- hue上说,livy可以工作在local和yarn两种模式,当工作在local模式,jar的制定位置可以就是linux机器上的文件位置。当工作在yarn模式时,必须将jar上传到hdfs上,相应的,jar的file路径也是hdfs的路径。
- 在我们执行spark-submit时,如果在打jar包时指定了入口的class,在spark-submit时可以不用再指定,但使用batches时,必须要制定ClassName作为jar的入口,否则会报错:
Error: Cannot load main class from JAR hdfs://datanode32:8020/user/caoaoxiang/spark-examples-1.6.1-hadoop2.6.0.jar with URI hdfs. Please specify a class through --class.
- spark的yarn部署模式有spark-client和spark-cluster。这两种方式的主要区别就是driver的运行位置。spark-client的driver运行在宿主机上,spark-cluster的deriver运行在整个集群中,可以从集群中申请资源。
- 个人认为,batches的yarn工作模式必须是spark-cluster,可以使得宿主机的资源不会成为运行的瓶颈。
阅读全文
0 0
- Spark & Livy
- spark livy
- spark livy hue
- 利用 livy 远程提交 spark作业
- Livy:基于Apache Spark的REST服务
- Livy:基于Apache Spark的REST服务
- 利用 livy 远程提交 spark作业
- Livy:基于Apache Spark的REST服务
- Apach Zeppelin搭配Livy接入kafka使用spark streaming处理
- Spark2.0.1 on yarn with hue 集群安装部署(八)hue+livy+spark整合
- Livy 安装使用说明
- Livy原理详解
- 如何源码编译Livy
- Apach Zeppelin和Apach Livy搭配使用配置
- livy提交任务报错com.cloudera.livy.shaded.kryo.kryo.KryoException: Unable to find class: GATest.ConJob
- spark
- spark
- Spark
- 使用GET,POST请求获取结果
- appium工作原理
- easyui和zTree分别实现树型下拉框
- 操作符函数及重载(4)
- Eclipse的android工程修改目标设备
- spark livy
- Android侧滑菜单
- HTML 导入导出
- OpenCV学习之Hough变换检测直线
- spring 配置多数据源
- Python-起源
- margin值根据标签文本内容变化
- Android 自定义TextView实现文字渐变动画
- 反射——慕课网笔记