目录

写在最前:

1、核心的功能有两个

2、sqoop 版本说明

一、部署

1、安装前准备

2、创建用户和组

3、解压到指定目录

4、添加系统环境变量

5、创建 sqoop-env.sh 文件

5.1 创建

5.2 编辑 sqoop-env.sh

6、验证安装是否成功

6.1 执行 configure-sqoop 命令,如果报如下错误处理

6.2 sqoop-version 或者 sqoop version 验证

7、列出MySQL数据有哪些数据库

二、绿色部署 SQOOP

1、解压 HIGO 配置好的 Sqoop 包

2、建立新的软连接

3、删除系统环境变量 sqoop.sh

三、SQOOP 从 MySQL 导入到 Hive 之 Python 脚本

四、SQOOP 通过 MyCat 从 MySQL 导入数据到 Hive


写在最前:

Sqoop 是 Hive、HDFS、Hbase 等与 RDMBS(mysql 等)之间的沟通桥梁,主要通过 JDBC 与 RDMBS 进行交互。有两个版本Sqoop1 和 Sqoop2,Sqoop1 架构简单,使用非常方便(由于我使用的是 Sqoop1,所以本文主要介绍 Sqoop1),Sqoop2 是 C/S 架构,需要一个 Tomcat 部署 Server 端,并且提供了更多的访问方式:REST API、WEBUI、CLI、JAVA API 等,并且提供了更安全的访问方式(主要是密码不会是明文)。但是 Sqoop 主要在内网是用所以这都无所谓了。

1、核心的功能有两个

  • 导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统
  • 导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论

2、sqoop 版本说明

  1. 绝大部分企业所使用的 sqoop 的版本都是 sqoop1
  2. sqoop-1.4.6 或者 sqoop-1.4.7 它是 sqoop1
  3. sqoop-1.99.4----都是 sqoop2
  4. 此处使用 sqoop-1.4.7 版本 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

一、部署

1、安装前准备

# 下载地址:http://mirrors.hust.edu.cn/apache/
# 确保已经提前安装好hadoop、hive
# 下载mysql的连接jar包,下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.9-rc/mysql-connector-java-8.0.9-rc.jar

2、创建用户和组

# groupadd sqoop
# useradd -g sqoop sqoop
# passwd sqoop
Changing password for user sqoop.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

3、解压到指定目录

# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /hadoop/
# chown -R hadoop.hadoop /hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/
# 加入 mysql 驱动包到 lib 目录下
# 官网 https://dev.mysql.com/downloads/connector/j/5.1.html 下线支持高版本的jar文件
# cd /hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/
# mysql-connector-java-5.1.47.jar
# cd /hadoop
# mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop-1.4.7
# ln -s sqoop-1.4.7 sqoop
# chown hadoop.hadoop ./sqoop -R

4、添加系统环境变量

# vim /etc/profile.d/sqoop.shexport SQOOP_HOME=/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$SQOOP_HOME/bin:$PATH# source /etc/profile

5、创建 sqoop-env.sh 文件

5.1 创建

# cd /hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf
# cp sqoop-env-template.sh sqoop-env.sh

5.2 编辑 sqoop-env.sh

23 export HADOOP_COMMON_HOME=/hadoop/hadoop-2.7.1
26 export HADOOP_MAPRED_HOME=/hadoop/hadoop-2.7.1/share/hadoop/mapreduce
37 export HADOOP_CLIENT_OPTS="-Xmx3000m" ## 为什么在sqoop-env.sh 文件中会要求分别进行 common和mapreduce的配置呢???# 在apache的hadoop的安装中;四大组件都是安装在同一个hadoop_home中的# 但是在CDH, HDP中, 这些组件都是可选的。# 在安装hadoop的时候,可以选择性的只安装HDFS或者YARN,# CDH,HDP在安装hadoop的时候,会把HDFS和MapReduce有可能分别安装在不同的地方。

6、验证安装是否成功

6.1 执行 configure-sqoop 命令,如果报如下错误处理

