资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: 计算机考试归档 最新发布

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

问题背景
在大数据存储课设中,任务要求是要把生成的原始数据存储到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数据导入工具

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/747013.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【hbase调用ImportTsv导入csv文件时报错File does not exist】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2