使用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 ]; thenecho ">>>>>>>>>>>>>Oracle同步Hive数据库-执行成功!"
elseecho ">>>>>>>>>>>>>Oracle同步Hive数据库-执行失败!"
fi
命令相关属性说明:
- --connect:连接Oracle数据库的URL,例如jdbc:oracle:thin:@219.216.110.120:1521:orcl。
- --username:连接Oracle数据库的用户名,例如TEST1。
- --password:连接Oracle数据库的密码,例如test1。
- --table:要导入的Oracle表名,例如TEST1。
- --hive-table:在Hive中要创建或覆盖的表名,例如test1_test1。
- --fields-terminated-by:指定字段分隔符,例如'\t'(制表符)。
- --hive-import:启用Hive导入。
- --hive-overwrite:在导入数据时覆盖已存在的Hive表。
- --null-string:指定空值对应的字符串,例如'NULL'。
- --null-non-string:指定非空值对应的字符串,例如'NULL'。
三,执行脚本命令
我这里是使用的azkaban做的任务执行,也可以根据自己所需,sh xxx.sh执行脚本,如图:

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

分区时间是这样取值的:

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

四、问题修改
然后,检查命令没问题后,发现我使用的文本编辑器 NotePad++ 在编写命令时,
是在Windows(CR LF) 模式下的,转换为 Unix(LF) ,如图:

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


