華為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中配置參數:
- spark.sql.hbase.scanner.fetchsize 5000 ##該參數用於設置hbase中掃描器緩存
- spark.master spark://nn.uniclick.cloud:7077
- spark.executor.memory 2g
- 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中建表:

- 在hbase-sql中使用如下語句建表:

- PRIMARY KEY指定HBase RowKey對應哪個字段
- MAPPED BY指定HBase表名,以及其他字段和HBase列的對應;
- 在hbase-sql中可以使用show tables;命令查看有哪些表

- hbase-sql會在HBase中創建一張元數據表,名為”metadata”,記錄了在hbase-sql中創建的表及其元數據。
- 在hbase-sql中使用SQL查詢HBase中的表:

- 其它SQL操作參見: https://github.com/Huawei-Spark/Spark-SQL-on-HBase/blob/master/doc/SparkSQLOnHBase_v2.2.docx
