ImportTsv 工具是通过map reduce 完成的。所以要启动yarn. 工具要使用jar包,所以注意配置classpath。ImportTsv默认是通过hbase api 插入数据的

[hadoop-user@rhel work]$ cat /home/hadoop-user/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

JAVA_HOME=/usr/java/jdk1.8.0_171-amd64

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

HADOOP_HOME=/home/hadoop-user/hadoop-2.8.0

PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib

HBASE_HOME=/home/hadoop-user/hbase-2.0.0

PATH=$PATH:$HBASE_HOME/bin

CLASSPATH=$CLASSPATH:$HBASE_HOME/lib

ZOOKEEPER_HOME=/home/hadoop-user/zookeeper-3.4.12

PATH=$PATH:$ZOOKEEPER_HOME/bin

PHOENIX_HOME=/home/hadoop-user/apache-phoenix-5.0.0-alpha-HBase-2.0-bin

PATH=$PATH:$PHOENIX_HOME/bin

export PATH

创建表

hbase(main):033:0> create 'test','cf'

创建要导入的文件

[hadoop-user@rhel work]$ cat /home/hadoop-user/work/sample1.csv

row10,"mjj10"

row11,"mjj11"

row12,"mjj12"

row14,"mjj13"

将文件放入hdfs

[hadoop-user@rhel work]$ hdfs dfs -put /home/hadoop-user/work/sample1.csv /sample1.csv

ImportTsv导入命令

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,cf:a test /sample1.csv

注: HBASE_ROW_KEY表示文件rowid的位置,后面是列的定义。这里意思是导入的列为列族为cf,列名为a。要导入的文件是hdfs中/sample1.csv

帮助中的解释

Usage: importtsv -Dimporttsv.columns=a,b,c

Imports the given input directory of TSV data into the specified table.

The column names of the TSV data must be specified using the -Dimporttsv.columns

option. This option takes the form of comma-separated column names, where each

column name is either a simple column family, or a columnfamily:qualifier. The special

column name HBASE_ROW_KEY is used to designate that this column should be used

as the row key for each imported record. You must specify exactly one column

to be the row key, and you must specify a column name for every column that exists in the

input data. Another special columnHBASE_TS_KEY designates that this column should be

used as timestamp for each record. Unlike HBASE_ROW_KEY, HBASE_TS_KEY is optional.

You must specify at most one column as timestamp key for each imported record.

Record with invalid timestamps (blank, non-numeric) will be treated as bad record.

Note: if you use this option, then 'importtsv.timestamp' option will be ignored.

注意: ImportTsv导入的内容,phoenix看不到。事实上,hbase创建的表,Phoenix看不到。phoenix创建的表,hbase能看到,但是内容是编码后的内容。

importtsv 工具默认使用hbase put api导数据.当使用选项 -Dimporttsv.bulk.output时,将会先生成HFILE文件的内部格式的文件。

The importtsv tool, by default, uses the HBase Put API to insert data into the HBase

table using TableOutputFormat in its map phase. But when the -Dimporttsv.bulk.output option is specified, it instead generates HBase internal format (HFile) files on HDFS

by using HFileOutputFormat. Therefore, we can then use the completebulkload tool to load the generated files into a running cluster. The following steps are to use the bulk output and load tools:

生成HFILE格式的文件命令

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.bulk.output=/hfiles_tsv -Dimporttsv.columns=HBASE_ROW_KEY,cf:a test /sample1.csv

注: 生成hfile格式的文件,存放于hdfs中的/hfile_tsv目录中,目录会由命令自己创建。

[hadoop-user@rhel work]$ hdfs dfs -ls /hfiles_tsv/cf

18/06/28 10:49:21 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Found 1 items

-rw-r--r--   1 hadoop-user supergroup       5125 2018-06-28 10:40 /hfiles_tsv/cf/0e466616d42a4a128fb60caa7dbe075a

注: 0e466616d42a4a128fb60caa7dbe075a的命名格式跟WEB中region的命名格式很像

通过

hadoop jar hbase-server-2.0.0.jar completebulkload /hfiles_tsv 'test'

出现异常; Exception in thread "main" java.lang.ClassNotFoundException: completebulkload

