写点什么

hive 学习笔记之八:Sqoop,大厂 Offer 拿到手软啊

用户头像
极客good
关注
发布于: 刚刚
  1. [分区表](


)


  1. [分桶](


)


  1. [HiveQL 基础](


)


  1. [内置函数](


)


  1. [Sqoop](


)


  1. [基础 UDF](


)


  1. [用户自定义聚合函数(UDAF)](


)


  1. [UDTF](


)

[](

)关于 Sqoop


Sqoop 是 Apache 开源项目,用于在 Hadoop 和关系型数据库之间高效传输大量数据,本文将与您一起实践以下内容:


  1. 部署 Sqoop

  2. 用 Sqoop 将 hive 表数据导出至 MySQL

  3. 用 Sqoop 将 MySQL 数据导入到 hive 表

[](

)部署


  1. 在 hadoop 账号的家目录下载 Sqoop 的 1.4.7 版本:


wget https://mirror.bit.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz


  1. 解压:


tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz


  1. 解压后得到文件夹 sqoop-1.4.7.bin__hadoop-2.6.0,将 mysql-connector-java-5.1.47.jar 复制到 sqoop-1.4.7.bin__hadoop-2.6.0/lib 目录下

  2. 进入目录 sqoop-1.4.7.bin__hadoop-2.6.0/conf,将 sqoop-env-template.sh 改名为 sqoop-env.sh:


mv sqoop-env-template.sh sqoop-env.sh


  1. 用编辑器打开 sqoop-env.sh,增加下面三个配置,HADOOP_COMMON_HOME 和 HADOOP_MAPRED_HOME 是完整的 hadoop 路径,HIVE_HOME 是完整的 hive 路径:


export HADOOP_COMMON_HOME=/home/hadoop/hadoop-2.7.7


export HADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.7.7


export HIVE_HOME=/home/hadoop/apache-hive-1.2.2-bin


  1. 安装和配置完成了,进入 sqoop-1.4.7.bin__hadoop-2.6.0/bin,执行./sqoop version 查看 sqoop 版本,如下所示,可见是 1.4.7 版本(有些环境变量没配置会输出告警,在此先忽略):


[hadoop@node0 bin]$ ./sqoop version


Warning: /home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/bin/../../hbase does not exist! HBase imports will fail.


Please set $HBASE_HOME to the root of your HBase installation.


Warning: /home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/bin/../../hcatalog does not exist! HCatalog jobs will fail.


Please set $HCAT_HOME to the root of your HCatalog installation.


Warning: /home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/bin/../../accumulo does not exist! Accumulo imports will fail.


Please set $ACCUMULO_HOME to the root of your Accumulo installation.


Warning: /home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/bin/../../zookeeper does not exist! Accumulo imports will fail.


Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.


20/11/02 12:02:58 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7


Sqoop 1.4.7


git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8


Compiled by maugli on Thu Dec 21 15:59:58 STD 2017


  • sqoop 装好之后,接下来体验其功能

[](

)MySQL 准备


为了接下来的实战,需要把 MySQL 准备好,这里给出的 MySQL 的配置供您参考:


  1. MySQL 版本:5.7.29

  2. MySQL 服务器 IP:192.168.50.43

  3. MySQL 服务端口:3306

  4. 账号:root

  5. 密码:123456

  6. 数据库名:sqoop


关于 MySQL 部署,我这为了省事儿,是用 docker 部署的,参考[《群晖 DS218+部署 mysql》](


)

[](

)从 hive 导入 MySQL(export)


  • 执行以下命令,将 hive 的数据导入到 MySQL:


./sqoop export \


--connect jdbc:mysql://192.168.50.43:3306/sqoop \


--table address \


--username root \


--password 123456 \


--export-dir '/user/hive/warehouse/address' \


--fields-terminated-by ','

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
hive学习笔记之八:Sqoop,大厂Offer拿到手软啊