当前位置: 首页 > article >正文

Sqoop导入数据(mysql---->>hive)

目录

  • 数据传输流程
  • 脚本
  • 报错和异常说明
    • 1. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
    • 2. 数据导入hive后显示NULL


数据传输流程

mysql---->>hdfs---->>hive
数据从mysql表中取出,放到hdfs上(由target-dir指定目录),所有数据转移完成后,将hdfs上传数据到hive表的对于目录下,并将该目录删除

脚本

import
--connect
jdbc:mysql://127.0.0.1:3306/sqoop
--username
root
--password
password
--as-textfile
--target-dir
/sqoop/student4
--delete-target-dir
--num-mappers
1
--bindir 
/opt/module/sqoop/lib
--table
student
--columns
id,name
--fields-terminated-by
,
--hive-import
--hive-table
student

报错和异常说明

1. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf

原因:缺少hive的配置文件
解决方案:将hive目录下的hive-common-3.1.2.jar移动到sqoop的lib目录下

2. 数据导入hive后显示NULL

原因:建hive表是设定的分割符不恰当,跟从mysql导入过来的数据的分隔符不一样,所以导致hive切分不了数据,于是查询为空,但是这个过程,不属于导入失败,所以导入脚本正常运行。
导入流程:mysql---->>hdfs---->>hive
解决方案
首先检查mysql内部的数据是否正确导入到hdfs中
一般而言,mysql中的数据切分是’,’
检查hdfs中的数据情况(执行以下代码)
sqoop脚本student

import
--connect
jdbc:mysql://127.0.0.1:3306/sqoop
--username
root
--password
password
--as-textfile
--target-dir
/sqoop/student3
--delete-target-dir
--num-mappers
1
--bindir 
/opt/module/sqoop/lib
--table
student
--columns
id,name
--fields-terminated-by
,

脚本执行代码

sqoop --options-file sqoop_student.txt

检查生成的hdfs文件

 hdfs dfs -cat /sqoop/student3/part-m-00000

分析
在这里插入图片描述
hdfs中,数据以’,‘进行分割,因此hdfs---->>hive中也需要设定’,'作为分隔符

hive数据库创建
数据库创建脚本
设定’,'作为分割符

create table student
(
    id   string,
    name string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

检查数据库情况

show create table student;

在这里插入图片描述
完整的导入脚本mysql---->>hdfs---->>hive

import
--connect
jdbc:mysql://127.0.0.1:3306/sqoop
--username
root
--password
password
--as-textfile
--target-dir
/sqoop/student4
--delete-target-dir
--num-mappers
1
--bindir 
/opt/module/sqoop/lib
--table
student
--columns
id,name
--fields-terminated-by
,
--hive-import
--hive-table
student

总结
可以修改分隔符为其他的形式’\t’ '\001’都可以,但是需要保证hdfs和hive中的分隔符统一


http://www.kler.cn/a/430021.html

相关文章:

  • 工作中常用springboot启动后执行的方法
  • 计算机视觉在科学研究(数字化)中的实际应用
  • 机器人的动力学前馈控制
  • spring6:2入门
  • “大数据+中职”:VR虚拟仿真实训室的发展前景
  • 柯桥职场商务英语生活英语口语培训外贸纺织口语学习
  • 传输层5——TCP可靠传输的实现(重点!!)
  • vue3中使用mqtt
  • 【Flux.jl】 卷积神经网络
  • 【CDH国产化替代案例】全面简化架构,降低成本,大幅提升数据处理效率
  • ruoyi的excel批量导入
  • Spring Cloud Alibaba:一站式微服务解决方案
  • 【Linux网络编程】第六弹---构建TCP服务器:从基础到线程池版本的实现与测试详解
  • E卷-最少交换次数
  • 距离与AoA辅助的三维测距算法,适用于自适应基站数量的情况。订阅专栏后可直接查看完整源代码
  • 2024-12-05OpenCV高级-滤波与增强
  • [MySQL基础](四)SQL--DQL
  • 媒体查询、浏览器一帧渲染过程
  • 【C++】6___友元
  • K8S OOM killer机制