3 分钟快速体验 Apache Spark SQL,apachespark


“War of the Hadoop SQL engines. And the winner is …?” 这是个很好的问题。不过,无论答案如何,我们都值得花一点时间了解一下 Spark SQL 这个 Spark 家族里面的成员。 本来Apache Spark SQL 官网上的代码片断(Spark官网上的例子有个通病:不提供完整代码)已经写得算比较清楚,但如果用户完全把它的代码拷贝下来,可能会碰到编译不通过的问题。另外,Spark官网上的例子还有另外一个通病:不提供test data。因此,为了大家能不走弯路、快速体验Spark SQL API,本文将展示一个改写自官网例子的小程序,以及运行结果。


[A 程序]



[B 测试数据]

product.data:


[C 执行]

用 spark-submit 将程序提交到Yarn上执行。

[D 执行结果]

- Console:


- Yarn Web Console:


- Yarn App Log:



[E 小结]

- 注意需要把内部类 Product 定义在main方法外面,否则会引起编译错误

- 直接利用Spark SQL API定义一个“表对象”(SchemaRDD)还是比较简单的

- 下一步可以试一试和 HiveQL的集成


apache spark是什

Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,非常短小精悍。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
Spark 集群计算架构
虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟。
Spark 还引进了名为弹性分布式数据集(RDD) 的抽象。RDD 是分布在一组节点中的只读对象集合。这些集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护 "血统"(即允许基于数据衍生过程重建部分数据集的信息)。RDD 被表示为一个 Scala 对象,并且可以从文件中创建它;一个并行化的切片(遍布于节点之间);另一个 RDD 的转换形式;并且最终会彻底改变现有 RDD 的持久性,比如请求缓存在内存中。
Spark 中的应用程序称为驱动程序,这些驱动程序可实现在单一节点上执行的操作或在一组节点上并行执行的操作。与 Hadoop 类似,Spark 支持单节点集群或多节点集群。对于多节点操作,Spark 依赖于 Mesos 集群管理器。Mesos 为分布式应用程序的资源共享和隔离提供了一个有效平台。该设置充许 Spark 与 Hadoop 共存于节点的一个共享池中。
 

怎配置apache连接sqlserver

Call to undefined function mssql_connect() :这是因为没有开启mssql模块。
1、在php.ini中找到:
extension=php_mssql.dll,和extension=php_pdo_mssql.dll,确定他们的前面没有“;”。
2、在php.ini中找到:
extension_dir = "C:\php\ext\"。这里是extension目录,确认这个目录下有php_mssql.dll、php_pdo_mssql.dll。(php.ini的位置,extension_dir的位置可以使用phpinfo()查看。)
4、检查你的Mssql服务器有没有开起来。呵呵一般这个可能性不大。
 

相关内容