对HDFS,HBase和Hive有些怀疑

时间:2012-10-17 06:14:55

标签: hadoop hive hdfs

我对Hadoop生态系统有几个疑问。渴望很好地理解这些概念。

  1. Hive表在哪里存储数据?
  2. 对于Datawarehouse,我们是否需要在Hive和Hbase表中同时拥有相同的数据。
  3. 我们如何从Hbase插入,更新,读取数据。
  4. 除了csv之外,HDFS存储的所有文件格式都是什么。
  5. 我们可以在Hbase上使用PIG吗?
  6. 如果我有Hive,我可以省略Hbase表吗?

1 个答案:

答案 0 :(得分:2)

答案,按顺序:

  1. Hive通常将数据存储在其配置的文件系统目录下的表命名目录中,通常是/user/hive/warehouse的HDFS目录,可通过hive-site.xml的{​​{1}}属性进行调整。
  2. Hive和HBase是两种不同的表存储概念。前者没有记录或随机读/写的概念。它们之间唯一共同点是连接器Hive必须读取存储在HBase服务器/格式下的表数据。
  3. HBase Reference Guide详细介绍了这一点。最简单的方法是使用hive.metastore.warehouse.dir
  4. HDFS是一个普通的文件系统(仅分发),类似于您的Unix或Windows文件系统,因此不关心您存储在其上的数据类型。您可以存储任何您想要的内容,前提是您还可以使用读取器/写入器逻辑来消化它。
  5. Pig确实提供了HBaseStorage内置存储访问方法作为其核心的一部分,让您可以在Pig脚本中访问和表示HBase行数据。
  6. 见(2)。两者都是无关的,除非你想要它们,所以答案是肯定的。