永发信息网

怎么将本地的.sql文件导入hadoop master

答案:1  悬赏:70  手机版
解决时间 2021-11-12 15:45
怎么将本地的.sql文件导入hadoop master
最佳答案
完成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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电信300兆光纤用超5类线好还是超6类线
寻求资金
问问,牙狼的特效那么叼炸天,它是不是全亚洲
快刻商城是什么?为什么那么多掌柜加入快刻商
哪支国家队能打败瓦基弗银行
什么是过塑啊,谢谢
关于中国矿业大学银川学院毕业问题
里仁村地址在什么地方,想过去办事,
形容酒意的诗句
T242列车2车厢87号靠窗吗
汉语高手解释:德履绥和,为祝为颂的意思?
渣男的非礼嫂子,嫂子不但不反抗还配合...是
北京高铁站到北京槐丽酒店有多远
《后来的我们》小晓和见清究竟为什么分手,大
想问关于浙大奖学金的事,知道的人进!
推荐资讯
东莞黄江哪里可以办东莞公交卡
有哪些爱玩游戏的名人?
从螳螂捕蝉这个故事中你获得了怎样的启示请联
小米5x和小米max2,荣耀8青春版,荣耀畅玩6x和
1600.700消防箱
"温"在中国古代哲学中的概念
现在养肉鹅市场前景好吗
高筒式花盆种什么室外植物
用过集成灶人的给个意见,集成灶怎么样
怎么把全国区分成华南华中华北三区
少年易学老难成,一寸光阴不可轻,未觉池塘春草
昆明哪路公交车经过昆州路兴隆小区
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?