将数据从 hdfs 导入到 hbase 是否会创建一个副本
does importing data from hdfs to hbase create a copy
我对 Hbase 概念很陌生。我了解到HBase的底层文件系统只有HDFS。
我只是想了解,如果在单个集群中我已经在 HDFS 中有一些数据。我尝试将其导入 HBase(使用 Pig/Hive 脚本),它会以 HBase 支持的形式(HFiles)在 HDFS 中创建相同数据的另一个副本(因为 HBase 的底层文件系统是 HDFS)吗?
或者它会创建对相同 HDFS 数据的引用?
是的,它将在 HDFS 中存储导入数据的副本(如 StoreFiles/HFiles),因为 HBase 只能使用其自己的文件集进行操作。也许你会发现这个 nice overview 很有趣。
无需导入HBase,直接操作HDFS中的数据EXTERNAL HIVE table:
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 '4'
STORED AS TEXTFILE
LOCATION '<hdfs_location>';
在 Hadoop 世界中,拥有相同数据的多个副本(尽管格式不同)应该不是问题,因为存储不被视为限制因素,它便宜且易于扩展,因为它基于商用硬件。事实上,如果您有足够的输入数据,您的 Hive/Pig/MapReduce 作业需要数百甚至数千 GB(中间数据)来处理您的作业是很常见的。
我对 Hbase 概念很陌生。我了解到HBase的底层文件系统只有HDFS。
我只是想了解,如果在单个集群中我已经在 HDFS 中有一些数据。我尝试将其导入 HBase(使用 Pig/Hive 脚本),它会以 HBase 支持的形式(HFiles)在 HDFS 中创建相同数据的另一个副本(因为 HBase 的底层文件系统是 HDFS)吗?
或者它会创建对相同 HDFS 数据的引用?
是的,它将在 HDFS 中存储导入数据的副本(如 StoreFiles/HFiles),因为 HBase 只能使用其自己的文件集进行操作。也许你会发现这个 nice overview 很有趣。
无需导入HBase,直接操作HDFS中的数据EXTERNAL HIVE table:
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 '4'
STORED AS TEXTFILE
LOCATION '<hdfs_location>';
在 Hadoop 世界中,拥有相同数据的多个副本(尽管格式不同)应该不是问题,因为存储不被视为限制因素,它便宜且易于扩展,因为它基于商用硬件。事实上,如果您有足够的输入数据,您的 Hive/Pig/MapReduce 作业需要数百甚至数千 GB(中间数据)来处理您的作业是很常见的。