没有合适的资源?快使用搜索试试~ 我知道了~
首页hadoop项目--网站流量日志分析--5.docx
hadoop项目--网站流量日志分析--5.docx
需积分: 45 298 浏览量
更新于2023-05-27
评论
收藏 555KB DOCX 举报
在网站流量日志分析这种场景中,对数据采集部分的可靠性、容错能力要求通常不会非常严苛,需要注意的是结合语境明白是何种含义的数据采集。
资源详情
资源评论
资源推荐

程序员生活网
一、 模块开发----数据导出
1. Apache Sqoop
Sqoop 是 Hadoop 体系和关系数据库服务器之间传送数据的一种工具。用来从关系
数据库如:、Oracle 到 HDFS、Hive 等,或者从 Hadoop 的文件系统导出数据到关
系数据库。由 Apache 软件基金会提供。
Sqoop:“SQL 到 Hadoop 和 Hadoop 到 SQL”。
Sqoop 工作机制是将导入或导出命令翻译成 mapreduce 程序来实现。
在翻译出的 mapreduce 中主要是对 inputformat 和 outputformat 进行定制。
程序员生活网

程序员生活网
2. Sqoop 导出项目数据
Sqoop 支持直接从 Hive 表到 RDBMS 表的导出操作,也支持 HDFS 到 RDBMS 表的
操作,
鉴于此,有如下两种方案:
从 Hive 表到 RDBMS 表的直接导出:
效率较高,相当于直接在 Hive 表与 RDBMS 表的进行数据更新,但无法做精细的控
制。
从 Hive 到 HDFS 再到 RDBMS 表的导出:
需要先将数据从 Hive 表导出到 HDFS,再从 HDFS 将数据导入到 RDBMS。虽然比直
接导出多了一步操作,但是可以实现对数据的更精准的操作,特别是在从 Hive 表导出到
HDFS 时,可以进一步对数据进行字段筛选、字段加工、数据过滤操作,从而使得 HDFS
上的数据更“接近”或等于将来实际要导入 RDBMS 表的数据,提高导出速度。
实际项目中应该结合具体业务场景灵活运用,切勿生搬硬套,照本宣科。
当前项目需求是从 Hive 中导出数据到 RDBMS,后续如果有 hive 增量数据产生,进
行增量导出。
以下是 export 命令语法:
程序员生活网

程序员生活网
2.1. 全量导出数据到 mysql
应用场景:将 表中的全部记录(可以是全部字段也可以部分字段)导出到
目标表。
使用限制:目标表中不能有与 中相同的记录,一般只有当目标表为空表时才
使用该模式进行首次数据导出。
实现逻辑:以 dw_pvs_referer_everyhour(每小时来访 url 产生的 pv)为例
进行数据全量导出。
1. Hive------->HDFS
导出 dw_pvs_referer_everyhour 表数据到 HDFS
!" # $
%&'()*))()&+
2. HDFS-------->Mysql
手动
,
创建目标表:
+
+
-
-)(.
.+
,
执行全量导出:
,/
0012,20)233(4/
0000/
00/
0000/(()/
00/
000
程序员生活网

程序员生活网
2.2. 增量导出数据到 mysql
应用场景:将 表中的增量记录同步到目标表中。
使用技术:使用 中的 模式进行增量数据导
入目标表中。该模式用于将 中有但目标表中无的记录同步到目标表中,但同
时也会同步不一致的记录。
实现逻辑:以 ! 基础信息指标表为例进行增量导出操作。
" 手动创建目标表
5-
-'(.
-)(.
.
# 先执行全量导入,把当前的 $ 中 #%"&""%" 分区数据进行导出
,/
0012,20)233(4/
0000/
005/
0000/(()/
00065%'()*))()
' 为了方便演示,手动生成往 $ 中添加 #%"&""%' 的数据
5 77-%&'()*))(3&.
-&'()*))&&(3&)8'9()38))38):4.+
( ) 增量导出
,/
0012,20)233(4/
00/
00/
005/
0000/(()/
000;/
000/
00065%'()*))(3
程序员生活网
剩余17页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0