当前位置: 首页 > 工具软件 > HCatalog > 使用案例 >

hcatalog配置以及sqoop集成使用

樊宏义
2023-12-01

hcatalog配置以及sqoop集成使用

1、环境变量配置

vim ~/.bashrc

export HCAT_HOME=/usr/hive/hcatalog
export PATH=$PATH:$HCAT_HOME/bin

2、查看hive版本下载对应的hive-hcatalog放在hcatalog目录下

查看hive版本

hive --version

Hive 2.3.6

我的hive版本是2.3.6,则在maven库下载对应的jar包

https://mvnrepository.com/artifact/org.apache.hive.hcatalog/hive-hcatalog-core/2.3.6

放在如下目录

/usr/hive/hcatalog/share/hcatalog/hive-hcatalog-core-2.3.6.jar

3、sqoop使用hcatalog进行导数

sqoop export \
-Dmapreduce.job.queuename=test \
-Dmapreduce.job.max.split.locations=2000 \
--mapreduce-job-name task_name \
--connect jdbc:mysql://ip:3306/test \
--username user_name \
--password paasword \
--table mysql_tablename \
--columns name,sex,year,date \
--hcatalog-database default \
--hcatalog-table hive_table_name \
--hcatalog-partition-keys date \
--hcatalog-partition-values 20210101\
--input-null-string null \
--input-null-non-string '\\N' \
-m 3

参数解析:

-Dmapreduce.job.queuename 任务运行队列

-Dmapreduce.job.max.split.locations 小文件合并大小

--mapreduce-job-name 任务运行名

--connect jdbc:mysql://ip:3306/test mysql链接url

--username mysql用户名

--password mysql用户密码

--table mysql表名

--columns 需要导出的字段列表

--hcatalog-database hive表所在库

--hcatalog-table hive表名

--hcatalog-partition-keys hive表分区字段

--hcatalog-partition-values hive表分区字段值

--input-null-string null 字符串空值转换

--input-null-non-string '\\N' 非字符串空值转换

-m 3 任务并发

4、遇到的问题:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hive/hcatalog/mapreduce/HCatOutputFormat

at org.apache.sqoop.tool.BaseSqoopTool.validateHCatalogOptions(BaseSqoopTool.java:1655)

at org.apache.sqoop.tool.ExportTool.validateOptions(ExportTool.java:381)

at org.apache.sqoop.Sqoop.run(Sqoop.java:137)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)

at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)

at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)

at org.apache.sqoop.Sqoop.main(Sqoop.java:252)

Caused by: java.lang.ClassNotFoundException: org.apache.hive.hcatalog.mapreduce.HCatOutputFormat

at java.net.URLClassLoader.findClass(URLClassLoader.java:382)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 8 more

原因:

因为hive没有集成hcatalog相关的jar包,需要自行下载,按照第2步下载好放在hcatalog对应的目录下就可以了。

 类似资料: