mirror of
https://github.com/apache/impala.git
synced 2026-01-07 09:02:19 -05:00
Remove all use of deprecated HBase APIs and bring everything up to 1.0. This work is done to enable use of the Google Cloud Bigtable HBase client, which does not support the deprecated APIs. However, nothing in this change depends on Cloud Bigtable, and should work fine for HBase 1.x and greater. This involves two major changes. 1) HBase is trying to move away from unmanaged connections. Thus, catalogd and the backend are updated to create a Connection object which is used to create the Table client objects. Since the Connection object owns a threadpool, there is no need to create a separate ExecutorService and pass it to the HTables on creation. 2) Instead of reading the size on disk of the different Region servers, we use a single call to the HBase master to get the ClusterStatus, which contains the storefile sizes for all the region servers the master knows about. This enables the HBase table implementation to work with Cloud Bigtable, which of course does not keep its data in HDFS. To use the Cloud Bigtable driver, simply update hbase-site.xml to set the "hbase.client.connection.impl" property to the appriopriate Cloud Bigtable client implementation class . Further details can be found here: https://cloud.google.com/bigtable/docs/connecting-hbase Tested by running: py.test tests/query_test/test_hbase_queries.py \ --exploration_strategy=exhaustive Change-Id: I6c758502126884670bb6dd3153aea5aa5b41aab6 Reviewed-on: http://gerrit.cloudera.org:8080/775 Readability: Alex Behm <alex.behm@cloudera.com> Reviewed-by: Alex Behm <alex.behm@cloudera.com> Tested-by: Internal Jenkins