开源Astro(SparkSQL On HBase)

华为2015年7月20日在O'Reilly Open Source Convention (OSCON) 上宣布Spark SQL on HBase package正式开源。Spark SQL on HBase package 项目又名 Astro,端到端整合了 Spark,Spark SQL和HBase的能力,有助于推动帮助Spark进入NoSQL的广泛客户群,并提供强大的在线查询和分析以及在垂直企业大规模数据处理能力。 Astro的新特性使得数据修改,智能扫描系统具有强大的可操作性,类似于自定义过滤器和协处理器下推式,并让更多的传统RDBS能力可用,其查询优化算法适用于一般组织的数据集,并可以通过分布式SQL引擎进行查询。为了充分利用Spark最新的功能,包括Dataframe和外部数据源API ,华为全球团队一直持续更新项目代码并符合最新发布的Spark1.4版本。此项目吸引了众多社区贡献者参与到开发和验证中来。此外,华为团队还对Spark SQL,机器学习和Spark R贡献了很多新特性,丰富了Spark的标准库。

转载参考:http://lxw1234.com/archives/2015/07/430.htm 的文章,mark一下,下一步学习研究的参考。  Astro是继Phoenix后,SQL On HBase的又一利器。至于实际用起来怎么样,有待验证。

开源项目地址:https://github.com/Huawei-Spark/Spark-SQL-on-HBase

  • 下载源码,解压
  • cd Spark-SQL-on-HBase-master/
  • 使用命令 mvn -DskipTests clean install 编译
  • 运行需要Spark1.4.0和HBase0.98

HBase相关配置


  • 每台HBase节点上配置,包括客户端,编辑hbase-site.xml
    • <property>
      <name>hbase.coprocessor.user.region.classes</name>
      <value>org.apache.spark.sql.hbase.CheckDirEndPointImpl</value>
      </property>

  • 将spark-sql-on-hbase的jar包添加到hbase的环境变量重启HBase集群
    • cp spark-sql-on-hbase-1.0.0.jar $HBASE_HOME/lib
      vi hbase-env.sh
      export HBASE_CLASSPATH=$HBASE_HOME/lib/spark-sql-on-hbase-1.0.0.jar:$HBASE_CLASSPATH

Spark相关配置


  • 每台Spark节点上配置,包括客户端拷贝hbase-site.xml到$SPARK_HOME/conf目录
    • cp spark-sql-on-hbase-1.0.0.jar $SPARK_HOME/lib/
      vi spark-env.sh
      export SPARK_CLASSPATH=$SPARK_HOME/lib/spark-sql-on-hbase-1.0.0.jar:${SPARK_CLASSPATH}

  • spark-default中配置参数:
  1. spark.sql.hbase.scanner.fetchsize 5000   ##该参数用于设置hbase中扫描器缓存
  2. spark.master spark://nn.uniclick.cloud:7077
  3. spark.executor.memory 2g
  4. spark.executor.cores 8
  • 重启Spark集群

使用hbase-sql


  • 进入 Spark-SQL-on-HBase-master/bin/ 目录,运行 ./hbase-sql 进入hbase-sql命令行
  • hbase-sql默认读取 $SPARK_HOME/conf/spark-defaults.conf 中关于Spark的配置参数
  • 先在HBase中建表:
  • 开源Astro(SparkSQL On HBase)
  • 在hbase-sql中使用如下语句建表:
  • 开源Astro(SparkSQL On HBase)
  1. PRIMARY KEY指定HBase RowKey对应哪个字段
  2. MAPPED BY指定HBase表名,以及其他字段和HBase列的对应;
  3. 在hbase-sql中可以使用show tables;命令查看有哪些表
上一篇:AS错误:Manifest merger failed with multiple errors, see logs


下一篇:javascript 函数介绍