首页 > 解决方案 > 错误 hive.HiveConfig:无法加载 org.apache.hadoop.hive.conf.HiveConf。确保 HIVE_CONF _DIR 设置正确

问题描述

我正在尝试将数据从 sqoop 导入配置单元

MySQL

use sample;

create table forhive(   id int auto_increment,
    firstname varchar(36),
    lastname varchar(36),
    primary key(id)
    );    

insert into  forhive(firstname, lastname) values("sample","singh");

select * from forhive;

1 阿拜阿格拉瓦尔

2 维杰夏尔马

3 样品辛格

这是我正在使用的 Sqoop 命令(版本 1.4.7)

sqoop import --connect jdbc:mysql://********:3306/sample 

--table forhive --split-by id --columns id,firstname,lastname  

--target-dir /home/programmeur_v/forhive 

--hive-import --create-hive-table --hive-table sqp.forhive --username vaibhav -P

这是我得到的错误

错误日志

18/08/02 19:19:49 INFO sqoop.Sqoop:运行 Sqoop 版本:1.4.7

输入密码:

18/08/02 19:19:55 INFO tool.BaseSqoopTool:使用 Hive 特定的分隔符进行输出。您可以覆盖

18/08/02 19:19:55 INFO tool.BaseSqoopTool: 使用 --fields-terminated-by 等分隔符。

18/08/02 19:19:55 INFO manager.MySQLManager:准备使用 MySQL 流结果集。

18/08/02 19:19:55 INFO tool.CodeGenTool:开始代码生成

18/08/02 19:19:56 INFO manager.SqlManager:执行 SQL 语句:SELECT t.* FROM forhiveAS t LIMIT 1

18/08/02 19:19:56 INFO manager.SqlManager:执行 SQL 语句:SELECT t.* FROM forhiveAS t LIMIT 1

18/08/02 19:19:56 信息 orm.CompilationManager:HADOOP_MAPRED_HOME 是 /home/programmeur_v/softwares/hadoop-2.9.1

注意:/tmp/sqoop-programmeur_v/compile/e8ffa12496a2e421f80e1fa16e025d28/forhive.java 使用或覆盖已弃用的 API。

注意:使用 -Xlint:deprecation 重新编译以获取详细信息。18/08/02 19:19:58 INFO orm.CompilationManager:编写 jar 文件:/tmp/sqoop-programmeur_v/compile/e8ffa12496a2e421f80e1fa16e025d28/forhive.jar

18/08/02 19:19:58 WARN manager.MySQLManager:看起来你是从 mysql 导入的。

18/08/02 19:19:58 WARN manager.MySQLManager:这个传输可以更快!使用 --direct

2002 年 8 月 18 日 19:19:58 WARN manager.MySQLManager:执行 MySQL 特定快速路径的选项。

18/08/02 19:19:58 INFO manager.MySQLManager:将零 DATETIME 行为设置为 convertToNull (mysql)

18/08/02 19:19:58 INFO mapreduce.ImportJobBase:开始导入 forhive

2002 年 8 月 18 日 19:19:58 INFO Configuration.deprecation:不推荐使用 mapred.jar。相反,使用 mapreduce.job.jar

18/08/02 19:19:59 INFO Configuration.deprecation: mapred.map.tasks 已弃用。相反,使用 mapreduce.job.maps

18/08/02 19:19:59 INFO client.RMProxy: 在 /0.0.0.0:8032 连接到 ResourceManager

18/08/02 19:20:02 INFO db.DBInputFormat: 使用读提交事务隔离

18/08/02 19:20:02 INFO db.DataDrivenDBInputFormat: BoundingValsQuery: SELECT MIN( id), MAX( id) FROMforhive

18/08/02 19:20:02 INFO db.IntegerSplitter:拆分大小:0;拆分数量:4 从:1 到:3

18/08/02 19:20:02 INFO mapreduce.JobSubmitter:拆分数:3

18/08/02 19:20:02 INFO Configuration.deprecation: yarn.resourcemanager.system-metrics-publisher.enabled 已弃用。相反,使用 yarn.system-metrics-publisher.enabl ed

18/08/02 19:20:02 INFO mapreduce.JobSubmitter:提交作业令牌:job_1533231535061_0006

18/08/02 19:20:03 INFO impl.YarnClientImpl:提交的应用程序 application_1533231535061_0006

18/08/02 19:20:03 INFO mapreduce.Job:跟踪作业的 url: http://instance-1:8088/proxy/application_1533231535061_0006/

2002 年 8 月 18 日 19:20:03 信息 mapreduce.Job:正在运行的作业:job_1533231535061_0006

2002 年 8 月 18 日 19:20:11 信息 mapreduce.Job:作业 job_1533231535061_0006 在 uber 模式下运行:false

18/08/02 19:20:11 INFO mapreduce.Job: map 0% reduce 0%

18/08/02 19:20:21 INFO mapreduce.Job: map 33% reduce 0%