# /hadoop/sqoop-1.4.7/bin/configure-sqoop
Warning: /hadoop/sqoop-1.4.7/../hbase does not exist! HBase imports will fail.
Please set $HBASE_HOME to the root of your HBase installation.
Warning: /hadoop/sqoop-1.4.7/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /hadoop/sqoop-1.4.7/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
Warning: /hadoop/sqoop-1.4.7/../zookeeper does not exist! Accumulo imports will fail.
Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.# 解决方法:
# vim /hadoop/sqoop-1.4.7/bin/configure-sqoop    ## 注释掉以下内容:
128 ### Moved to be a runtime check in sqoop.
129 #if [ ! -d "${HBASE_HOME}" ]; then
130 #  echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
131 #  echo 'Please set $HBASE_HOME to the root of your HBase installation.'
132 #fi
133
134 ### Moved to be a runtime check in sqoop.
135 #if [ ! -d "${HCAT_HOME}" ]; then
136 #  echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
137 #  echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
138 #fi
139
140 #if [ ! -d "${ACCUMULO_HOME}" ]; then
141 #  echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
142 #  echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
143 #fi
144 #if [ ! -d "${ZOOKEEPER_HOME}" ]; then
145 #  echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."
146 #  echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'
147 #fi# /hadoop/sqoop-1.4.7/bin/configure-sqoop

6.2 sqoop-version 或者 sqoop version 验证

# /hadoop/sqoop-1.4.7/bin/sqoop-version
19/06/24 16:54:29 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# /hadoop/sqoop-1.4.7/bin/sqoop version
19/06/24 16:54:35 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 

7、列出MySQL数据有哪些数据库

# /hadoop/sqoop-1.4.7/bin/sqoop list-tables --connect "jdbc:mysql://10.20.0.65:3220/higo_bim?useSSL=false" --username mycat_reader --password "w3FsIAQ7"
19/06/24 17:17:40 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
19/06/24 17:17:40 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
19/06/24 17:17:40 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
t_bim_follow_target
t_bim_like_target
t_bim_notify_msg
t_bim_notify_subscribe
t_bim_user_follow
t_bim_user_like
t_bim_user_motivate_log
t_bim_user_notify_list
t_bim_user_system_announcement_list

二、绿色部署 SQOOP

前提是必须统一配置好所谓的‘绿色包’,这样就可以一键解压使用了。

1、解压 HIGO 配置好的 Sqoop 包

# tar -jxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.bz2 -C /hadoop/

2、建立新的软连接

# cd /hadoop/
# ll
total 16
lrwxrwxrwx  1 hadoop hadoop   20 Feb 28  2016 hadoop -> /hadoop/hadoop-2.7.1
drwxr-xr-x 12 hadoop hadoop 4096 Feb 28  2016 hadoop-2.7.1
lrwxrwxrwx  1 hadoop hadoop   10 Sep  5  2016 hive -> hive-2.1.0
drwxr-xr-x  9 hadoop hadoop 4096 Jun 20 15:08 hive-2.1.0
lrwxrwxrwx  1 root   root     11 Jun 25 11:50 sqoop -> sqoop-1.4.7
drwxr-xr-x  9 hadoop hadoop 4096 Jun 25 10:58 sqoop-1.4.6.bin__hadoop-2.0.4-alpha
drwxr-xr-x  9 hadoop hadoop 4096 Jun 25 11:01 sqoop-1.4.7# rm -rf sqoop
# ln -s ssqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop
# chown hadoop.hadoop ./sqoop -R
# ll
total 16
lrwxrwxrwx  1 hadoop hadoop   20 Feb 28  2016 hadoop -> /hadoop/hadoop-2.7.1
drwxr-xr-x 12 hadoop hadoop 4096 Feb 28  2016 hadoop-2.7.1
lrwxrwxrwx  1 hadoop hadoop   10 Sep  5  2016 hive -> hive-2.1.0
drwxr-xr-x  9 hadoop hadoop 4096 Jun 20 15:08 hive-2.1.0
lrwxrwxrwx  1 hadoop hadoop   35 Feb 28  2016 sqoop -> sqoop-1.4.6.bin__hadoop-2.0.4-alpha
drwxr-xr-x  9 hadoop hadoop 4096 Jun 25 10:58 sqoop-1.4.6.bin__hadoop-2.0.4-alpha
drwxr-xr-x  9 hadoop hadoop 4096 Jun 25 11:01 sqoop-1.4.7

3、删除系统环境变量 sqoop.sh

