sqoop mysql hadoop_使用sqoop将mysql数据导入到hadoop
hadoop的安装配置这里就不讲了。
Sqoop的安装也很简单。
完成sqoop的安装后,可以这样测试是否可以连接到mysql(注意:mysql的jar包要放到 SQOOP_HOME/lib 下):
sqoop list-databases --connect jdbc:mysql://192.168.1.109:3306/ --username root --password 19891231
结果如下
即说明sqoop已经可以正常使用了。
下面,要将mysql中的数据导入到hadoop中。
我准备的是一个300万条数据的身份证数据表:
先启动hive(使用命令行:hive 即可启动)
然后使用sqoop导入数据到hive:
sqoop import --connect jdbc:mysql://192.168.1.109:3306/hadoop --username root --password 19891231 --table test_sfz --hive-import
sqoop 会启动job来完成导入工作。
完成导入用了2分20秒,还是不错的。
在hive中可以看到刚刚导入的数据表:
我们来一句sql测试一下数据:
select * from test_sfz where id < 10;
可以看到,hive完成这个任务用了将近25秒,确实是挺慢的(在mysql中几乎是不费时间),但是要考虑到hive是创建了job在hadoop中跑,时间当然多。
接下来,我们会对这些数据进行复杂查询的测试:
我机子的配置如下:
hadoop 是运行在虚拟机上的伪分布式,虚拟机OS是ubuntu12.04 64位,配置如下:
TEST 1 计算平均年龄
测试数据:300.8 W
1. 计算广东的平均年龄
mysql:select (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz where address like '广东%';
用时: 0.877s
hive:select (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz where address like '广东%';
用时:25.012s
2. 对每个城市的的平均年龄进行从高到低的排序
mysql:select address, (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz GROUP BY address order by ageAvge desc;
用时:2.949s
hive:select address, (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz GROUP BY address order by ageAvge desc;
用时:51.29s
可以看到,在耗时上面,hive的增长速度较mysql慢。
TEST 2
测试数据:1200W
mysql 引擎: MyISAM(为了加快查询速度)
导入到hive:
1. 计算广东的平均年龄
mysql:select (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 where address like '广东%';
用时: 5.642s
hive:select (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 where address like '广东%';
用时:168.259s
2. 对每个城市的的平均年龄进行从高到低的排序
mysql:select address, (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 GROUP BY address order by ageAvge desc;
用时:11.964s
hive:select address, (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 GROUP BY address order by ageAvge desc;
用时:311.714s
TEST 3
测试数据:2000W
mysql 引擎: MyISAM(为了加快查询速度)
导入到hive:
(这次用的时间很短!可能是因为TEST2中的导入时,我的主机在做其他耗资源的工作..)
1. 计算广东的平均年龄
mysql:select (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 where address like '广东%';
用时: 6.605s
hive:select (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 where address like '广东%';
用时:188.206s
2. 对每个城市的的平均年龄进行从高到低的排序
mysql:select address, (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 GROUP BY address order by ageAvge desc;
用时:19.926s
hive:select address, (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 GROUP BY address order by ageAvge desc;
用时:411.816s
sqoop mysql hadoop_使用sqoop将mysql数据导入到hadoop相关推荐
- mysql8导入 psc 没有数据_新特性解读 | MySQL 8.0.22 任意格式数据导入
作者:杨涛涛 资深数据库专家,专研 MySQL 十余年.擅长 MySQL.PostgreSQL.MongoDB 等开源数据库相关的备份恢复.SQL 调优.监控运维.高可用架构设计等.目前任职于爱可生, ...
- php实现sql server数据导入到mysql数据库_php实现SQL Server数据导入Mysql数据库(示例)...
php将mssql的数据导入到mysql数据库中,代码: 代码示例: //连接SQL server数据库 $conn=mssql_connect("localhost"," ...
- mysql文档批处理去重_数据导入经验总结
一.导入mysql数据前期设置 1.建库和表统一编码设置为UTF8,根据数据中的编码来修改(也可以将数据全部转换为utf-8格式,小文件可用notepad来修改编码,大文件可用 LogViewPro ...
- mysql rrd_将RRD数据库中数据导入MYSQL中
一.RRD数据库及RRDTOOL简介 意为Round Robin Database.设计理念为按照round-robin的方式进行存储,在一个周期之后(可自己定义),新的数据会覆盖掉原来的数据.所以R ...
- mysql从文本导入表_[Mysql] 用load data将文本文件数据导入到表
MySQL的load data命令可以将文本文件的数据导入到表 有文本文件如下: E:\>more test.txt 1,XX,M 2,YY,F 在mysql里创建表t mysql> cr ...
- excel导入mysql命令行_将Excel数据导入MySql
今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计,好哥们儿嘛--便帮助他完成了数据从Excel到MySql的转化.记下具体步骤分享给大家,也免得大家到网上到处乱找了 ...
- mysql 大文本_超大文本文件数据导入MYSQL
今天用到一个处理650万的数据导入数据库处理的问题,在网上找了半天,终于在在三灯的博客找到办法,特此转过来以备后用,哈哈! 我执行的命令语句是mysqlimport -uroot -p123456 - ...
- mariadb转mysql_MariaDB/MySQL备份和恢复(二):数据导入、导出
1.导出.导入数据 load data infile和select into outfile语句是配套的.select into outfile语句是将检索出来的数据按格式导出到文件中,数据迁移跨数据 ...
- linux下Mysql 的安装、配置、数据导入导出
为什么80%的码农都做不了架构师?>>> <p><span>MySQL</span><span>是一种</span> ...
最新文章
- 该如何继续走下去。。
- python tkinter entry默认值_Python Tkinter Entry和Text的添加与使用详解
- android6.0源码分析之Zygote进程分析
- codevs2574 波兰表达式
- Xshell的一些实用技巧
- Farseer.Net ORM开源框架 V0.x 教程目录
- JS 中的return false的作用
- Solr:创建拼写检查器
- 枚举数据类型 c# 114866833
- python第三方库——requests
- php 向py发起请求,Python向PHP发起GET与POST请求
- SCPPO(二十六):测算过程中问题的解决总结
- 公钥、私钥、数字证书的概念 (讲得很明吧,通俗易懂)
- 基于JSP实现学校社团管理系统
- html5dragw3c,HTML5拖拽功能drag
- Mortal Kombat Tower (dp动态规划)
- 创作者基金 11 月亮点
- C语言电子时钟程序设计,单片机C语言电子时钟加日历显示编程
- js拖拽俄罗斯方块小游戏(一)
- 火山PC_QQ登录源码(QQ互联)