热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用sqoop1.4.4从oracle导入数据到hive中错误记

   在使用命令导数据过程中,出现如下错误 sqoop import --hive-import -- conn

 

 在使用命令导数据过程中,出现如下错误


sqoop import --hive-import --

connect jdbc:oracle:thin:@


192.168.29.16:1521/testdb --username NAME --

passord PASS --verbose -m 1 --table T_USERINFO






错误1:


File does not exist: hdfs://opt/sqoop-1.4.4/lib/commons-io-1.4.jar


FileNotFoundException: File does not exist: hdfs:

//


opt/sqoop-1.4.4/lib/commons-io-1.4.jar



at org.apache

... ...


at org.apache ... ...



原因分析: 

感谢 


Daniel Koverman



s answer  http://stackoverflow.com/questions/19375784/sqoop-jar-files-not-found


It is common

for

Hadoop services to look

for

jars

in

HDFS because all nodes

in

the cluster can access files

in

HDFS. This is important

if

the MapReduce job being kicked off by the Hadoop service,

in

this

case


Sqoop, has a dependence on those jars. Remember, the Mappers are running on a DataNode, not the NameNode even though you are (probably) running the Sqoop command from the NameNode. Putting the jars on HDFS is not the only possible solution to this problem, but it is a sensible one.
Now we can deal with the actual error. At least one, but probably all, of your Mappers are unable to


find

a jar they need. That means that either the jar does not exist or the user trying to access them does not have the required permissions. First check

if

the

file

exists by running hadoop fs -

ls

home/SqoopUser/sqoop-

1.4

.

3

-cdh4.

4.0

/sqoop-

1.4

.

3

-cdh4.

4.0

.jar by a user with superuser privileges on the cluster. If it does not exist, put it there with hadoop fs -put {jarLocationOn/NameNode/fileSystem/sqoop-

1.4

.

3

-cdh4.

4.0

.jar} /home/SqoopUser/sqoop-

1.4

.

3

-cdh4.

4.0

/sqoop-

1.4

.

3

-cdh4.

4.0

.jar.


解决方法:

 将提示中涉及的jar文件put到hdfs文件系统中的相同位置,如果文件系统中没有对应的目录,则需要建立相应目录,在我的错误提示中,由于hdfs://master:8020/中缺少了 /opt/sqoop-1.4.4/lib/文件夹中的各种jar,所以我的做法是把此处整个/opt/sqoop-1.4.4/lib文件夹put到hdfs://master:8020/中





hadoop fs

-

ls

-R /



hadoop fs

-

mkdir

/

opt
hadoop fs

-

mkdir

/opt/sqoop-

1.4

.

4




hadoop fs

-put /opt/sqoop-

1.4

.

4

/lib /opt/sqoop-

1.4

.

4

/



hadoop fs

-

ls

-R /opt/sqoop-

1.4

.

4



错误2 :java.lang.ClassNotFoundException: Class U_BASICINFO not found



对于要导入到hive中的表,错误提示说找不到对应的.class和.jar文件




java.lang.Exception: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class U_BASICINFO not found
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:


462


)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:


522


)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class U_BASICINFO not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:


1895


)
at org.apache.sqoop.mapreduce.db.DBConfiguration.getInputClass(DBConfiguration.java:


394


)
at .....


原因分析:暂时不知道


解决方案:

感谢 user236575 ’s answer:  http://stackoverflow.com/questions/21599785/sqoop-not-able-to-import-table/21626010#21626010

默认sqoop在执行导入table过程中会生成对应的table的java文件和编译产生的.class和.jar文件,.java文件保存在sqoop/bin目录下,而class 和 jar文件则保存在/tmp/sqoop-hduser/compile/ 下相应的文件夹中。

我的解决方式是找到要导入表的class和jar文件,然后将他们拷贝到sqoop/bin目录下面和hdfs文件系统中的/user/USERNAM/ 目录下面(后期测试后,只要将.class和.jar拷贝到sqoop/bin目录下就可以成功import)。




cp

/tmp/sqoop-root/compile/某个临时文件夹包含需要的class和jar文件

/*


/opt/sqoop-1.4.4/bin/

hadoop fs -put /tmp/sqoop-root/compile/某个临时文件夹包含需要的class和jar文件/* /user/root/



错误3 org.apache.hadoop.mapred.file already exists exception:output directory hdfs://user/root/... ...


解决方案:

在执行过一次导入数据表命令后,当再次执行时,可能会出现这种错误,这是只要进入到hdfs中将对应的文件或者文件夹删除即可。


hadoop fs -

rm

/user/USERNAME

/*



错误4 sqoop导入数据时出现java.sql.SQLException: ORA-01017: invalid username/password; logon denied

  

原因:oracle 11对大小写敏感,所以需要关掉oracle数据库大小写敏感。


解决方法:

1.登入数据库,执行:alter system set sec_case_sensitive_logon=false

2.或者重新建立一个用户,用全部大写或者小写建立用户名或密码(由于sqoop中密码用户名必须大写,但是最终是按大写还是小写传入数据库的不清楚,所以可能需要尝试大写和小写两种方式后才知道)。


错误5 

INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s)



13/12/14 20:12:07 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:08 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:09 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:10 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:11 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:12 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:13 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 6 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
13/12/14 20:12:14 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032.


问题原因:

hadoop平台可能只启动了dfs没有启动yarn。


解决方法:

用start-all.sh启动hadoop或者用start-dfs.sh和start-yarn.sh组合启动hadoop。

 


使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案




推荐阅读
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • MapReduce统计每个用户的使用总流量
    1、原始数据2、使用java程序1)新建项目2)导包  hadoop-2.7.3\share\hadoop\mapreducehsfs的那些包commo ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 问题详情无奈于,在kafka里没有一个较好自带的webui。启动后无法观看,并且不友好。所以,需安装一个第三方的kafka管理工具为了简化开发者和服务工程师维护 ... [详细]
  • 本文整理了Java中org.apache.hadoop.mapreduce.lib.input.MultipleInputs.addInputPath()方法的一些代码 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
author-avatar
iz76mww
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有