栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

sqoop import 数据同步到hive的用法

sqoop import 数据同步到hive的用法

1、sqoop 的通用参数

2、import 的参数

3、第一个同步案例:简单同步
    sqoop import --connect jdbc:oracle:thin:@ip:1521/服务名 --username 用户名 --password 密码 --table F_L_C_PROJECT_PARAM --num-mappers 1  --fields-terminated-by "|" --hive-import --hive-table wxwy.f_l_c_project_param --hive-overwrite  --hive-drop-import-delims 

--connect jdbc:oracle:thin:@ip:1521/服务名 --username 用户名 --password 密码 连接的Oracle的连接串 (Oracle数据同步到hive)
table F_L_C_PROJECT_PARAM 是Oracle的表名,
--num-mappers 1 使用1一个map任务并行导入数据
--fields-terminated-by "|" 生成的HDFS文件字段间的以|为分隔符
--hive-table wxwy.f_l_c_project_param 入库目标
--hive-overwrite 对目标表的数据进行覆盖
--hive-drop-import-delims 将数据导入到hive时,去掉其中的n,r,01等特殊字符

对应的建表语句为

CREATE TABLE wxwy.F_L_C_PROJECT_PARAM
(   
UNIQUE_KEY STRING,
CITY_NAME STRING,
COMPANY_ID DOUBLE
 )
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
 WITH SERDEPROPERTIES ('field.delim'='|', 'serialization.format'='|') 
 TBLPROPERTIES ('serialization.null.format'='')
4、第二个案例:同步到分区表
   sqoop import --connect jdbc:oracle:thin:@ip:1521/服务名 --username 用户名 --password 用户密码 --table LTE_CELL_HIGHTRAFFIC_PRE --num-mappers 1  --fields-terminated-by "&" --hive-import --hive-table wxwy.lte_cell_hightraffic_pre --target-dir /user/hive/warehouse/wxwy.db/lte_cell_hightraffic_pre/partitionday=20220224

--connect jdbc:oracle:thin:@ip:1521/服务名 --username 用户名 --password 密码 连接的Oracle的连接串 (Oracle数据同步到hive)
table LTE_CELL_HIGHTRAFFIC_PRE 是Oracle的表名,
--num-mappers 1 使用1一个map任务并行导入数据
--fields-terminated-by "&" 生成的HDFS文件字段间的以&为分隔符
--hive-table wxwy.lte_cell_hightraffic_pre 目标表
--target-dir /user/hive/warehouse/wxwy.db/lte_cell_hightraffic_pre/partitionday=20220224 指定分区表的入库路径

对应的建表语句为

CREATE TABLE wxwy.lte_cell_hightraffic_pre 
(   
dn                          STRING,
sctpassoc_uk                STRING,
sctpassoc_name              STRING,
managedelement_uk           STRING,
sig_nbrsctpunavailable      DOUBLE,
start_time                  STRING,
end_time                    STRING,
rmuid                       STRING
 )
 PARTITIonED BY 
 (   
 partitionday STRING ) 
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '&' 
 WITH SERDEPROPERTIES ('field.delim'='&', 'serialization.format'='&') 
 TBLPROPERTIES ('serialization.null.format'='')
5、注意事项

注意1:源表的表名大写,目标表的表名小写。

注意2:建表时的分割符需要与文件分隔符保持一致。

注意3:如果需要修改表的分隔符,你直接把原先的表drop 掉重建是不起作用的,发现还是第一次建表时的分隔符。此时需要将HDFS 表名所在的目录删除,再重新建表,分隔符才会被真正修改过来。

注意4:sqoop import 后如果查询不到数据,首先查看HDFS文件有没有,hdfs hdfs -ls /user/hive/warehouse/wxwy.db/lte_cell_hightraffic_pre若lte_cell_hightraffic_pre下面没有文件,说明没有同步成功,核查问题并重新同步。若有文件,分区表还需要添加分区才能查到

alter table lte_cell_hightraffic_pre add partition(partitionday='20220224') location '/user/hive/warehouse/wxwy.db/lte_cell_hightraffic_pre/partitionday=20220224
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745092.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号