•A table and storage management layer for Hadoop that enables users with different data process tool-Pig, MapReduce and Hive – to more easily read and write data on the grid.
HCatalog屏蔽了底层数据存储的位置格式等信息,为上层计算处理流程提供统一的,共享的metadata。 并且将数据以表的形式呈现给用户(如Pig, MR, Hive, Streaming..),用户只需提供表名就可以访问底层数据,并不需要关心底层数据的位置,模式等信息。
更进一步讲,HCatalog基于Hive的metastore和ddl为其他数据处理工具提供服务。
架构
1. 为Pig提供HCatLoader和HCatStorer使得Pig只需知道表名就可以访问数据:
Without HCatalog
A = load '/data/rawevents/20100819/data' as (alpha:int, beta:chararray, …);
B = filter A by bot_finder(zeta) = 0;
…
store Z into 'data/processedevents/20100819/data';
With HCatalog:
A = load 'rawevents' using HCatLoader();
B = filter A by date = '20100819' and by bot_finder(zeta) = 0;
…
store Z into 'processedevents' using HCatStorer("date=20100819");
2. 为MR等任务提供HCatInputFormat和HCatOutputFormat接口
3. HCatReader和HCatWriter提供不适用MR的、并行的数据转移使用的API
4. 提供Notification服务,如在Pig任务中只有当数据准备好时,HCatalog会发送JMS消息给Pig任务使之开始执行。
5. REST API
现在这个已经成为一个独立的子项目叫做Templeton,为Hadoop集群向外提供统一的REST API。