CDH5.7 hive+sqoop踩坑实践

为了做一个基于hive的大数据采集平台,最近踩了不少的坑。

首先是想采用开源的项目代码搭建hadoop+hive+spark+hbase+sqoop平台的,hadoop采用2.7.7,spark用spark-2.3.0-bin-hadoop2.7,hbase用hbase-2.1.0,sqoop比较坑爹,只有1.4.7版本和1.99版本。了解过的人都不会用1.99版本,所以优先选择sqoop-1.4.7.bin-hadoop-2.6.0,。hive先用过apache-hive-3.1.1-bin,后降级到apache-hive-2.3.5-bin还是不行。

以上任何一个模块单独使用都没有问题。但是引入sqoop以后就坑爹了。首先sqoop多年不见更新,最新的sqoop-1.4.7只能基于hadoop-2.6.0,导致整个框架版本选项失败,实际应用中出现了好多坑,先后降级hive还是搞不定。最后把hive改成hive-1.1.0,结果hadoop版本又过高,实例化错误。坑太多了,就不一一列举了。

这个版本最后sqoop是没有成功的,但是通过spark读取oracle数据写入hive或者hbase还是可以成功的。

后期了解到cdh的版本集成比较好,网上的视频课程也采用cdh5.7,因此决定改用cdh5.7重新搭建环境。

从cdh官网看到,cdh早就知道sqoop有坑,所以一直到最新的(2019年6月18日发布更新)cdh5.16还是采用hadoop2.6+hive1.1+hbase1.2+sqoop1.4.6。

cdh5.7的环境安装过程没有出现什么意外,依次安装了java1.8,hadoop2.6,hive1.1,hbase1.2,sqoop1.4.6.

安装截图

安装完成以后执行sqoop命令,出现了两个坑。

第一个坑,json包没有,导致报错。知道了是缺少json-java.jar包,但是到处都下载不到jar包,花了半个小时终于在下面 的链接里面找到了靠谱的下载方法。

附上链接地址:https://www.cnblogs.com/byfboke/p/10000578.html

报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43)

at org.apache.sqoop.SqoopOptions.writeProperties(SqoopOptions.java:785)

at org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.createInternal(HsqldbJobStorage.java:399)

......

 原因:sqoop缺少java-json.jar包.

解决:

这是因为sqoop缺少java-json.jar包.

下载java-json.jar包:

http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm

把java-json.jar添加到../sqoop/lib目录:

cp java-json.jar  /sqoop/lib


第二个坑,htc环境变量配置:

报错:

19/06/27 11:04:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 19/06/27 11:04:24 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hive/hcatalog/mapreduce/HCatOutputFormat at org.apache.sqoop.mapreduce.DataDrivenImportJob.getOutputFormatClass(DataDrivenImportJob.java:199) at org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:94) at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:259) at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:692) at org.apache.sqoop.manager.OracleManager.importTable(OracleManager.java:444) at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:497) at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) at org.apache.sqoop.Sqoop.run(Sqoop.java:143) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) at org.apache.sqoop.Sqoop.main(Sqoop.java:236) Caused by: java.lang.ClassNotFoundException: org.apache.hive.hcatalog.mapreduce.HCatOutputFormat at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 13 more

处理方法:baidu一下很容知道是包引用问题,但是解决方案没有找到靠谱的。几经周转,在stackoverflow上找到一个看上去很靠谱的方法,链接如下。经过尝试,确实很靠谱。

就是在.bash_profile文件里面新增一个环节变量,把hcatalog配置进去。

我的配置如下:

export HCAT_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0/hcatalog

https://stackoverflow.com/questions/37219921/exception-in-thread-main-java-lang-noclassdeffounderror-org-apache-hive-hcata

解决方法


解决了以上两个问题,终于到了见证奇迹的时刻。

sqoop成功截图

前前后后,断断续续高了两个月了,终于看到一次成功的了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,858评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,372评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,282评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,842评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,857评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,679评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,406评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,311评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,767评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,945评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,090评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,785评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,420评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,988评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,101评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,298评论 3 372
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,033评论 2 355

推荐阅读更多精彩内容