Shark vs Hive Benchmark Test

| Comments

为了测试Shark和Hive的执行效率,今天做了下Benchmark的测试对比,测试性能非常满意,虽然没有达到官方宣称的100倍,但至少10倍的性能提升。

Shark安装部署与应用

| Comments

在搭建部署Spark之后,我们又引入了Shark,一个基于Spark的SQL引擎来替换Hive作为adhoc query engine。我的这篇博客对Shark有简单的介绍。 我们引入Shark是希望利用Spark的性能,提高Hive的执行效率,提供adhoc的interactive的快速查询,并与Spark集成访问Shark的表数据做一些interative算法比如Machine Learning。这样我们的在Hadoop上的任务可以分为以下几类:

  1. Batch Job:如ETL,全量历史记录数据处理与统计等等,采用MapReduce Job或者Hive Job。
  2. Adhoc Query:如ba的报表统计,销售人员的临时查询等等,采用Shark Job。
  3. Interative Job:如算法组的个性化推荐,采用Shark或者Spark Job。
  4. Streaming Job:如实时推荐,采用Storm或者Spark-Streaming。

本篇首先介绍Shark的安装部署配置,然后介绍我们在将Shark集成到我们的Hadoop集群中遇到的一些坑和我们的解决方案。

Spark Programming User Guide Basic

| Comments

开发环境搭建

开发Spark最便捷的方式就是利用spark-shell,交互式编程。参考安装部署篇本地模式,在本地部署好Spark,打开spark-shell即可。

另一种方式是在自己的project中引用spark的包,开发standalone的Spark Job。用户可以选择自己喜欢的构建工具(sbt/maven etc),构建一个Scala Project,只需要引入spark的包即可。推荐采用sbt构建项目,用eclipse的scala-ide进行开发。下节简单介绍一个简单的SparkHelloWorld项目的构建和开发步骤。

Spark安装部署篇

| Comments

Spark有以下四种运行模式:

  • local: 本地单进程模式,用于本地开发测试Spark代码
  • standalone:分布式集群模式,Master-Worker架构,Master负责调度,Worker负责具体Task的执行
  • on yarn/mesos: ‌运行在yarn/mesos等资源管理框架之上,yarn/mesos提供资源管理,spark提供计算调度,并可与其他计算框架(如MapReduce/MPI/Storm)共同运行在同一个集群之上
  • on cloud(EC2): 运行在AWS的EC2之上

本章主要介绍本地模式和standalone模式的安装部署配置。

Spark核心思想篇

| Comments

Spark的核心思想是RDD,以及对RDD的操作(transformation/action)。本篇简单介绍这些基本概念,以有利于理解Spark的原理。