Hcatalog尽管作为一个子项目,却给整个Hadoop生态环境带来了一股清流,它让数据的访问不再杂乱无章,那么Hcatalog有什么样的作用呢?它是怎样统一定义数据的呢?
HCatalog是用来访问Metastore的Hive子项目,它的存在给了整个Hadoop生态环境一个统一的定义。
为什么这样说呢?在整个生态中,使用HDFS的项目是很多的,比如Hive、Pig、Spark,它们会去使用同样一个HDFS的数据。当它们访问数据的时候,Hive可能会将数据解析为整型,Pig解析成String类型,Spark解析成其它的类型,所以这个定义并没有统一起来。而Hcatalog就可以统一给一个定义,例如数据定义为整型,所有项目通过Hcatalog来访问数据,访问到的数据类型就都为整型。
Hcatalog可以通过命令行及RESTAPI来访问,允许你使用HiveQLDDL语法来定义表。从Hive、Impala、MapReduce、Pig和其他工具来访问表,包含在CDH4.2及之后的版本中。
一、 在HCatalog中创建表