利用Sqoop将MySQL海量测试数据导入HDFS和HBase
声明:作者原创,转载注明出处。
作者:帅气陈吃苹果
一、安装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.gztar -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.6export 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 ))
domysql -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中的表;
最后,欢迎指正。喜欢的话,点个赞呗,请你吃苹果。
利用Sqoop将MySQL海量测试数据导入HDFS和HBase相关推荐
- sqoop实现Mysql、Oracle与hdfs之间数据的互导
通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 SQOOP的描述 SQOOP是用于对数据进行导入导出的. (1)把MySQL.Oracle等数据库中的数据导入到HD ...
- 用sqoop将mysql的数据导入到hive表中,原理分析
Sqoop 将 Mysql 的数据导入到 Hive 中 准备Mysql 数据 如图所示,准备一张表,数据随便造一些,当然我这里的数据很简单. 编写命令 编写参数文件 个人习惯问题,我喜欢把参数写到文件 ...
- MySQL通过接口导入hive_利用Sqoop将MySQL数据导入Hive中
参考 http://www.cnblogs.com/iPeng0564/p/3215055.html http://www.tuicool.com/articles/j2yayyj http://bl ...
- 利用Sqoop在数据库和Hive、HDFS之间做ETL操作
文章目录 @[toc] 目录: 一.利用Sqoop,从Oracle到HDFS 二.利用Sqoop,从Oracle到Hive 三.遇到的问题 目录: 一.利用Sqoop,从Oracle到HDFS 第一步 ...
- 利用Java进行MySql数据库的导入和导出
来源:http://www.51testing.com/html/89/n-807989.html 利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. ...
- java导出mysql数据库失败_利用Java进行MySql数据库的导入和导出
利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword ...
- sqoop从mysql导入数据到hdfs_利用Sqoop将数据从数据库导入到HDFS
基本使用 如下面这个shell脚本: #Oracle的连接字符串,其中包含了Oracle的地址,SID,和端口号 CONNECTURL=jdbc:oracle:thin:@20.135.60.21:1 ...
- 用sqoop将mysql的数据导入到hive表
一.先将mysql一张表的数据用sqoop导入到hdfs 1.1.先在mysql中准备一张测试用的表 mysql> desc user_info; +-----------+---------- ...
- hive kerberos java_Kerberos身份验证错误 - Sqoop通过Hive从SQL导入HDFS
我给出了以下Sqoop命令: sqoop import \ --connect "jdbc:sqlserver://ServerName:1433;databaseName=TESTDB;i ...
最新文章
- JavaBean中DAO设计模式介绍
- 同步电路设计的一些问题(时序分析基础,同步电路设计规则)
- python双轴折线图是什么意思_操作-简易图形-折线图
- Vagrant安装centos7时一直报错无法保存文件
- Java监听器完整入门实例
- Android SharedFlow详解
- 一个简单的拖动层(兼容IE,FF)
- 见证中国技术成长 数据技术嘉年华的别样十年
- python调用sqlplus执行_python可以调用sqlplus吗?
- 201521123009 《Java程序设计》第11周学习总结
- linux看磁盘空间du df,df与du查看磁盘空间使用不一致的解决方法
- WrapperClass
- mina框架详解-小白收藏
- Springcloud电子商城系统 java B2B2C-服务消费者(rest+ribbon)
- ARM板更改系统时期和时间
- 计算机显示器有几个接口,电脑显示器的接口有几种?有哪些区别又要如何挑选呢?长知识了!...
- 格美家具网站项目总结
- hbase 使用lzo_hadoop hbase lzo 安装
- 首都经贸计算机考研怎么样,【考研心路历程】首都经贸大学考研的回忆与感悟...
- css引入本地字体文件,关于css中引入字体文件
热门文章
- Django运维后台的搭建之二:建立template和对应的ModelForm
- 声音分析软件公司Cogito完成1500万美元B轮融资
- Apple watch 开发指南(1) 预览
- Web Services 详解
- LinuxIP设置,网络负载
- webservice传送XML大小估算
- java如何创建一个两个数的队列_java线程池 如何构建一个线程立即到拉到MAX数量跑业务,线程到MAX了,额外的队列可以存储任务的线程池...
- Prometheus之kubernetes-sd自动发现
- think php 缩放图片,THINKPHP+JS实现缩放图片式截图的实现
- linux编译ace,Linux下编译ACE