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

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:Admission_number,info:sex,info:birth,info:exam_year,info:now_school hbase-csv1 /user/pee.csv

(我刚开始使用的这个语句,无论是换简单的csv文件还是更新jar包还是修改配置,结果一直报下面这个错)

提示file does not exist

Exception in thread "maif”java.io. FilelotroundExcentiom:File does not exista hdfs: /master:8020/ usr/local/hbase-1.3.6/1ib/metric-core-2.2.0. jar

但是在虚拟机文件系统中却发现该文件存在!
似乎hdfs: /master:8020/ usr/local/hbase-1.3.6/1ib/metric-core-2.2.0. jar这个引导的地址有些诡异,其将hdfs和本地dir路径混为一谈。
于是搜索问题,找到了一个问答,
搜索过程
> https://www.saoniuhuo.com/question/detail-1925585.html
但它只有一个刚开始怎么也看不到的深奥回答。
于是又找到了csdn上的一个提问,hbase调用ImportTsv导入csv文件时报错File does not exist
问题是一致的,但没有回答,无奈继续寻找解决方法。
解决方法
综合https://www.saoniuhuo.com/question/detail-1925585.html的一个回答和https://www.cnblogs.com/sunspeedzy/p/7501899.html、ImportTsv-HBase数据导入工具两篇博客,
将此前报错的语句替换为以下

HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` $HADOOP_HOME/bin/yarn jar $HBASE_HOME/lib/hbase-server-1.3.6.jar importtsv -Dimporttsv.separator=","  -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:Admission_number,info:sex,info:birth,info:exam_year,info:now_school,info:new_school hbase-csv1 /user/pee.csv

直接复制使用即可,实现hdfs中的csv文件导入habse。
问题解释可以大概从https://www.cnblogs.com/sunspeedzy/p/7501899.html这篇博客中了解。默认情况下,部署到MapReduce集群的MapReduce作业不能访问$HBASE_CONF_DIR下的HBase配置文件或HBase类,即报file not exist的错误。

最后再记录一下如何使用importtsv导入CSV数据到HBase

第一种: step1:根据hdfs中的文件生成Hfile

-Dimporttsv.columns=HBASE_ROW_KEY,cf:a,cf:b -Dimporttsv.bulk.output=hdfs:///storefile tsvtab /hdfs2hbase/hdfs2hbase.tsv ```注: (1)tsv文件不能有文件头;
(2)importtsv.columns=HBASE_ROW_KEY必须要指定列,且必须要有HBASE_ROW_KEY
(3)Dimporttsv.bulk.output=hdfs:///storefile,hdfs上的storefile目录开始不能存在
step2:完成导入 hbase
org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles
hdfs:///storefile tsvtab第二种:```powershell HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath`
$HADOOP_HOME/bin/yarn jar $HBASE_HOME/lib/hbase-server-1.3.1.jar
importtsv
-Dimporttsv.columns=HBASE_ROW_KEY,baseinfo:INTERNAL_KEY,baseinfo:TRAN_DATE,baseinfo:SOURCE_TYPE,baseinfo:TERMINAL_ID,baseinfo:BRANCH,baseinfo:OFFICER_ID,baseinfo:TRAN_TYPE,baseinfo:EFFECT_DATE,baseinfo:POST_DATE,baseinfo:REVERSAL_TRAN_TYPE,baseinfo:REVERSAL_DATE,baseinfo:STMT_DATE,baseinfo:TRAN_AMT,baseinfo:REFERENCE,baseinfo:PREVIOUS_BAL_AMT,baseinfo:ACTUAL_BAL_AMT,baseinfo:TFR_INTERNAL_KEY,baseinfo:TFR_SEQ_NO,
dshuangfu:teacher1
/user/hac/input/2-1/dshuangfu_hbase_zhongyuan111.tsv ```

详见ImportTsv-HBase数据导入工具

hbase调用ImportTsv导入csv文件时报错File does not exist相关推荐

  1. python read函数报错_python 使用read_csv读取 CSV 文件时报错

    读取csv文件时报错 df = pd.read_csv('c:/Users/NUC/Desktop/成绩.csv' ) Traceback (most recent call last): File ...

  2. protel99se导入封装库时报错File is not recognized

    在win10系统下的protel99se在导入元件库和PCB库时报错File is not recognized的解决办法如下: https://jingyan.baidu.com/article/1 ...

  3. pandas读取csv文件时报错的解决方式,你get到了吗?

    在用Jupyter Notebook编译python代码时,我想引入pandas模块对csv文件中的数据进行读取 代码如下: import pandas as pd data = pd.read_cs ...

  4. 【pd读取csv文件踩坑】读取csv文件时报错:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb5 in position 0

    写在前面: 由于CSDN的审查机制的原因,更多博客内容请访问我的个人博客或GitHub: 个人博客地址:个人博客 GitHub地址:GitHub 你是否有过之前用pd.read打开csv文件都正常,但 ...

  5. window环境下mysql导入sql文件时报错:ERROR: ASCII '\0' appeared in the statement

    错误信息: ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mo ...

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

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

  7. 向oracle中导入*.csv文件

    向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...

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

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

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

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

最新文章

  1. 怎么读取java文件,Java怎么读取文件
  2. 关于Docker的理解
  3. MySQL主从复制Linux实现
  4. 【ArcGIS Pro微课1000例】0002:ArcGIS Pro 2.5二三维联动显示
  5. 传统红色纹样图案背景|中式海报必备素材
  6. Java基础(六)——容器
  7. IEEE正推进制定量子计算标准
  8. HTML的form表单标签
  9. MySQL 8支持文档存储,并带来性能和安全方面的改进
  10. linux版gaussian运行,【求助】gaussian 在linux不能运行?急急急 - 量子化学 - 小木虫 - 学术 科研 互动社区...
  11. linux-Team-网卡绑定
  12. EXCEL常用技巧总结
  13. 启强书屋(书荒地老)
  14. 最新H5网页分享到Twitter、Facebook带缩略图
  15. Learning Skeletal Articulations with Neural Blend Shapes(使用神经混合形状学习骨骼关节)SIGGRAPH 2021顶刊解析
  16. label 字体添加中划线和下划线
  17. 看《我的工科女友》感受
  18. day19Java-IO-IO结合集合练习
  19. JDOJ 3055: Nearest Common Ancestors
  20. 2017第三届中国(重庆)国际物流展会刊(参展商名录)

热门文章

  1. 影子寄存器(shadow register)
  2. php三级分销原理,怎么写php三级分销?逻辑思路是怎样的啊,求指点
  3. 怎么在endnote中添加目标期刊参考文献的style
  4. uniapp ios提交失败,权限描述修改
  5. PHP获取微信openid(静默式不需要用户同意)!
  6. 用计算机图形学画字母,计算机图形学画多边形.doc
  7. 基于 python 的德云消消乐益智小游戏设计论文+源码
  8. python中flag的用法_请问python中flag的意思是什么?
  9. linux的填涂题是什么类型,软考填涂答题卡纸须知
  10. vc++6.0:MFC写的一个汉字取模软件(附源码)