SQOOP 部署及导入数据到 Hive 的实际应用
目录
写在最前:
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 版本说明
- 绝大部分企业所使用的 sqoop 的版本都是 sqoop1
- sqoop-1.4.6 或者 sqoop-1.4.7 它是 sqoop1
- sqoop-1.99.4----都是 sqoop2
- 此处使用 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 的实际应用相关推荐
- sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...
sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...
- sqoop从mysql导入hdfs_3.使用sqoop从mysql 导入数据到hdfs
使用sqoop从mysql 导入数据到hdfs 注意: 需要将mysql的jdbc驱动包放到lib目录下 在conf目录中,执行 cp sqoop-env-template.sh sqoop-env. ...
- sqoop导入数据到hive中元数据问题
简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...
- sqoop增量导入hive_使用pyspark模仿sqoop从oracle导数据到hive的主要功能(自动建表,分区导入,增量,解决数据换行符问题)...
最近公司开始做大数据项目,让我使用sqoop(1.6.4版本)导数据进行数据分析计算,然而当我们将所有的工作流都放到azkaban上时整个流程跑完需要花费13分钟,而其中导数据(增量)就占了4分钟左右 ...
- sqoop从mysql导入数据到hdfs_利用Sqoop将数据从数据库导入到HDFS
基本使用 如下面这个shell脚本: #Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号 CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1 ...
- Sqoop进行导入数据到Hive时报错:ERRORtool.ImportTool:Importfailed:java.io.IOException:java.lang.ClassNotFoundExc
项目场景: 使用版本:Sqoop1.4.7.hive3.1.2 问题描述 在使用Sqoop进行MySQL数据导入到Hive的过程中出现一下错误提示.ERRORtool.ImportTool:Impor ...
- sqoop导入数据到hive
一.从msyql导入到hive表中 创建hive表 sqoop import --connect --username --password --query " SELECT * ...
- 批量导入数据到hive表中:假设我有60张主子表如何批量创建导入数据
背景:根据业务需要需要把60张主子表批量入库到hive表. 创建测试数据: 1 def createBatchTestFile(): Unit = { 2 for (layer <- 0 to ...
- Hadoop sqoop从MySQL导入数据到HDFS
最新文章
- ibatis查询结果返回数组_在ibatis中传递和返回自定义数组对象,在java中传递和返回oracle...
- KafkaManager中Group下不显示对应Topic的解决方案
- 【转】SQL存储结构(页)
- Spring在Java领域的统治地位:86% 的Java开发者依赖它!
- Java POI操作Excle工具类
- 信息系统项目管理师-范围管理知识点
- 代码分析工具python_Python代码分析工具:PyChecker、Pylint
- fileinputstream_Java I/O 流之 FileInputStream
- Oracle 命名服务和监听程序
- 本科化学 研究生力学 毕业从事销售最后却转行算法
- fasthttp中的协程池实现
- 拓端tecdat|R语言多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析
- JVM中也有并发GC,CMS机制
- 【JAVA视频压缩】-------轻量级视频压缩组件JAVE
- python实现添加商品至购物车
- 用hook android 微信,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。
- C++-Nuget包一键打包-上传工具开发分享
- k3cloud二次开例子
- 5VUSB微孔雾化器IC方案FS150C SOP8带自动扫频加湿器IC
- python_split()函数使用方法
热门文章
- [黑科技] WPS通过VB宏函数实现自编号功能
- Python到pyspark中的py-files的问题
- 计算机重启后桌面文件全部丢失,蓝屏后桌面文件丢失,电脑蓝屏桌面文件丢失...
- Python——matplotlib中的乱七八糟(一)【注释,图例,tick能见度,移动坐标轴】
- 基于taro开发微信小程序
- MBR与GPT分区的区别及使用注意事项(转载)
- 利用黑客手段一台手机“变”出千万台,新型诈骗技术曝光
- C语言scanf()和gets()及printf()和puts()的区别
- css3禅意花园脚本_如何创建无脚本CSS3工具提示
- 通过创建script标签来引入外部js