HBASE文档中两种导入方式:

There are two ways to invoke this utility, with explicit classname and via the driver:

Explicit Classname$ bin/hbase org.apache.hadoop.hbase.tool.LoadIncrementalHFiles

DriverHADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` ${HADOOP_HOME}/bin/hadoop jar ${HBASE_HOME}/hbase-server-VERSION.jar completebulkload

hbase导入csv文件_HBase 数据导入 ImportTsv相关推荐

  1. mysql导入csv文件 第一行有问题_mysql 导入 csv文件中数据,只能导入第一行

    用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行. 但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打 ...

  2. mysql 导入tsv文件_HBase数据迁移(2)- 使用bulk load 工具从TSV文件中导入数据

    英文原文摘自:<HBase Administration Cookbook>??编译:ImportNew?-?陈晨 本篇文章是对数据合并的系列文章之二(共三篇),针对的情景模式就是将现有的 ...

  3. python导入csv文件-python如何导入csv文件格式

    1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...

  4. python导入csv文件-python如何导入csv

    1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...

  5. mysql 导入dbm文件_DBM数据导入到mysql数据库方法

    本文章分享一篇关于DBM数据导入到mysql数据库方法,有需要的同学可以参考一下本实例. 首先说明一下,我以前使用PERL,保存文件 用DBM,有5万多条记录,每条记录有15个字段.现在想用MYSQL ...

  6. mysql linux导入csv主键,MySQL导入csv文件内容到Table及数据库的自增主键设置

    写在前面 目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置. 测试采用MySQL8.0. 新建表customer_info如下, 未设置主键. 修改上表, 添加主键id, 并设置为自 ...

  7. hbase调用ImportTsv导入csv文件时报错File does not exist

    问题背景 在大数据存储课设中,任务要求是要把生成的原始数据存储到Hbase中.首先将csv文件传至了HDFS,而下一步将传至Hbase却出现了一个问题,耗费了数小时寻找问题解决方法,最终将数据成功导入 ...

  8. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...

  9. python怎么导入csv文件数据-机器学习Python实践——数据导入(CSV)

    一,CSV 逗号分隔值(逗号分隔值,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).字幕:纯意味着该文件的英文一个字符序列,不含必须像二进制数 ...

最新文章

  1. c#中泛型参数与object参数导致重写无效。
  2. PHP获取IP的多种方式解析
  3. 趣学python3(4)-数字,字符串,列表(1)
  4. Excel双样本T检验之成对检验
  5. 第4章:分布式数据库 HBase
  6. oracle 时间间隔,ORACLE JOB间隔时间参考
  7. HDU 1054 Strategic Game(无向二分图的最大匹配)
  8. 2022年第十三届蓝桥杯省赛真题及部分答案解析(Java B组)
  9. CNN | 01实现颜色分类
  10. nc 单据模板公式
  11. 中华石杉Java面试突击第一季笔记二(分布式搜索引擎)
  12. js检测当前浏览器的flash版本
  13. 100流明相当于多少w_GE的50W卤素灯光通量标明1500流明实际有这么高吗换几W的LED灯较合适...
  14. MySQL添加删除账户及授予权限
  15. java批量打包下载网络图片
  16. mac 下载软件无法将程序拖移至app 出现错误
  17. 【分布式】关于分布式“一致性”的讨论
  18. BUUCTF VoIP
  19. 【Win32多线程】异步I/O技术(Overlapped I/O),避免使用多线程
  20. jQuery高亮显示

热门文章

  1. Java内部类 Inner Class
  2. 录像的视频如何在画面中实时加上时间戳
  3. 《天天数学》连载39:二月八日
  4. 无心剑中译奥修《奥修对爱与婚姻的印象》
  5. Python学习笔记:集合(set)
  6. 【BZOJ2959】【codevs2002】长跑,维护双联通分量
  7. 【codevs1565】【BZOJ2242】计算器,数论练习
  8. gulp临时服务器显示html页面,用Gulp实现CSS压缩和页面自动刷新
  9. 2017.5 期中考试 完挂
  10. 【Python】Python2.7.15 - Windows安装Python以及Python安装目录结构详解