五、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
sqoop job --delete jobname
相关文章:
使用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,…...
NC Cloud uploadChunk文件上传漏洞复现
简介 NC Cloud是指用友公司推出的大型企业数字化平台。支持公有云、混合云、专属云的灵活部署模式。该产品uploadChunk文件存在任意文件上传漏洞。 漏洞复现 FOFA语法: app"用友-NC-Cloud" 访问页面如下所示: POC:/ncchr/pm/fb/…...
多标签页之间的通信
解决方案有两种思路:浏览器端解决方案、服务器端解决方案。 一、浏览器端解决方案: 思路:本地数据存储 <!-- index01.html --> <input id"name"> <input type"button" id"btn" value"…...
CI/CD -gitlab
目录 一、常用命令 二、部署 一、常用命令 官网:https://about.gitlab.com/install/ gitlab-ctl start # 启动所有 gitlab 组件 gitlab-ctl stop # 停止所有 gitlab 组件 gitlab-ctl restart # 重启所有 gitlab 组件 gitlab-ctl statu…...
AR眼镜_单目光波导VS双目光波导方案
双目光波导AR眼镜方案是一种创新的智能设备,可以在现实场景中叠加虚拟信息,提供增强的视觉体验和交互体验。光学显示方案是AR眼镜的核心技术之一,它对眼镜的性能和使用体验起着决定性的作用。 相比于单目AR眼镜,双目AR眼镜具有更好…...
golang 动态库 (buildmode)
目录 1. golang 动态库2. Golang 生成 C 动态库 .so 和静态库 .a2.1. 源代码2.2. 编译2.3. C2.4. 执行2.5. 如何生成静态库2.6. Go 调用 C 库2.6.1. 源代码 3. golang 语言使用动态库、调用动态链接库3.1. Go 插件系统3.2. 动态加载的优劣3.3. Go 的插件系统: Plugin3.4. 插件开…...
【mysql】2006 - Server has gone away
执行了一组插入语句 提示:2006 - Server has gone away; 2006-服务器已经消失; 消失去哪里了,被黑洞吞没了吗?!!! 网络问题 网络不稳定?断网了?检查网络连…...
动态规划43(Leetcode91解码方法)
代码: class Solution {public int numDecodings(String s) {int n s.length();if(s.charAt(0)0)return 0;if(n1)return 1;int[] dp new int[n1];dp[0]1;dp[1]1;for(int i2;i<n;i){if(s.charAt(i-2)1){dp[i]dp[i-2];}else if(s.charAt(i-2)2&&s.charA…...
STM32电源名词解析
先来简单了解一下各种电源端口的命名 VCC:Ccircuit 表示电路的意思, 即接入电路的电压 VDD:Ddevice 表示器件的意思, 即器件内部的工作电压。 VSS:Sseries 表示公共连接的意思,通常指电路公共接地端电压。 GND:在电…...
openAI宫斗感想 chatGPT带给客户巨大利益的就是王者。王者终究会归来。技术人员不要总是想掌握所有核心技术并用到极致。
1.我很喜欢乔布斯用的iCEO,每个人的工作都是临时的,打掉铁饭碗才会有效率。有铁饭碗就容易使人怠慢、傲慢、嚣张、低效率的消耗自己和别人的生命。日本人为什么对每个人每个客户都毕恭毕敬,感觉因为他的饭碗都掌握在周围的人手里。 日本文化…...
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
参考:https://www.cnblogs.com/sam-snow-v/p/15917898.html eclipse链接SQL Server出现问题 笔者使用Open JDK 17,SQL Server 2016,项目中使用JPA操作数据库。测试环境没问题,生产环境出现如题所示“驱动程序无法通过使用安全套接…...
性能调优第一步:服务器硬件如何选型
硬件选型是调优的第一步,无论你是自行购买服务器进行托管,还是租用服务器,或者购买云主机,都要面临的一个问题,那就是选择服务器的硬件配置,因为没有一台服务器能满足所有需求,解决所有的问题。…...
Codewhisperer 使用评价
最近亚⻢逊推出了一款基于机器学习的 AI 编程助手 Amazon CodeWhisperer,可以实时提供代码建议。在编写代码时,它会自动根据现有的代码和注释给出建议。Amazon CodeWhisperer 与GitHub Copilot类似,主要的功能有: 代码补全注释和文档补全代码…...
结合scss实现黑白主题切换
是看了袁老师的视频后,自己做了一下练习。原视频地址: b站地址https://www.bilibili.com/video/BV15z4y1N7jB/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_sourcec6cf63302f28d94ebc02cbedcecc57ea首先创建一个全局的scs…...
go-zero对数据库的操作
一、go-zerro中结合gorm来操作mysql数据库 1、这里我这就直接结合gorm-gen的方式来实现数据库操作,关于gorm-gen可以参考官网 2、创建一个数据库,并且创建一个表 -- ------------------------ -- 用户表 -- ------------------------ DROP TABLE IF EXISTS user; C…...
Mac git查看分支以及切换分支
查看本地分支 git branch 查看远程仓库分支 git branch -r 查看本地与远程仓库分支 git branch -a 切换分支 git checkout origin/dev/js...
Qt调起Mac“系统设置”面板
mac系统设置相关字段: Accessibility 面板相关 项目 URL Scheme Main x-apple.systempreferences:com.apple.preference.universalaccess Display x-apple.systempreferences:com.apple.preference.universalaccess?Seeing_Display Zoom x-apple.systempreference…...
小程序如何刷新当前页面
小程序可以通过调用wx.pageScrollTo()方法来实现刷新当前页面,该方法可以滚动页面并使页面滚动到顶部,从而达到刷新页面的效果。具体的操作步骤如下: 在需要刷新的页面中添加一个按钮或其他触发事件的元素。 绑定相应的点击事件,…...
OSI参考模型
目录 一. OSI参考模型的各层功能二. 网络排错三. 网络安全四. 实体、协议、服务和服务访问点SAP五. TCP IP体系结构 一. OSI参考模型的各层功能 \quad \quad \quad \quad 我们首先来看应用层实现的功能 每个字段的各种取值所代表的意思 \quad \quad 比如要保存的文件内容是ab…...
(c语言进阶)内存函数
一.memcpy(void* dest,void* src,int num) ,操作单位为字节,完成复制且粘贴字符串 1.应用 #include <stdio.h> #include<string.h> int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[20] { 0 };memcpy(arr2, arr1, 20);//从…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
