使用importtsv命令加载数据

本文介绍如何使用HBase的Bulkload特性批量加载数据。通过示例演示了从CSV文件抽取数据、转换为HFile并最终加载到HBase的过程。包括创建输出目录、配置参数、执行MapReduce作业等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文: http://debugo.com/importtsv-load-data/?utm_source=tuicool&utm_medium=referral


Bulkload是向HBase批量加载数据的方式,它会直接将数据进行准备和并加载成HFile,并直接讲文件插入到RegionServer中,这比通过一个MapReduce/Spark作业来加载性能高得多。详细的流程如下:
1. 抽取数据并形成固定格式的文件,比如csv。
2. 将数据转换称为HFile。这需要一个MapReduce作业,可以自己来实现Map方法来,HBase来完成后面的Reducer操作。最后,每一个region的HFile将会在输出目录被创建出来。
3. 将生成的HFile加载到HBase中,并在所有的regionserver上注册它们,即完成Complete Bulkload阶段。

下面我们生成一个实验数据集:

首先我们在HBase创建需要load进入的表:

下面我们使用HBase中的importtsv类来处理。Importtsv作业接收下面几个参数:
-Dimporttsv.skip.bad.lines=false – 若遇到无效行则失败
-Dimporttsv.separator=| – 文件中代替tabs的分隔符
-Dimporttsv.columns=HBASE_ROW_KEY,city 输入行的格式
-Dimporttsv.timestamp=currentTimeAsLong – 导入时使用指定的时间戳
-Dimporttsv.mapper.class=my.Mapper – 使用用户指定的Mapper类来代替默认的
-Dimporttsv.bulk.output=/user/yarn/output 作业的输出目录
先创建出输出目录,并上传数据。

下面我们开始执行completeBulkload的操作,将生成的HFile注册到regionserver中。其中第一个参数是HFile的输出目录,第二个参数是加载进的表名。

进入HBase shell,检查bulkload的数据

更多的信息请参见:
http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk-loading-and-why/

http://www.cnblogs.com/mumuxinfei/p/3823367.html

### HDFS 数据导入使用方法教程 #### 将外部HDFS数据迁移至目标HDFS环境 当面对不同集群间的数据转移需求时,可以采用如下方式实现从旧有HDFS集群向新KDP HDFS集群的数据传输。具体操作涉及将源位置`hdfs:///data`目录下的全部内容复制到目的端相同路径下[^1]。 ```bash hadoop distcp hdfs://old-cluster:8020/data hdfs://new-kdp-cluster:8020/data ``` 此命令利用分布式拷贝工具(DistCp),能够高效处理大规模文件集的跨集群同步工作。 #### 由本地系统或现有HDFS节点向HBase表内加载记录 对于希望把结构化文本资料(如CSV格式)引入NoSQL数据库的情况,可借助专门设计用于此类任务的实用程序完成转换过程。下面的例子展示了怎样通过指定字段分隔符以及定义列映射关系来准备并执行一次针对`user_table`的目标批量写入作业[^2]: ```bash hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \ -Dimporttsv.separator=, \ -Dimporttsv.columns="HBASE_ROW_KEY,cf:name,cf:age,cf:email" \ user_table /path/to/user_data.csv ``` 上述脚本片段里包含了必要的配置参数设置,确保输入源能被正确解析成键值对形式存入持久层之中。 #### 利用Broker机制促进Doris与HDFS间的交互协作 考虑到某些应用场景可能涉及到更复杂的ETL流程或是实时分析需求,在Apache Doris生态体系中提供了Broker Load特性支持直接对接HDFS资源库的功能。然而值得注意的是,在实际部署过程中可能会遇到诸如分区信息缺失等问题影响最终效果呈现;因此建议事先确认好元数据一致性状况再着手实施后续动作[^3]。 为了验证是否存在预期之外的行为模式,可以通过查询语句获取当前对象模型视图下的所有可用切片详情: ```sql SHOW PARTITIONS FROM demo.`table1`; ``` 如果结果显示为空,则需进一步排查原因所在——可能是由于建模阶段遗漏了必要声明或者是后期维护环节出现了变动而未及时更新索引结构所致。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值