# 因为存在多版本,所以不配置系统环境变量,上面已经添加了软连接,项目中直接绝对路径指定
# rm -rf /etc/profile.d/sqoop.sh
# source /etc/profile

三、SQOOP 从 MySQL 导入到 Hive 之 Python 脚本

四、SQOOP 通过 MyCat 从 MySQL 导入数据到 Hive

SQOOP 部署及导入数据到 Hive 的实际应用相关推荐

  1. sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...

    sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...

  2. sqoop从mysql导入hdfs_3.使用sqoop从mysql 导入数据到hdfs

    使用sqoop从mysql 导入数据到hdfs 注意: 需要将mysql的jdbc驱动包放到lib目录下 在conf目录中,执行 cp sqoop-env-template.sh sqoop-env. ...

  3. sqoop导入数据到hive中元数据问题

    简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...

  4. sqoop增量导入hive_使用pyspark模仿sqoop从oracle导数据到hive的主要功能(自动建表,分区导入,增量,解决数据换行符问题)...

    最近公司开始做大数据项目,让我使用sqoop(1.6.4版本)导数据进行数据分析计算,然而当我们将所有的工作流都放到azkaban上时整个流程跑完需要花费13分钟,而其中导数据(增量)就占了4分钟左右 ...

  5. sqoop从mysql导入数据到hdfs_利用Sqoop将数据从数据库导入到HDFS

    基本使用 如下面这个shell脚本: #Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号 CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1 ...

  6. Sqoop进行导入数据到Hive时报错:ERRORtool.ImportTool:Importfailed:java.io.IOException:java.lang.ClassNotFoundExc

    项目场景: 使用版本:Sqoop1.4.7.hive3.1.2 问题描述 在使用Sqoop进行MySQL数据导入到Hive的过程中出现一下错误提示.ERRORtool.ImportTool:Impor ...

  7. sqoop导入数据到hive

    一.从msyql导入到hive表中 创建hive表 sqoop import --connect  --username   --password   --query " SELECT * ...

  8. 批量导入数据到hive表中:假设我有60张主子表如何批量创建导入数据

    背景:根据业务需要需要把60张主子表批量入库到hive表. 创建测试数据: 1 def createBatchTestFile(): Unit = { 2 for (layer <- 0 to ...

  9. Hadoop sqoop从MySQL导入数据到HDFS

最新文章

  1. ibatis查询结果返回数组_在ibatis中传递和返回自定义数组对象,在java中传递和返回oracle...
  2. KafkaManager中Group下不显示对应Topic的解决方案
  3. 【转】SQL存储结构(页)
  4. Spring在Java领域的统治地位:86% 的Java开发者依赖它!
  5. Java POI操作Excle工具类
  6. 信息系统项目管理师-范围管理知识点
  7. 代码分析工具python_Python代码分析工具:PyChecker、Pylint
  8. fileinputstream_Java I/O 流之 FileInputStream
  9. Oracle 命名服务和监听程序
  10. 本科化学 研究生力学 毕业从事销售最后却转行算法
  11. fasthttp中的协程池实现
  12. 拓端tecdat|R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析
  13. JVM中也有并发GC,CMS机制
  14. 【JAVA视频压缩】-------轻量级视频压缩组件JAVE
  15. python实现添加商品至购物车
  16. 用hook android 微信,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。
  17. C++-Nuget包一键打包-上传工具开发分享
  18. k3cloud二次开例子
  19. 5VUSB微孔雾化器IC方案FS150C SOP8带自动扫频加湿器IC
  20. python_split()函数使用方法

热门文章

  1. [黑科技] WPS通过VB宏函数实现自编号功能
  2. Python到pyspark中的py-files的问题
  3. 计算机重启后桌面文件全部丢失,蓝屏后桌面文件丢失,电脑蓝屏桌面文件丢失...
  4. Python——matplotlib中的乱七八糟(一)【注释,图例,tick能见度,移动坐标轴】
  5. 基于taro开发微信小程序
  6. MBR与GPT分区的区别及使用注意事项(转载)
  7. 利用黑客手段一台手机“变”出千万台,新型诈骗技术曝光
  8. C语言scanf()和gets()及printf()和puts()的区别
  9. css3禅意花园脚本_如何创建无脚本CSS3工具提示
  10. 通过创建script标签来引入外部js