18/08/02 19:20:24 INFO mapreduce.Job:地图 100% 减少 0%

18/08/02 19:20:25 INFO mapreduce.Job: Job job_1533231535061_0006 成功完成

18/08/02 19:20:25 INFO mapreduce.Job:计数器:31

        File System Counters
        FILE: Number of bytes read=0
        FILE: Number of bytes written=622830
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=295
        HDFS: Number of bytes written=48
        HDFS: Number of read operations=12
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=6
        Job Counters 
        Killed map tasks=1
        Launched map tasks=3
        Other local map tasks=3
        Total time spent by all maps in occupied slots (ms)=27404
        Total time spent by all reduces in occupied slots (ms)=0
        Total time spent by all map tasks (ms)=27404
        Total vcore-milliseconds taken by all map tasks=27404
        Total megabyte-milliseconds taken by all map tasks=28061696
        Map-Reduce Framework
        Map input records=3
        Map output records=3
        Input split bytes=295
        Spilled Records=0
        Failed Shuffles=0
        Merged Map outputs=0
        GC time elapsed (ms)=671
        CPU time spent (ms)=4210
        Physical memory (bytes) snapshot=616452096
        Virtual memory (bytes) snapshot=5963145216
        Total committed heap usage (bytes)=350224384
        File Input Format Counters 
        Bytes Read=0
        File Output Format Counters 
        Bytes Written=48

18/08/02 19:20:25 INFO mapreduce.ImportJobBase:在 25.828 秒内传输 48 个字节(1.8584 字节/秒)

18/08/02 19:20:25 INFO mapreduce.ImportJobBase:检索到 3 条记录。

18/08/02 19:20:25 INFO mapreduce.ImportJobBase:将 Hive/Hcat 导入作业数据发布到表 forhive 的侦听器

18/08/02 19:20:25 INFO manager.SqlManager:执行 SQL 语句:SELECT t.* FROM forhiveAS t LIMIT 1

18/08/02 19:20:25 INFO hive.HiveImport:将上传的数据加载到 Hive

18/08/02 19:20:25 错误 hive.HiveConfig:无法加载 org.apache.hadoop.hive.conf.HiveConf。确保 HIVE_CONF_DIR 设置正确。

18/08/02 19:20:25 错误 tool.ImportTool:导入失败:java.io.IOException:java.lang.ClassNotFoundException:org.apache.hadoop.hive.conf.HiveConf 在 org.apache.sqoop.hive。 HiveConfig.getHiveConf(HiveConfig.java:50) at org.apache.sqoop.hive.HiveImport.getHiveArgs(HiveImport.java:392) at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:379) at org .apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:337) 在 org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:241) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool .java:537) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:147) 在 org.apache.hadoop.util。 ToolRunner.run(ToolRunner.java:76) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) 在 org .apache.sqoop.Sqoop.main(Sqoop.java:252) 引起:java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf at java.net.URLClassLoader.findClass(URLClassLoader.java:381)在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java。 lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多Sqoop.runTool(Sqoop.java:234) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) at org.apache.sqoop.Sqoop.main(Sqoop.java:252) 原因:java.lang .ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 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) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java :264) 在 org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多Sqoop.runTool(Sqoop.java:234) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) at org.apache.sqoop.Sqoop.main(Sqoop.java:252) 原因:java.lang .ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 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) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java :264) 在 org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多252) 引起:java.lang.ClassLoader.loadClass(ClassLoader.java: java.net.URLClassLoader.findClass(URLClassLoader.java:381) 处的 java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf: 424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.forName0(Native Method) 在 java.lang .Class.forName(Class.java:264) at org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多252) 引起:java.lang.ClassLoader.loadClass(ClassLoader.java: java.net.URLClassLoader.findClass(URLClassLoader.java:381) 处的 java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf: 424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.forName0(Native Method) 在 java.lang .Class.forName(Class.java:264) at org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class.java:264) 在 org.apache .sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多java:349) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.forName0(Native Method) 在 java.lang.Class.forName(Class.java:264) 在 org.apache .sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:44) ... 12 更多

在我为同样的错误进行谷歌搜索后,我也将 HIVE_CONF_DIR 添加到了我的 bashrc

导出 HIVE_HOME=/home/programmeur_v/softwares/apache-hive-1.2.2-bin

导出 HIVE_CONF_DIR=/home/programmeur_v/softwares/apache-hive-1.2.2-bin/conf

导出 PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$SQOOP_HOME/bin:$HIVE_CONF_DIR

我所有的 Hadoop 服务也都已启动并正在运行。

6976 名称节点

7286 次要名称节点

7559 节点管理器

7448 资源管理器

8522 数据节点

14587 日元

我只是无法弄清楚我在这里犯了什么错误。请指导!

标签: hadoophivesqoopcloudera

解决方案


通过谷歌搜索下载文件“hive-common-0.10.0.jar”。将它放在“sqoop/lib”文件夹中。这个解决方案对我有用。


推荐阅读