使用importTsv方式导数据从Hdfs到HBase

mac2024-05-13  36

首先说一下.tsv的文件扩展名。TSV文件格式的全称是“制表符分隔值”,而这些制表符分隔值文件被创建和使用的许多电子表格应用程序

导数之前、首先确保hadoop和hdbase是开启的。

第一步:创建hbase 表

命令行执行hbase shell 进入到hbase shell

创建表  create 'importTsvHbase' ,'col1','col2'

第二步:进入到$HBASE_HOME/bin目录下,执行以下命令即可

./hbase org.apache.hadoop.hbase.mapreduce.ImportTsv  -Dimporttsv.bulk.output=hbaseTsv –Dimporttsv.columns=HBASE_ROW_KEY,col1:name,col2:exp importTsvHbase  /user/hbase/hbase.tsv

参数说明:

-Dimporttsv.bulk.output=hbaseTsv :输出文件位置,文件输出为 hdfs上 /user/当前用户名/hbaseTsv importTsvHbase:要导入到hbase中的表名 /user/hbase/hbase.tsv:hdfs上文件的位置

还有一些其他的可选参数:  

-Dimporttsv.skip.bad.lines=false:强制跳过错误的行 -Dimporttsv.separator=| :指定文件的分隔符 -Dimporttsv.timestamp=currentTimeAsLong :指定当前时间戳 -Dimporttsv.mapper.class=my.Mapper :指定自定义的mapper方法。默认使用 org.apache.hadoop.hbase.mapreduce.TsvImporterMapper

 

第三步:修改输出文件的权限

hdfs dfs -chown -R hbase:hbase /user/当前用户名/hbaseTsv

最后一步:将文件和hbase表关联起来

./hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hbaseTsv importTsvHbase

关联完毕后,在hbase shell中可以直接查询表了

最新回复(0)