您的足迹:首页 > SparkSQL >华为开源Astro(SparkSQL On HBase)试用

华为开源Astro(SparkSQL On HBase)试用

华为最近开源的SparkSQL On HBase,又名Astro,
整合了Spark、SparkSQL、HBase,是继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的环境变量:

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

重启HBase集群。

Spark相关配置

每台Spark节点上配置,包括客户端:

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}

拷贝hbase-site.xml到$SPARK_HOME/conf目录

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中建表:

  1. create 'lxw1234',{NAME => 'f1',VERSIONS => 1},{NAME => 'f2',VERSIONS => 1}
  2. put 'lxw1234',"row1","f1:c1","v11"
  3. put 'lxw1234',"row1","f1:c2","v12"
  4. put 'lxw1234',"row1","f1:c3","v13"
  5. put 'lxw1234',"row1","f2:c1","v21"
  6. put 'lxw1234',"row1","f2:c2","v22"
  7. put 'lxw1234',"row1","f2:c3","v23"

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

  1. CREATE TABLE hbasesql_lxw1234 (
  2. k STRING,
  3. c1 STRING,
  4. c2 STRING,
  5. PRIMARY KEY (k))
  6. MAPPED BY (lxw1234,COLS=[c1=f1.c1, c2=f1.c2]);

PRIMARY KEY指定HBase RowKey对应哪个字段;

MAPPED BY指定HBase表名,以及其他字段和HBase列的对应;

在hbase-sql中可以使用show tables;命令查看有哪些表:

  1. spark-hbaseql> show tables;
  2. OK
  3. +----------------+-----------+
  4. | tableName|isTemporary|
  5. +----------------+-----------+
  6. |hbasesql_lxw1234| false|
  7. | lxw1234_hbase| false|
  8. +----------------+-----------+
  9.  
  10. Time taken: 3.112 seconds

hbase-sql会在HBase中创建一张元数据表,名为”metadata”,记录了在hbase-sql中创建的表及其元数据。

在hbase-sql中使用SQL查询HBase中的表:

  1. spark-hbaseql> select * from hbasesql_lxw1234;
  2. OK
  3. +----+---+---+
  4. | k| c1| c2|
  5. +----+---+---+
  6. |row1|v11|v12|
  7. +----+---+---+
  8.  
  9. Time taken: 3.178 seconds
  10. spark-hbaseql> select * from hbasesql_lxw1234 where k = 'row1';
  11. OK
  12. +----+---+---+
  13. | k| c1| c2|
  14. +----+---+---+
  15. |row1|v11|v12|
  16. +----+---+---+
  17.  
  18. Time taken: 0.785 seconds

另外还支持删除表,INSERT数据,表关联等SQL操作,具体可参考官方文档。


本博客所有文章如无特别注明均为原创。作者:数据为王复制或转载请以超链接形式注明转自 数据为王
原文地址《华为开源Astro(SparkSQL On HBase)试用

相关推荐


  • blogger

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)