【华为云技术分享】使用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
相关文章
- mysql数据库报错1146_关于MySQL报错:[ERR] 1146
- 掌握 MySQL 日志查看技巧(mysql查看log)
- MySQL全库快速导入实践指南(mysql全库导入)
- MySQL数据写入缓存技术优化(mysql写入缓存)
- MySQL实现数据统计总和技术(mysql统计总和)
- 调查:服务器MySQL无法启动原因(服务器mysql无法启动)
- MySQL快速导入大批量数据(mysql大量数据导入)
- yum升级MySQL:提升数据库性能!(yum升级mysql)
- Mysql多版本共存技术实现方法(mysql多版本共存)
- 类型MySQL中的二进制数据类型探秘(mysql二进制数据)
- MySQL权威指南:第二版:超越技术极限!(mysql权威指南第二版)
- 学会 MySQL 导入语句,你离高效数据库管理只差一步!(mysql导入语句)
- MySQL预处理技术:安全高效的编程利器(mysql预处理)
- MySQL中事务保证数据库操作正确性(mysql中事务是干啥的)
- 慢慢来csv格式导入MySQL数据库(csv导入mysql慢)
- 缓存技术提升MySQL性能的奇迹(cache_mysql)
- Ubuntu系统安装MySQL数据库的指南(buntu安装mysql)
- MySQL下载需注册如何快速下载及安装(mysql下载必须注册吗)
- 深入了解MySQL XML数据库,优化数据存储与检索(mysql xml数据库)