hbase中已经有30万条当天的数据,如何将数据以txt格式写入hbase,每个txt文件对应一天的数据,如:2020.03.25/high.txt(high是表名)
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在一天内不包含太多数据)时使用它。
1条答案
按热度按时间rwqw0loc1#
可以使用hbase附带的实用程序(使用hbase命令)将hbase导出到hdfs:
这将把所有的数据表导出到hdfs中的csv文件中。因此,如果您将hbase数据定义为包含1天的数据(通过使用ttl属性),您将得到所需的结果。
如果hbase表包含以前的数据,则可以使用以下命令exprt data by timestamp range: