大数据开发、只能硬件和图形图像需求增长最快,需求人员最多。对微博数据分析平台搭建,以及微博数据分析平台数据存储模块设计与实现。
最好有一定软件开发方面的知识功底,比如了解网站开发、OA开发、Linux操作系统
引言、云端实验室环境
基于开源的ambari大数据平台,部署了7个节点:
一、 项目背景
企业可能对用户在微博上的评价内容有监测需求,如活动效果、用户对产品的评价,用户关注于产品的价格还是功能等等。
本平台用来获取微博的数据(数据量大、非结构化数据),进行数据分析,存储在云平台,将结果输出给企业。
二、 项目架构
2.1. 数据源
微博数据:
beCommentWeiboID 是否评论
beForwardWeiboId 是否转发微博
catchTime 抓取时间
commentCount 评论次数
content 内容
createTime 创建时间
info1 信息字段1
info2 信息字段2
info3 信息字段3
melevel no sure
musicurl 音乐链接
pic_list 照片列表(最多有三个)
praiseCount 点赞人数
reportCount 转发人数
source 数据来源
ueserId 用户id
videourl 视频连接
weiboId 微博id
weiboUrl 微博网址
2.2 数据层
本次数据层主要讲主数据仓库。
数据仓库是为应用层提供数据服务的。
数据仓库表设计
层次 | 库名 | 表名 |
---|---|---|
ODS | ODS | ODS_WEIBO_LOG |
ODS | ODS | ODS_WEIBO_EMOTION |
DW | DW | DW_USER_CLIENT |
DW | DW | DW_USER_KOL |
DW | DW | DW_EMOTION_ANA |
DW | DW | DW_VIDEO_ANA |
DW | DW | DW_WEIBO_VOL |
DW | DW | DW_USER_ACITIVE |
APP | APP | APP_CLIENT_COUNT_TOP10 |
APP | APP | APP_IPHONE_USER |
APP | APP | APP_POS_PROPOTION_TOP10 |
APP | APP | APP_REPORT_COUNT_TOP10 |
APP | APP | APP_MAX_POS_POWER_USER |
APP | APP | APP_WEIBO_VOL_TOP10 |
数据仓库一般是离线数据分析使用,每天要跑的固化需求。如果是临时需求(提数),就要让大数据开发人员专门做一条数据报表出来。
2.3 平台层
ODS层:数据是清洗后的
2.4. APP区
从数据仓库区取数据分析展示
2.5 大数据分析与研发基本工作内容:
• 大数据平台数据仓库、ETL模块建模及设计开发
• 需求搜集、数据分析并参与设计数据制作
• 调度及数据质量的检测和监控,形成数据反馈优化
• 大数据平台接口开发与维护
• Spark/Hadoop等大数据计算平台的研发以及优化
• 大数据项目架构与规划
三、 平台演示
3.1 运维人员一般使用Ambari,作为大数据的管理平台,而给开发人员使用跳板机(或堡垒机)。
3.2 开发界面示例:
select count(*) from web_log_192g
3.3 公司开发时,运维一般给不同团队分配不同队列,不同队列会有不同资源
3.4 虽然Spark比较成熟,但大多数公司对离线分析还是用Hive多一些。
3.5 企业微博声量号的分析:
统计微博最新状态下被评论 最多的Top10账户id,
注意:每个用户的微博进行去重之后,筛选出同一条微博的最新状态
3.6 开发有两种方式,一种在Ambari web平台写脚本。
3.7 实际中使用引入一个开发平台。这里使用Hue平台
3.8 每天都要跑的定时任务,一般用这样的平台设置一些权限
3.9 查询页面面写经常用的SQL
3.10 保存点击Save As
3.11 平时开发的SQL都可以保存下来
3.12 如果要执行,那要设计一个执行器
3.13 企业中使用一般会针对这个界面进行二次开发
新建一个流程:
3.14 然后添加流程:
3.15选择数据:
3.16 固定的报表一般会配置WorkFlow,这里使用Oozie作为工作流平台