利用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.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/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz
下载后解压,将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]利用sqoop对mysql运行DML操作
业务背景 利用sqoop对mysql进行查询.加入.删除等操作. 业务实现 select操作: sqoop eval \ --connect jdbc:mysql://127.0.0.1:3306/m ...
- 利用sqoop对mysql执行DML操作
业务背景 利用Sqoop对MySQL进行查询.添加.删除等操作. 业务实现 select操作: sqoop eval \ --connect jdbc:mysql://127.0.0.1:3306/m ...
- 利用Java进行MySql数据库的导入和导出
利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword ...
- sqoop1.4.6从mysql导入hdfs\hive\hbase实例
//验证sqoop是否连接到mysql数据库sqoop list-tables --connect 'jdbc:mysql://n1/guizhou_test?useUnicode=true& ...
- 用sqoop将mysql的数据导入到hive表
一.先将mysql一张表的数据用sqoop导入到hdfs 1.1.先在mysql中准备一张测试用的表 mysql> desc user_info; +-----------+---------- ...
- 用sqoop将mysql的数据导入到hive表中
1:先将mysql一张表的数据用sqoop导入到hdfs中 准备一张表 需求 将 bbs_product 表中的前100条数据导 导出来 只要id brand_id和 name 这3个字段 数据存 ...
- 使用sqoop将MySQL数据库中的数据导入Hbase
使用sqoop将MySQL数据库中的数据导入Hbase 前提:安装好 sqoop.hbase. 下载jbdc驱动:mysql-connector-java-5.1.10.jar 将 mysql-con ...
- Sqoop- sqoop将mysql数据表导入到hive报错
sqoop将mysql数据表导入到hive报错 [root@ip---- lib]# sqoop import --connect jdbc:mysql://54.223.175.12:3308/gx ...
- sqoop命令,mysql导入到hdfs、hbase、hive
1.测试MySQL连接 bin/sqoop list-databases --connect jdbc:mysql://192.168.1.187:3306/trade_dev --username ...
随机推荐
- 【转】javascript 分号问题
javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在ja ...
- webpack学习之路01
webpack是什么 1.模块化 能将css等静态文件模块化 2.借助于插件和加载器 webpack优势是什么 1.代码分离 各做各的 2.装载器(css,sass,jsx,es6等等) 3.智能解析 ...
- Python中Json对象处理的jsonpath-rw
这两天在写一个爬虫,需要从网站返回的json数据提取一些有用的数据. 向url发起请求,返回的是response,在python3中,response.content是二进制bytes类型的,需要用d ...
- Robot framework之元素定位实战
1.1 id 和name 定位 Web页面都是由许多标签和元素组成的,每个标签或元素都是很多属性,好比一个人 id 和name 可以看作一个人的身份证号和姓名.下面看下教育局招生系统的用户名输入 ...
- 杨校老师课堂之JavaScript右下角广告弹框教程
案例制作思路: 1.先制作界面 添加一个盒子包含一个按钮,使盒子绝对定位在右上角 添加一个大盒子,同理,将盒子居于左下角:其中内部包含一个顶端盒子和底部盒子 顶端盒子因为是属于大盒子内部的存在,所以宽 ...
- JDK1.8的新特性
JAVA8新特性 接口改善 现在接口里已经完全可以定义静态方法了. 举一个比较普遍的例子就是在java类库中, 对于一些接口如Foo, 都会有一个有静态方法的工具类Foos 来生成或者配合Foo对象实 ...
- PAT1118:Birds in Forest
1118. Birds in Forest (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Some ...
- 计算机网络相关:应用层协议(一):DNS
DNS 1.概念 DNS是: 1) 一个有分层的DNS服务器实现的分布式数据库 2)一个使得主机能够查询分布式数据库的应用协议. 它运行在UDP之上,默认使用53号端口. 主要功能 是将主 ...
- Centos7 下 tty2等文字窗口的中文乱码问题分析
在使用 tty 的时候遇到了一个事情,那就是主文件夹下面的中文文件是乱码: [备注]tty 是 通过 CTRL + ALT +F2~F6 获得的, 这与桌面系统中的终端不是一个概念, 望看到这篇 ...
- sklearn了解一下
sklearn是机器学习中一个常用的python第三方模块,网址:http://scikit-learn.org/stable/index.html ,里面对一些常用的机器学习方法进行了封装,在进行机 ...