使用sqoop导入导出mysql、hdfs、hive出现的问题
来源:互联网 发布:剑三成男免费捏脸数据 编辑:程序博客网 时间:2024/06/05 04:58
问题1:java.lang.ClassNotFoundException: Class widgets not found
执行的命令:
sqoop import --connect jdbc:mysql://localhost:3306/hadoopguide --username root --password root --table widgets //其中,hadoopguide是数据库名称,root、root是数据名的用户名和密码,widgets是hadoopguide下的一个数据表
错误信息:
java.lang.Exception: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class widgets not found
如下图:
错误原因:
因为在使用sqoop import命令时,生成的java文件会默认产生在当前目录下,而产生的.jar文件和.class文件会默认存放在/tmp/sqoop-/compile下,两者不在同一文件目录下,导致错误。所以,我们需要将java文件,.jar文件和.class文件放在同一目录下。
解决方法:
为了使数据不存放在根目录下,将产生的文件放在/opt/Hadoop/sqoop-1.4.6/tmp下,我们需要切换至/opt/Hadoop/sqoop-1.4.6/tmp目录下,使用如下命令:
cd /opt/Hadoop/sqoop-1.4.6/tmpsqoop import --bindir ./ --connect jdbc:mysql://localhost:3306/hadoopguide --username root --password root --table widgets
执行后结果如下:
查看HDFS,发现mysql的widgets表格内容已经导入:
参考网址:
https://stackoverflow.com/questions/21599785/sqoop-not-able-to-import-table/21626010#21626010
问题2:Output directory hdfs://hadoop2m:user/lina/widgets already exists
执行的命令:
sqoop import --connect jdbc:mysql://localhost:3306/hadoopguide --username root --password root --table widgets //其中,hadoopguide是数据库名称,root、root是数据名的用户名和密码,widgets是hadoopguide下的一个数据表
错误信息:
Error tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://hadoop2m:user/lina/widgets already exists
如下图:
错误原因:
在问题1中已经提到,这条命令之所以执行错误的原因是生成的java文件,.jar文件和.class文件不在同一目录中,所以导致导入失败,但是在命令执行开始的时候,就已经在hdfs的/user/lina目录下新建了一个widgets的目录,所以再次执行这个命令时会提示这个错误
解决方法:
使用下面的命令将HDFS中的这个文件夹删除即可:
hadoop fs -rm -r /user/lina/widgets
问题3:Field names must be greater than 0
执行的命令:
sqoop export --connect jdbc:mysql://localhost:3303/hadoopguide --username root --password root --table widget2 -m 1 --class-name WidgetHolder --jar-file widgets.jar --export-dir widget_sequence_files
错误信息:
Error sqoop.Sqoop: Got exception running Sqoop: java.lang.IllegalArgumentException: Field names must be greater than 0
如下图:
错误原因:
表名称写错,在mysql中创建的表名称为widgets2,但是在此命令中--table widget2
使用的表是widget2,表明少了个s。
解决方法:
将上述命令中的--table widget2
改成--table widgets2
即可。
- 使用sqoop导入导出mysql、hdfs、hive出现的问题
- 工作中,sqoop导入导出hive,mysql 出现的问题.
- [总结]----sqoop 同 MySQL 和 HDFS,Hive 导入导出
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 使用sqoop实现关系型数据库、HDFS、Hive之间数据的导入导出
- mysql 导入hdfs、hive、hbase sqoop使用方法
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- Sqoop_详细总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入、导出
- 通过sqoop 实现hdfs与mysql的数据导入导出
- 大数据基础(二)hadoop, mave, hbase, hive, sqoop在ubuntu 14.04.04下的安装和sqoop与hdfs,hive,mysql导入导出
- Sqoop进行MySQL和Hive间的导入导出操作
- 通过sqoop进行mysql与hive的导入导出
- sqoop实现mysql到hive数据库的导入导出
- 测试sqoop从mysql到hive的导入导出
- sqoop从mysql导入hdfs数据过程遇到的问题
- Sqoop数据迁移,工作机制,sqoop安装(配置),Sqoop的数据导入,导入表数据到HDFS,导入关系表到HIVE,导入到HDFS指定目录,导入表数据子集,按需导入,增量导入,sqoop数据导出
- sqoop 从mysql导入hive的字段名称问题
- 创建ssm项目
- 方法
- tomcat启动https的配置
- 数据库入门---增删改查
- 【剑指offer】二叉树的深度
- 使用sqoop导入导出mysql、hdfs、hive出现的问题
- wx-charts 微信小程序图表插件
- 初入java
- STC15系列读取DS18B20温度传感器串口显示代码
- Cow Exhibition (01 背包变形)
- 软考网络工程师上午考试知识点总结整理
- 计算机视觉(图像分类、检测、分割)数据集和比赛
- Android布局(相对布局)
- springmvc集成aop记录操作日志