Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 Cloudera Labs的新成员Livy,为web/mobile应用简化了Spark架构。
Hadoop生态圈的Spark(https://www.cloudera.com/products/open-source/apache-hadoop/apache-spark.html),一夜之间成为默认的数据处理引擎,并被作为高级分析的标准。但是它依旧有许多东西需要完善,特别是在大规模/多租户,开发与投产,以及可扩展性方面。
比如,基于Spark的应用程序一直有以下限制:如果不做复杂的客户端配置,远程的应用程序无法直接访问Spark资源,这对于开发人员的体验相当差,而且也拉长了投产的过程。这个限制也使得Spark与其他系统集成变得很麻烦。
因为这些原因,所以我们把Livy项目加入到了Cloudera Labs中,跟其他的实验室项目一样,Livy只能用于开发和测试目的,而不建议用于生产环境,目前Cloudera也不会提供支持。Cloudera Labs中的项目玩法,你还可以参考Fayson之前翻译的Phoenix文章《Cloudera Labs中的Phoenix》
Livy是基于Apache许可的一个服务,它可以让远程应用通过REST API比较方便的与Spark集群交互。通过简单的REST接口或RPC客户端库,它可以让你轻松的提交Spark作业或者Spark代码片段,同步或者异步的结果检索,以及SparkContext管理。Livy还简化了Spark和应用程序服务器之间的交互,从而为web/mobile应用简化Spark架构。
通过Livy,你可以:
1.由多个客户端为多个Spark作业使用长时间运行的SparkContexts。
2.同时管理多个SparkContexts,让它们在集群中(YARN/Mesos)运行,从而实现很好的容错和并发,而不是在Livy服务上运行。
3.预编译的jars,代码片段或者Java/Scala客户端API都可以用来提交作业。
4.安全认证的通信。
要使用Livy,集群中必须安装Spark 1.4或以上版本,Scala2.10。你可以通过以下链接下载并开始:
http://archive.cloudera.com/beta/livy/livy-server-0.3.0.zip
1.导入以下环境变量
export SPARK_HOME=/usr/lib/spark
export HADOOP_CONF_DIR=/etc/hadoop/conf
2.启动服务
./bin/livy-server
通过上面的配置你可以看到,Livy在默认情况下使用了SPARK_HOME下的Spark配置。强烈建议配置Spark on YARN,以确保用户会话可以连接到YARN集群中,并使用YARN分配的资源,也可以保证当有多个会话连接时,运行Livy服务的节点不会负载太高。Livy在自己的conf目录下还有一些自己的配置文件。可以参考:
https://github.com/cloudera/livy/blob/master/README.rst
到目前为止,Livy主要由Cloduera,Microsoft和Intel的员工一起来开发维护,但Livy社区欢迎更多的贡献者,如下:
https://github.com/cloudera/livy/wiki/Contributing-to-Livy
我们鼓励你尝试一下,并欢迎将任何反馈提交到Cloudera Labs社区:
http://community.cloudera.com/t5/Cloudera-Labs/bd-p/ClouderaLabs
参考:
Livy更多文章你还可以参考:
https://zh.hortonworks.com/blog/livy-a-rest-interface-for-apache-spark/
https://mp.weixin.qq.com/s/SMfB-3wQBSqK7Nhv2KooWA
Fayson在接下来会对Livy的安装使用进行实操,欢迎持续关注:
Livy编译,包括与CDH的集成
Livy在非Kerberos的CDH集群下的使用
Livy在Kerberos的CDH集群下的使用
附带一个PPT,Azure广告略过,主要参考Livy架构
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 10大HBase常见运维工具整理小结
- Android实现扫一扫识别数字功能
- 通过SSH连接本地linux虚拟机的过程记录
- 实现Android 获取cache缓存的目录路径的方法
- Android 消息分发使用EventBus的实例详解
- 详解Android实现定时器的几种方法
- Android 实现带进度条的WebView的实例
- Android单元测试之对Activity的测试示例
- Android开发之手势检测及通过手势实现翻页功能的方法
- Android开发之CheckBox的简单使用与监听功能示例
- Android将图片上传到php服务器的实例代码
- Android图片识别应用详解
- Android 列表形式的切换的示例代码
- Android 拍照并对照片进行裁剪和压缩实例详解
- Android 多线程实现重复启动与停止的服务