
# 场景说明
#### 场景说明
假定HBase的table1表存储用户当天消费的金额信息，table2表存储用户历史消费的金额信息。
现table1表有记录key=1,cf:cid=100，表示用户1在当天消费金额为100元。
table2表有记录key=1,cf:cid=1000，表示用户1的历史消息记录金额为1000元。
基于某些业务要求，要求开发Spark应用程序实现如下功能：
根据用户名累计用户的历史消费金额，即用户总消费金额=100(用户当天的消费金额) + 1000(用户历史消费金额)。
上例所示，运行结果table2表用户key=1的总消费金额为cf:cid=1100元。
#### 数据规划
使用HBase shell工具，创建HBase table1和table2，并分别插入数据。
1. 通过HBase创建名为table1的表，命令如下。 
   create 'table1', 'cf'
   
   
2. 通过HBase插入数据，命令如下： 
   put 'table1', '1', 'cf:cid', '100'
   
   
3. 通过HBase创建名为table2的表，命令如下。 
   create 'table2', 'cf'
   
   
4. 通过HBase插入数据。 
   put 'table2', '1', 'cf:cid', '1000'
   ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
   如果开启了kerberos认证，需要将客户端的配置文件"spark-defaults.conf"和sparkJDBC服务端中的配置项spark.yarn.security.credentials.hbase.enabled置为true。
   
   
 
#### 开发思路
1. 查询table1表的数据。
2. 根据table1表数据的key值去table2表做查询。
3. 把前两步相应的数据记录做连接操作。
4. 把上一步骤的结果写到table2表。
 
