非结构化数据 mysql_Apache Sqoop 结构化、非结构化数据转换工具
简介:
Apache Sqoop 是一种用于 Apache Hadoop 与关系型数据库之间结构化、非结构化数据转换的工具。
一、安装 MySQL、导入测试数据
2、导入测试数据
mysql > create databasetmpdb;
mysql> usetmpdb;
mysql>system ls
tmp_recommend_hot.sql
mysql> source tmp_recommend_hot.sql
# 创建测试库,导入测试表
3、授权 hadoop
mysql > grant all on *.* to hadoop@'%' identified by 'hadoop';
mysql> flush privileges;
二、安装 Sqoop
1、下载、解压、设置环境变量
shell > cd /usr/local/src
shell> wget http://apache.fayea.com/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
shell > tar zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C ../shell> cd /usr/local/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
shell> vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/hadoop-2.8.0/bin:/usr/local/apache-hive-2.1.1-bin/bin:/usr/local/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin
shell> source /etc/profile
2、修改 sqoop-env.sh
shell > cp conf/sqoop-env-template.sh conf/sqoop-env.shshell> vim conf/sqoop-env.sh# 指定安装目录
export HADOOP_COMMON_HOME=/usr/local/hadoop-2.8.0export HADOOP_MAPRED_HOME=/usr/local/hadoop-2.8.0
3、复制 MySQL 连接器
shell > cp /usr/local/src/mysql-connector-java-5.1.41/mysql-connector-java-5.1.41-bin.jar lib/
4、测试
shell > sqoop list-databases --connect jdbc:mysql://master.hadoop:3306 \
> --username hadoop --password hadoop
information_schema
hive_meta
mysql
performance_schema
test
tmpdb
# 连接成功
三、MySQL To HDFS To Hive
1、创建数据存放目录
hadoop shell > hdfs dfs -mkdir /user/root
hadoop shell> hdfs dfs -chown root /user/root
2、将数据导入 HDFS
shell > sqoop import --connect jdbc:mysql://master.hadoop:3306/tmpdb \
> --username hadoop --password hadoop \> --table tmp_recommend_hot --warehouse-dir=/user/root
hadoop shell> hdfs dfs -ls /user/root
Found1items
drwxr-xr-x - root supergroup 0 2017-05-26 18:47 /user/root/tmp_recommend_hot
hadoop shell> hdfs dfs -ls /user/root/tmp_recommend_hot
Found5items-rw-r--r-- 3 root supergroup 0 2017-05-26 18:47 /user/root/tmp_recommend_hot/_SUCCESS-rw-r--r-- 3 root supergroup 17426 2017-05-26 18:47 /user/root/tmp_recommend_hot/part-m-00000
-rw-r--r-- 3 root supergroup 18188 2017-05-26 18:47 /user/root/tmp_recommend_hot/part-m-00001
-rw-r--r-- 3 root supergroup 18719 2017-05-26 18:47 /user/root/tmp_recommend_hot/part-m-00002
-rw-r--r-- 3 root supergroup 18430 2017-05-26 18:47 /user/root/tmp_recommend_hot/part-m-00003
# 默认情况下启用 4 个 MR 进程,所以有 4 个文件
3、将数据从 HDFS 导入 Hive
shell > beeline -u jdbc:hive2://master.hadoop:10000 -n hadoop
0: jdbc:hive2://master.hadoop:10000> create database tmpdb;
0: jdbc:hive2://master.hadoop:10000> use tmpdb;
0: jdbc:hive2://master.hadoop:10000> dfs -cat /user/root/tmp_recommend_hot/*;
+--------------------------------------------------------------------------------------------------------------------------------+--+
| 401,1859110,资讯,2017,《人民的名义》热播原著小说杭州卖断货,http://pic2.qiyipic.com/image/20170410/0f/2a/v_112112674_m_601.jpg,934,null |
| 402,1859123,资讯,2017,临汾旅游景区体制机制改革再出招,http://pic6.qiyipic.com/image/20170410/a5/bb/v_112112690_m_601.jpg,420,null |
| 403,1291853,电影,2016,魔兽,http://imgbftv.b0.upaiyun.com/upload/origin/8/147598326883101.jpg,326,null |
| 404,1838847,综艺,2017,奇葩说第4季,http://imgbftv.b0.upaiyun.com/upload/origin/2/149176084218704.jpg,579,null |
| 405,14614,电视剧,2014,神雕侠侣,http://imgbftv.b0.upaiyun.com/upload/origin/6/143945924668370.jpg,260,null |
| 406,387443,电影,2005,金刚2005,http://imgbftv.b0.upaiyun.com/upload/origin/3/148497964349088.jpg,2563,null |
| 407,1861695,资讯,2017,追踪:夜半横躺马路中央男子遭碾压致死,http://pic6.qiyipic.com/image/20170411/3e/66/v_112119228_m_601.jpg,806,null |
| 408,1841442,综艺,2017,天生是优我,http://imgbftv.b0.upaiyun.com/upload/origin/1/149182951136923.jpg,1094,null
# 查看了一下原始数据,是以 , 为分隔符的文本
0: jdbc:hive2://master.hadoop:10000> create external table hot_film
. . . . . . . . . . . . . . . . . .> (id int, vid int, type string, year int, name string, image string, views int, dtime int)
. . . . . . . . . . . . . . . . . .> row format delimited fields terminated by ','. . . . . . . . . . . . . . . . . .> location 'hdfs:///user/root/tmp_recommend_hot';
# 创建了一个外部表,/user/hive/warehouse/tmpdb.db 下并没有数据,数据还存在原始位置 /user/root/tmp_recommend_hot 下
0: jdbc:hive2://master.hadoop:10000> select id, vid, name, views from hot_film limit 3;
+-----+----------+-----------+--------+--+
| id | vid | name | views |
+-----+----------+-----------+--------+--+
| 1 | 1544131 | 三生三世十里桃花 | 1003 |
| 2 | 1774150 | 情圣 | 630 |
| 3 | 1774815 | 因为遇见你 | 548 |
+-----+----------+-----------+--------+--+
# 数据没问题,经 count(id) 对比,数据也没少!
四、MySQL To Hive
1、创建 Hive 数据库
shell > beeline -u jdbc:hive2://master.hadoop:10000 -n hadoop
0: jdbc:hive2://master.hadoop:10000> create database tmpdb2;
2、导入数据
shell > sqoop import --connect jdbc:mysql://master.hadoop:3306/tmpdb \
> --username hadoop --password hadoop \> --fields-terminated-by '\t' --table tmp_recommend_hot \> --hive-import --hive-database tmpdb2 --hive-table hot_film
# import、import-all-tables 导入表、导入所有表
# --fields-terminated-by 指定分隔符
# --table 指定导入的表
# --hive-import 导入 hive 表
# --hive-database 指定导入到 hive 哪个数据库中
# --hive-table 指定导入后的表名,不指定时保持原表名
# --hive-overwrite 覆盖写入
# -m 指定启动几个 map/reduce 程序,表中没有主键时,需要指定 -m 1
3、验证数据
0: jdbc:hive2://master.hadoop:10000> use tmpdb2;
0: jdbc:hive2://master.hadoop:10000> show tables;
+-----------+--+
| tab_name |
+-----------+--+
| hot_film |
+-----------+--+
0: jdbc:hive2://master.hadoop:10000> select id, vid, name, views from hot_film limit 3;
+-----+----------+-----------+--------+--+
| id | vid | name | views |
+-----+----------+-----------+--------+--+
| 1 | 1544131 | 三生三世十里桃花 | 1003 |
| 2 | 1774150 | 情圣 | 630 |
| 3 | 1774815 | 因为遇见你 | 548 |
+-----+----------+-----------+--------+--+
# 一切正常,这样导入的是内部表,数据会被移动到 hive 配置文件中指定的路径。默认 /user/hive/warehouse
报错管理:
1、数据文件已存在
17/05/27 14:34:15ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException:
Output directory hdfs://master.hadoop:8020/user/root/tmp_recommend_hot already exists
# 与上一个实验导入的数据冲突,从 hdfs 删除即可,当然上个实验的数据库表中就没有数据了
2、权限不足
17/05/27 14:48:34 INFO hive.HiveImport: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=root, access=WRITE, inode="/user/hive/warehouse/tmpdb2.db":hadoop:supergroup:drwxrwxr-x
# 开放 /user/hive 目录权限,hdfs dfs -chmod -R 777 /user/hive
非结构化数据 mysql_Apache Sqoop 结构化、非结构化数据转换工具相关推荐
- 结构化数据、半结构数据和非结构数据的总结
(一) (1)结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据) (2)非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各类报表.图像和音频/视频信息等等 ...
- 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)
研究一下分布式架构的实现方式 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured) 概念 结构化数据:即行数据,存储在数据库里, ...
- 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)...
概念 结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据. 半结构化数据:介于完全结构化数据(如关系型数据库.面向对象数据库中的数据)和完全无结构的数据(如声音.图像文件等)之 ...
- 基于结构化数据的文本生成:非严格对齐生成任务及动态轻量的GCN生成模型
作者|邴立东.程丽颖.付子豪.张琰等 单位|阿里巴巴达摩院.香港中文大学等 摘要 基于结构化数据生成文本(data-to-text)的任务旨在生成人类可读的文本来直观地描述给定的结构化数据.然而,目前 ...
- 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)的定义和区别
相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各 ...
- php 串行化数据,php中对象的串行化
我们大家有知道PHP串行化可以把变量包括对象,转化成连续bytes数据,你可以将串行化后的变量存在一个文件里或在网络上传输,然后再反串行化还原为原来的数据.文章这里就PHP串行化为大家详细的介绍.你在 ...
- oracle如何导出表结构及数据,PLSQL怎样导出oracle表结构和数据
1.导出表结构和数据 方式1.tools->export user objects是导出表结构 tools ->export user object 选择选项,导出.sql文件 说明:导出 ...
- 我被“非结构化数据包围了”,请求支援!
阿里妹导读:非结构化数据的内容占据了当前数据海洋的80%.换句话来说,就是我们都被"非结构化数据"包围了.由于非结构化数据的信息量和信息的重要程度很难被界定,因此对非结构化数据的使 ...
- 结构化数据和非结构化数据的分析
结构化数据和非结构化数据的分析 一. 什么是数据 二. 数据的分类 1. 按性质分为 2. 按表现形式分为 3. 按表现形式分为 三. 结构化数据和非结构化数据 1. 什么是结构化数据 2. 什么是非 ...
最新文章
- 三星android获取root权限,三星G9250(S6 Edge公开版全网通 Android 5.1)获取ROOT权限详解教程...
- 快速了解Kubernetes微服务中的通信
- oracle 某天 减一天,案例一:shell脚本指定日期减去一天
- Java中Comparable和Comparator的区别
- 16/100. Symmetric Tree
- android悬浮窗代码布局,三行代码实现Android应用内悬浮窗,无需一切权限,适配所有ROM和厂商...
- SQL Server 使用OPENROWSET访问ORACLE遇到的各种坑总结
- Halcon例程详解 (深度图转换为3D图像)—— xyz_attrib_to_object_model_3d
- IAR软件中直接查看编译后代码大小
- DealComment (注释处理工具)
- 4.16-4.22课题(拼团系统)进度汇报
- Atiitt uke兼wag集团2017年度成果报告总结 attilax著 1. 组织机构进一步完善 8大首席部门	1 2. 事业部进一步完善,以及一百多个事业部了	1 3. 企业文化进一步完善	1
- 脱壳_详细_使用的方法_03
- 解决 java.lang.RuntimeException: Method i in android.util.Log not mocked. See http://g.co/androidstudi
- 备份恢复Lesson 10. Restore and Recovery Concepts
- word或excel图片没有另存为怎么办
- 数据库连接数和数据库连接池的连接数区别?
- 求是追梦--------一位计算机专业硕士毕业生的求职经历和感想
- 请问机器学习算法岗中用户增长和推荐系统差别是什么呢?
- 终于找到阻止360文件粉碎机的源代码了
热门文章
- Kali Linux安装360免费wifi驱动。
- 精品水果店如何运营,水果店运营指南
- JavaScript计算文件Hash值(sha1 sha 256 md5)
- 程序开发中,\t \r \n \f 什么意思
- python发送qq邮件(加密非加密)
- 百度新闻android客户端,百度新闻进驻Android版客户端 全球最大移动中文新闻平台出炉...
- Appium - 入门指南(偏重于实际操作)
- MFC制作DLL(导出类和函数)
- window下安装git flow
- Excel学习笔记:P32-从此让写公式变得超级简单!