使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题

这篇具有很好参考价值的文章主要介绍了使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建一张Hive测试表

create table test_oracle_hive(
    id_code      string
   ,phone_code    string
   ,status    string
   ,create_time    string
) partitioned by(partition_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

创建分区字段partition_date,指定分隔符“,”

二、编写Sqoop数据同步命令

我这里使用的是shell脚本的方式:

#!/bin/bash
export LANG="en_US.UTF-8"
part_date=etl_date=`date "-d +0 day" "+%Y%m%d"`
echo "当前分区时间为: $part_date"
sqoop import -D mapred.job.queue.name=root.realtime_queue --connect jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1521/testdb --username test --password test01 --table APP.TEST_ORACLE_HIVE_TWO --hive-import --hive-partition-key partition_date --hive-partition-value $part_date --hive-table xxx.test_data_oracle_hive --fields-terminated-by ',' --null-string '\\N' --null-non-string '\\N' --hive-overwrite -m 1
if [ $? -eq 0 ]; then
    echo ">>>>>>>>>>>>>Oracle同步Hive数据库-执行成功!" 
else
    echo ">>>>>>>>>>>>>Oracle同步Hive数据库-执行失败!"
fi

命令相关属性说明:

  1. --connect:连接Oracle数据库的URL,例如jdbc:oracle:thin:@219.216.110.120:1521:orcl。
  2. --username:连接Oracle数据库的用户名,例如TEST1。
  3. --password:连接Oracle数据库的密码,例如test1。
  4. --table:要导入的Oracle表名,例如TEST1。
  5. --hive-table:在Hive中要创建或覆盖的表名,例如test1_test1。
  6. --fields-terminated-by:指定字段分隔符,例如'\t'(制表符)。
  7. --hive-import:启用Hive导入。
  8. --hive-overwrite:在导入数据时覆盖已存在的Hive表。
  9. --null-string:指定空值对应的字符串,例如'NULL'。
  10. --null-non-string:指定非空值对应的字符串,例如'NULL'。

三,执行脚本命令

我这里是使用的azkaban做的任务执行,也可以根据自己所需,sh xxx.sh执行脚本,如图:

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

任务执行完成,发现数据有乱码:

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

分区时间是这样取值的:

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

在服务器单独执行命令,发现是文件生成的时候乱码的:

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

四、问题修改

然后,检查命令没问题后,发现我使用的文本编辑器 NotePad++ 在编写命令时,

是在Windows(CR LF) 模式下的,转换为 Unix(LF) ,如图:

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

然后,重新执行脚本,数据就恢复正常了

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

sqoop抽取oracle数据到hive,hive,sqoop,oracle,Oracle同步Hive,Sqoop属性解析

五、Sqoop常用命令

导入数据:

sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table users --target-dir /user/hadoop/data

导出数据:

sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password root --table users --export-dir /user/hadoop/data

查询Job列表:

sqoop job --list

查询Job详细信息:

sqoop job --show jobname

执行Job

sqoop job --exec jobname

删除Job文章来源地址https://www.toymoban.com/news/detail-758750.html

sqoop job --delete jobname

到了这里,关于使用Sqoop命令从Oracle同步数据到Hive,修复数据乱码 %0A的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【hive】hive修复分区或修复表 以及msck命令的使用

    之前hive里有数据,后面存储元数据信息的 MySQL 数据库坏了,导致hive元数据信息丢失,但是hdfs上hive表的数据并没有丢失,重新建表后查看hive分区没有,数据也没有。 MSCK REPAIR TABLE 是在 Hive 中用于修复分区表(Partitioned Table)元数据的命令。在 Hive 中,当您向分区表添加、删

    2024年02月06日
    浏览(35)
  • 使用sqoop从Hive导出数据到MySQL

    1、启动hadoop:start-all.sh。 2、启动mysql:support-files/mysql.server start。 3、启动hive:hive。 4、在hive中创建表。 (学生信息:学号xh,姓名xm)xsxx: create table bigdata03.xsxx ( xh String, xm String ) row format delimited fields terminated by \\\',\\\'stored as textfile; (课程信息:课程号kch,学号xh,课程名称

    2024年02月11日
    浏览(53)
  • 使用Sqoop将Hive数据导出到TiDB

    关系型数据库与大数据平台之间的数据传输之前写过一些 使用Sqoop将数据在HDFS与MySQL互导 使用Sqoop将SQL Server视图中数据导入Hive 使用DataX将Hive与MySQL中的表互导 使用Sqoop将Hive数据导出到TiDB虽然没写过,但网上一堆写的,那为什么我要专门写一下呢? 我发现一些大家可能会忽

    2024年01月23日
    浏览(47)
  • 使用sqoop将hive数据库导入至mysql

    前言:本文由实现此博客过程中遇到的问题及解决办法整理而成。博客:淘宝双11数据分析与预测课程案例-步骤三:将数据从Hive导入到MySQL_厦大数据库实验室 数据 数据放在 /usr/local/data/comment.csv 数据来源于:Amazon Reviews: Unlocked Mobile Phones | Kaggle 大数据开发环境 软件 版本 had

    2024年02月05日
    浏览(45)
  • 业务数据同步工具介绍和使用(Sqoop、Datax、Canal、MaxWell、Flink CDC)

    介绍 Sqoop : SQ L-to-Had oop ( Apache已经终止Sqoop项目 ) 用途:把关系型数据库的数据转移到HDFS(Hive、Hbase)(重点使用的场景);Hadoop中的数据转移到关系型数据库中。Sqoop是java语言开发的,底层使用 mapreduce 。 需要注意的是,Sqoop主要使用的是Map,是数据块的转移,没有使

    2024年02月15日
    浏览(81)
  • Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法

    🎉欢迎来到Java学习路线专栏~Oracle数据库SQL*Plus命令行执行SQL语句时,中文乱码报错解决方法 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java学习路线 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹

    2024年01月22日
    浏览(57)
  • 【Sqoop】Sqoop的使用(连接MySQL、Hive)

    使用 sqoop 前需要启动 Hadoop ,检查 Hadoop 的运行状态,我们这里使用的是伪分布式 Sqoop 连接 MySQL 需要 MySQL 的 jar 包,吧 jar 包放置 Sqoop 的 lib 目录下 先测试 Sqoop 能否连接 MySQL 查看存在的数据库 结果中的警告是因为没有配置 Hbase ,忽略即可 为了连接 HIve 我们需要将 Hive 组件

    2024年02月07日
    浏览(58)
  • [大数据 Sqoop,hive,HDFS数据操作]

    目录 🥗前言: 🥗实现Sqoop集成Hive,HDFS实现数据导出 🥗依赖: 🥗配置文件: 🥗代码实现: 🥗控制器调用: 🥗Linux指令导入导出: 🥗使用Sqoop将数据导入到Hive表中。例如: 🥗使用Sqoop将数据从Hive表导出到MySQL中。例如: 🥗使用Sqoop将数据导入到HDFS中。例如: 🥗使用Sqoop将数据

    2024年02月09日
    浏览(49)
  • Sqoop导出hive/hdfs数据到mysql中---大数据之Apache Sqoop工作笔记006

    然后我们看看数据利用sqoop,从hdfs hbase中导出到mysql中去   看看命令可以看到上面这个   这里上面还是mysql的部分,然后看看 下面--num-mappers 这个是指定mapper数 然后下面这个export-dir这里是,指定hdfs中导出数据的目录 比如这里指定的是hive的一个表/user/hive/warehouse/sttaff_hive 然后下

    2024年02月03日
    浏览(47)
  • Sqoop数据导入到Hive表的最佳实践

    将数据从关系型数据库导入到Hive表是大数据领域中的常见任务之一,Sqoop是一个强大的工具,可以帮助实现这一目标。本文将提供Sqoop数据导入到Hive表的最佳实践,包括详细的步骤、示例代码和最佳建议,以确保数据导入过程的高效性和可维护性。 Sqoop是一个开源工具,用于

    2024年01月23日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包