Spark同时访问两个HBase样例程序开发思路
场景说明
spark支持同时访问两个集群中的HBase,前提是两个集群配置了互信。
数据规划
- 将cluster2集群的所有Zookeeper节点和HBase节点的IP和主机名配置到cluster1集群的客户端节点的“/etc/hosts”文件中。
- 分别将cluster1和cluster2集群Spark2x客户端conf下的hbase-site.xml文件放到“/opt/example/A”,“/opt/example/B”两个目录下。
- 用spark-submit提交命令:
运行样例程序前,需要在Spark客户端的“spark-defaults.conf”配置文件中将配置项“spark.yarn.security.credentials.hbase.enabled”设置为“true”(该参数值默认为“false”,改为“true”后对已有业务没有影响。如果要卸载HBase服务,卸载前请将此参数值改回“false”)。
spark-submit --master yarn --deploy-mode client --files /opt/example/B/hbase-site.xml --keytab /opt/FIclient/user.keytab --principal sparkuser --class com.huawei.spark.examples.SparkOnMultiHbase /opt/example/SparkOnMultiHbase-1.0.jar
开发思路
- 用户访问HBase时,需要使用对应集群的配置文件创建Configuration对象,用于创建Connection对象。
- 用对应的Connection对象操作HBase表,包括建表、插入数据、查看数据并进行打印。