sqoop问题汇总记录

此篇博客仅记录在使用sqoop时遇到的各种问题。持续更新,有问题评论区一起探讨,写得有不足之处见谅。

Oracle_to_hive

  1. main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")

日期:20241031

原因分析:Sqoop 在执行导入时依赖了 Hive,Hive 启用了 Log4j 的 JMX 功能,在没有足够权限的情况下尝试注册 MBeans 时被阻止,从而引发该错误

解决方法:

修改jdk的文件找到:jdk安装目录/jre/lib/security/java.policy

具体配置如下:在文件中添加如下内容

permission javax.management.MBeanTrustPermission "register";

  1. org.apache.atlas.AtlasException: Failed to load application yaml当集群配置了atlas时,可能会遇到此问题

日期:20241031

原因分析:无法在classpath提及的目录中找到application-atlas.yml文件

将找到的配置文件,拷贝到classpath起止一个地址中:

  1. cannot recognize input near ',' 'gcrq_month' ',' in column type

24/10/31 17:05:16 ERROR ql.Driver: FAILED: ParseException line 1:895 cannot recognize input near ',' 'gcrq_month' ',' in column type

org.apache.hadoop.hive.ql.parse.ParseException: line 1:895 cannot recognize input near ',' 'gcrq_month' ',' in column type。sqoop只支持单分区问题

日期:20241031

原因分析:导入数据到hive表时,使用了多个分区字段

源码级别解析可以看:Sqoop 数据导入多分区Hive解决方法_sqoop import 多个分区-CSDN博客

换种简单的解决方式,通过HCatalog解决,先查看是否安装HCatalog

然后参数使用HCatalog:

--split-by MINUTE \

--hive-import \

--hive-table ods_pre_dat_dcsj_time \

--target-dir /user/sqoop/hive/oracle_to_hive/ods_pre_dat_dcsj_time \

--delete-target-dir \

-- --hive-drop-import-delims \
--hcatalog-database dw \
--hcatalog-table ods_pre_dat_dcsj_time \
--hcatalog-storage-stanza 'stored as orc' \
--hcatalog-partition-keys "gcrq_year,gcrq_month,gcrq_day" \
--hcatalog-partition-values "{gcrq_year},{gcrq_month},${gcrq_day}" \

--num-mappers 3

  1. FAILED: HiveAuthzPluginException Error getting permissions for hdfs://udh/user/sqoop/hive/oracle_to_hive/ods_pre_dat_dcsj_time : Unauthorized connection for super-user: hive from IP /xxx.xxx.xxx.xxx

日期:20241101

原因分析:猜测权限问题,其中xxx.xxx.xxx.xxx为我提交sqoop命令所在的服务器,"hive "为我在服务器上以hive用户身份提交sqoop。我在sqoop命令中指定存放数据的临时目录为:--target-dir /user/sqoop/hive/oracle_to_hive/ods_pre_dat_dcsj_time,查看一下此目录的权限

发现存放临时数据目录下是有数据文件的,再看看它的父目录:

尝试用hdfs dfs -chown修改其父目录权限,改为拥有者为hive。再次执行,还是报错。

转换下思路,难道是hive的权限限制问题?Unauthorized connection for super-user: hive from IP /10.81.35.162,大白话翻译:超级用户的未经授权的连接。而在 Hive 中,hive 用户通常是一个默认的超级用户,具备访问和操作 Hive 的所有权限

在hdfs的core-site文件中配置:

<property>

<name>hadoop.proxyuser.hive.groups</name>

<value>*</value> <!-- 允许所有用户组访问 -->

</property>

<property>

<name>hadoop.proxyuser.hive.hosts</name>

<value>xxx.xxx.xxx.xxx</value> <!-- 允许特定 IP 地址访问 ,多ip逗号分隔-->

</property>

ambari修改的话一般在HDFS的自定义core-site中,改为以上配置后需要先重启HDFS再重启HIve

相关推荐
B站计算机毕业设计超人1 天前
计算机毕业设计Python+百度千问大模型微博舆情分析预测 微博情感分析可视化 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hive·hadoop·python·毕业设计·知识图谱·课程设计
王九思1 天前
大数据查询工具Hive介绍
大数据·hive·hadoop
王九思1 天前
Hive Hook 机制
数据仓库·hive·hadoop
lipWOFb2 天前
扩展卡尔曼滤波soc估算 基于EKF算法的锂电池SOC 卡尔曼滤波估计电池soc ,simul...
hive
走遍西兰花.jpg2 天前
hive如何使用python脚本
数据仓库·hive·hadoop·python
德彪稳坐倒骑驴2 天前
Hive电商分析项目 Azkaban自动化运行
hive·hadoop·自动化
yumgpkpm2 天前
Cloudera CDP/CMP华为鲲鹏版下 Spark应用加速,华为昇腾芯片的实用配置过程
hive·hadoop·elasticsearch·flink·kafka·hbase·cloudera
m0_748252382 天前
ervlet 编写过滤器
数据仓库·hive·hadoop
talle20213 天前
Hadoop分布式资源管理框架【Yarn】
大数据·hadoop·分布式
yumgpkpm3 天前
基于GPU的Spark应用加速 Cloudera CDP/华为CMP鲲鹏版+Nvidia英伟达联合解决方案
大数据·数据库·人工智能·hadoop·elasticsearch·spark·cloudera