资讯专栏INFORMATION COLUMN

利用Sqoop将MySQL海量测试数据导入HDFS和HBase

Lsnsh / 2876人阅读

摘要:作者帅气陈吃苹果一安装下载解压文件夹重命名配置环境变量验证若正常显示版本信息,则安装配置成功二创建数据库和表安装后,创建测试数据库和测试表。

声明:作者原创,转载注明出处。

作者:帅气陈吃苹果

一、安装Sqoop 1、下载sqoop,解压、文件夹重命名
wget http://mirror.bit.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

tar -zxvf sqoop-1.4.6.bin_hadoop-2.0.4.alpha.tar.gz  -C /root/hadoop/

mv sqoop-1.4.6.bin_hadoop-2.0.4.alpha sqoop-1.4.6
2、配置环境变量
vim /etc/profile
export SQOOP_HOME=/root/hadoop/sqoop-1.4.6

export PATH = $PATH:$SQOOP_HME/bin
3、验证

若正常显示Sqoop版本信息,则安装配置成功:

[root@localhost ~ ] # sqoop version
二、创建数据库和表

安装MySql后,创建测试数据库和测试表。

数据库名:test

表结构:point(pointId int(10) PRIMARYKEY,pointName varchar(16),pointValue int(10))

三、shell脚本生成测试数据

编写Shell脚本,此处的插入语句需要根据所创建的表结构来修改:

#!/bin/bash
i=1;
MAX_INSERT_ROW_COUONT=$1;
while(( $i <= $MAX_INSERT_ROW_COUNT ))
do
    mysql -uhive -phive test -e "insert into test.point(pointId,pointName,pointValue) values($i,"point"$i"",$i);"
    i=(($i+1))
done
exit 0
上述脚本生成测试数据速度很慢,笔者生成1000万条数据有如怀胎十月,欢迎建议,感谢!
四、MySql数据导入

MySQL作为数据源时,Sqoop需要依赖MySQL数据库连接驱动包,下载地址:https://dev.mysql.com/get/Dow...

下载后解压,将mysql-connector-java-5.1.45文件夹下的mysql-connector-java-5.1.44-bin.jar包拷贝到$SQOOP_HOME/lib目录下即可。

1、导入HDFS
sqoop import --connect jdbc:mysql://localhost:3306/test --username hive --password hive  --table 
point
参数解析:

import:表示从传统数据库导入数据到 HDFS/HIVE/HBASE等;

--connect:建立数据库连接;

jdbc:mysql://localhost:3306/test:使用jdbc方式连接mysql数据库,数据库名为test;

--username:指定数据库用户名;

--password:指定数据库密码;

--table:指定表名

注意:

a)HDFS输出目录不能已经存在;

b)没有指定-m或者splite-by时,即没有指定并行度时,要导入的表必须有主键,否则会出错。

c)导入到指定目录:sqoop import --connect jdbc:mysql://localhost:3306/test --username hive --password hive --table point --target-dir /directory

如果没有指定输出目录,默认在/user/root/下创建一个与表名一致的子目录作为输出目录,导入操作执行后,查看HDFS中是否有导入的文件:

hdfs dfs -ls /user/root/point/
2、导入HBase
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table 
point --hbase-table HPoint --column-family info --hbase-row-key pointId --hbase-create-table
参数解析:

--hbase-table:指定导入到HBase数据库中某表;

--column-family:指定列族名;

--hbase-row-key:指定rowKey;

--hbase-create-table:表示按照参数创建HBase中的表;

最后,欢迎指正。喜欢的话,点个赞呗,请你吃苹果。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/47431.html

相关文章

  • Hadoop大数据生态系统及常用组件简介

    摘要:大数据存储,利用的分布式存储能力,例如数据备份数据仓库等。大数据处理,利用的分布式处理能力,例如数据挖掘数据分析等。应用程序管理器负责管理整个系统中所有应用程序,包括应用程序的提交与调度器协商资源以启动监控运行状态并在失败时重新启动等。 经过多年信息化建设,我们已经进入一个神奇的大数据时代,无论是在通讯社交过程中使用的微信、QQ、电话、短信,还是吃喝玩乐时的用到的团购、电商、移动支付,...

    BenCHou 评论0 收藏0
  • 福布斯:Hadoop——你不得不了解的大数据工具

    摘要:框架成为当今大数据处理背后的最具影响力的发动机。机器学习各类组织需求的不同导致相关的数据形形色色,对这些数据的分析也需要多样化的方法。提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。 Hadoop带来了廉价的处理大数据(大数据的数据容量通常是10-100GB或更多,同时数据种类多种多样,包括结构化、非结构化等)的能力。但这与之前有什么不同?现今企业...

    jsyzchen 评论0 收藏0
  • 数据集成工具的使用(一)---Sqoop 从理论学习到熟练使用

    本期与大家分享的是,小北精心整理的大数据学习笔记,数据采集工具Sqoop 的详细介绍,希望对大家能有帮助,喜欢就给点鼓励吧,记得三连哦!欢迎各位大佬评论区指教讨论! ???制作不易,各位大佬们给点鼓励! ???点赞? ➕ 收藏⭐ ➕ 关注✅ ???欢迎各位大佬指教,一键三连走起! 一、理论学习篇 1、Sqoop简介         在阿帕奇阁楼(The Apache Attic)中,...

    verano 评论0 收藏0
  • Hadoop家族学习路线图

    摘要:本文为家族开篇,家族学习路线图目录家族产品家族学习路线图家族产品截止到年,根据的统计,家族产品已经达到个接下来,我把这个产品,分成了类。家族学习路线图下面我将分别介绍各个产品的安装和使用,以我经验总结我的学习路线。 Hadoop家族系列文章, 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, ...

    includecmath 评论0 收藏0
  • 如何其他RDBMS的数据到迁移到Trafodion

    摘要:为了避免这种情况,可以针对表短期内被两个以上的语句所加载执行一个大的数据压缩。通常,对一张大表执行数据压缩会花费大量的时间几分钟到几小时不等。 本文介绍了如何将数据从现有的RDBMS迁移到Trafodion数据库。从其它的RDBMS或外部数据源向Trafodion集群中导入大量的重要数据,可以通过下面两步完美实现: 在Trafodion集群中,将数据从源头导入Hive表。使用下列方...

    李文鹏 评论0 收藏0

发表评论

0条评论

Lsnsh

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<