将数据从hdfs导入hbase会创建一个拷贝吗

ojsjcaue  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(333)

我对hbase的概念非常陌生。我知道hbase的底层文件系统只是hdfs。
我只是想了解,如果在一个集群中,我已经在hdfs中有了一些数据。我尝试在hbase中导入它(使用pig/hive脚本),它是否会以hbase支持的形式(hfiles)在hdfs中创建相同数据的另一个副本(因为hbase的底层文件系统是hdfs)?
或者它将创建对相同hdfs数据的引用?

8hhllhi2

8hhllhi21#

是的,它将在hdfs中存储导入数据的副本(作为storefiles/hfiles),因为hbase只能使用自己的一组文件进行操作。也许你会发现这个不错的概述很有趣。
您可以直接操作存储在hdfs中的数据,而无需使用外部配置单元表将其导入hbase:

CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,
     page_url STRING, referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User',
     country STRING COMMENT 'country of origination')
 COMMENT 'This is the staging page view table'
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
 STORED AS TEXTFILE
 LOCATION '<hdfs_location>';

在hadoop世界中,拥有相同数据的多个副本(尽管格式不同)应该不是问题,因为存储不被视为限制因素,因为它是基于商品硬件的,所以价格便宜而且易于扩展。事实上,如果您有足够的输入数据,很常见的情况是,您的hive/pig/mapreduce作业只需要数百甚至数千gbs(中间数据)就可以处理您的作业。

相关问题