由于工作需要,现在需要使用Cloudera Manager的Impala实现大批量数据的查询统计功能。
于是,在前面使用Hbase和solr搭建的平台完成最高院的全文检索平台,继续在clouderaManager原有的hadoop平台基础上继续进行更深层次的研究和应用。
基于某些地方法院对于数据的要求不一致,有的客户针对于法律文书的全文检索,有的客户针对于当前某种类型案件的统计,
因此原有的Hbase+HDFS+Solr+zookeeper的全文检索平台,对于统计查询遇到相应的瓶颈,统计不准确,客户无法得到准确的统计数据。
在这个需求的基础上,利用ClouderaManager平台的Impala服务组件,完成对与大批量数据的实时查询功能。
1、对于原有的数据结构进行拆分,拆分成为关系型数据表。
开始使用sqoop将sqlserver数据导入到hbase,但是遇到问题,由于SQLServer中的关系型数据表都是中文名称和中文字段,在使用脚本语言导入的时候遇到问题。
因此编程将SQLServer数据导入Hbase。
搭建的平台为C#实现应用端的开发,能够直观的操作,访问SQLServer数据库,底层使用java开发访问hbase,使用restful协议,利用servlet的访问传递参数,将数据存储到hbase。
2、将hbase数据表映射到hive中,在hive中需要创建外表,并且对于hbase中的行健也需要映射到hive中。
cloudera官方创建映射的实例:
CREATE EXTERNAL TABLE hbasestringids ( id string, bool_col boolean, tinyint_col tinyint, smallint_col smallint, int_col int, bigint_col bigint, float_col float, double_col double, date_string_col string, string_col string, timestamp_col timestamp) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( "hbase.columns.mapping" = ":key,bools:bool_col,ints:tinyint_col,ints:smallint_col,ints:int_col,ints:\ bigint_col,floats:float_col,floats:double_col,strings:date_string_col,\ strings:string_col,strings:timestamp_col" ) TBLPROPERTIES("hbase.table.name" = "hbasealltypes