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

dw1jzc5e  于 2021-06-07  发布在  Hbase
关注(0)|答案(1)|浏览(744)

hbase中已经有30万条当天的数据,如何将数据以txt格式写入hbase,每个txt文件对应一天的数据,如:2020.03.25/high.txt(high是表名)

rwqw0loc

rwqw0loc1#

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

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

这将把所有的数据表导出到hdfs中的csv文件中。因此,如果您将hbase数据定义为包含1天的数据(通过使用ttl属性),您将得到所需的结果。
如果hbase表包含以前的数据,则可以使用以下命令exprt data by timestamp range:

echo "scan 'high',{ TIMERANGE => [start_timestamp, end_timestamp] }" | hbase shell | grep "^ " > high.txt
hdfs dfs -put high.txt /path/in/hdfs
``` `start_timestamp` 以及 `end_timestamp` 应该根据您的意愿定义(对于最后1天,只需将它们设置为一天的开始和结束)。请注意,它首先在本地文件系统中生成high.txt,因此当您有足够的存储空间(或者high在一天内不包含太多数据)时使用它。

相关问题