【华为云技术分享】使用sqoop导入mysql数据到hive中
Sqoop 是一个数据转储工具,它能够将 hadoop HDFS 中的数据转储到关系型数据库中,也能将关系型数据库中的数据转储到 HDFS 中。
Apache Sqoop,是"SQL to Hadoop"的意思,可以实现 Hadoop 和几乎任何外部结构化数据存储间
的双向数据传输。 Apache Sqoop 旨在协助 RDBMS 与 Hadoop 之间进行高效的大数据交流。
用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系
统 (如 HBase 和 Hive)中;同时也可以把数据从 Hadoop 系统里抽取并导出到关系型数据库
里。
2) Sqoop 通过 hadoop 的 mapreduce 把数据从关系型数据库中导入数据到 HDFS。 Sqoop
架构非常简单,其整合了 Hive、 Hbase 和 Oozie,通过 map-reduce 任务来传输数据,从而提供并发
特性和容错。
Sqoop的典型应用场景是 将白天的生产的数据库中的数据在晚间导入Hive数据仓库进行分析
1、下载并安装Sqoop
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
mv sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz sqoop-1.4.7.bin
2、设置Sqoop配置文件
cd %SQOOP_HOME%
cp conf/sqoop-env-template.sh /conf/sqoop-env.sh
在sqoop-env.sh中添加如下配置:
export HADOOP_PREFIX=/opt/hadoop-2.8.0
export HADOOP_HOME=${HADOOP_PREFIX}
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_YARN_HOME=${HADOOP_PREFIX}
# Native Path
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib/native"
# Hadoop end
#Hive
export HIVE_HOME=/opt/hive-2.3.3
export PATH=$HIVE_HOME/bin:$PATH
#HBase
export HBASE_HOME=/opt/hbase-2.1.0
export PATH=$HBASE/bin:$PATH
#export ZOOCFGDIR
export ZOOCFGDIR=/opt/zookeeper-3.4.13/conf/
请根据实际情况修改路径
将MySQL需要用到的jar包拷贝至$SQOOP_HOME/lib下
cp mysql-connector-java-8.0.12.jar $SQOOP_HOME/lib
3、配置环境变量
vim /etc/profile
export SQOOP_HOME=/opt/sqoop-1.4.7.bin
export PATH=$SQOOP_HOME/bin:$PATH
4、测试Sqoop
#测试MySQL连接
sqoop list-databases --connect jdbc:mysql://172.168.248.8/student --username root –P
#检验SQL语句
sqoop eval --connect jdbc:mysql://172.168.248.8/student --username root--password ******** \
--query "SELECT id,name,class,suject,score \
FROM student \
WHERE score >=90"
通过以上语句可以确认sqoop是否正常运行,连接mysql是否正常
5、从Mysql导入表数据至HDFS
sqoop import --connect jdbc:mysql://172.16.248.8/student --username root --password ******* --table student --warehouse-dir /myschool -m 1
–warehouse-dir或–target-dir 指定目录
6、从Mysql导入表数据至Hive
sqoop import --connect jdbc:mysql://172.168.248.8/studeng --username root --password ******** --table student --hive-import --hive-database default --create-hive-table -m 1
–create-hive-table:当表在Hive不存在时,使用该参数在指定数据库中添加同名表
作者:华为云MVP hellfire
相关文章
- enterprise library mysql_enterpriseLibrary连接MySQL数据库
- MySQL中的索引分区技术(mysql索引分区)
- 使用Excel快速导入MySQL数据库(excle导入mysql)
- MySQL导入表格:实现数据快速转移(mysql导入表格)
- MySQL转换为时间戳的技术指南(mysql转为时间戳)
- MySQL数据库技术实验:解锁更多数据可能性(mysql数据库技术实验)
- 快速构建MySQL数据库:如何导入大批量数据(mysql导入大批量数据)
- MySQL 性能监控:实时跟踪性能指标。(mysql性能监控)
- 调整MySQL技术调整实现数据库长度优化(mysql长度)
- MySQL双机同步技术实现数据安全(mysql双机同步)
- 掌握MySQL数据库,开启博客之旅(mysql数据库博客)
- MySQL如何清空表中所有数据(mysql中清空表)
- MySQL远程使用:掌握基础知识,远程操作Mysql数据库。(mysql远程使用)
- 下载最新传智播客MySQL教程,轻松掌握数据库技术!(传智播客mysql下载)
- MySQL连接查询:实现数据最佳技术(mysql 的连接查询)
- MySQL中使用Hash索引的优缺点(mysql hash索引)
- 阿里携手MySQL开源,创新体验更自由(阿里mysql开源)
- 实现高效查询,轻松掌握Mysql分页查询技巧大揭秘(mysql中做分页查询)
- MySQL中time类型详解(mysql中time型号)
- cvs文件快速导入MySQL数据库(cvs如何导入mysql)
- 使用MySQL实现两表关联插入,快速高效完成数据导入(mysql 两表关联插入)
- Ceph技术助力MySQL存储架构变革(Ceph和mysql)
- 使用ado技术查看MySql数据库(ado查看mysql)
- 对比MySQL三个比较函数,帮你更好地理解数据查询(mysql 三者比较函数)
- 如何在不同版本的MySQL之间进行数据导入(mysql不同版本导数据)
- 深入了解MySQL不等索引的使用情况(mysql不等索引的情况)