如何将hbase数据作为文本写入HDFS

问题描述 投票:0回答:1

[HBASE中当天已有30万条数据,如何以TXT格式将数据写入HBASE,每个TXT文件对应于一天中的数据,例如:2020.03.25 / high.TXT(高是表的名称)

hdfs hbase
1个回答
0
投票

您可以使用HBase附带的实用程序(使用hbase命令)将HBase导出到HDFS:

hbase org.apache.hadoop.hbase.mapreduce.Export high /path/in/hdfs

这将把全部数据表导出到HDFS中的一个csv文件中。因此,如果将hbase数据定义为包含1天的数据(通过使用ttl属性),则将获得所需的结果。

如果您的hbase表包含以前的数据,则可以按时间戳范围使用以下命令exprt数据:

echo "scan 'high',{ TIMERANGE => [start_timestamp, end_timestamp] }" | hbase shell | grep "^ " > high.txt
hdfs dfs -put high.txt /path/in/hdfs

start_timestampend_timestamp应该根据需要定义(对于最后1天,只需将它们设置为一天的开始和结束)。请注意,它首先会在本地文件系统中生成high.txt,因此请在有足够存储空间(或high一天不包含太多数据)时使用它。

© www.soinside.com 2019 - 2024. All rights reserved.