1 项目介绍
2 涉及技术
3 项目讲解
4 收获
5 与前一个项目的对比
1 项目介绍
电信级海量通话日志数据的存储,为用户提供:1 实时查询通话记录;2 离线查询近N年通话记录;
image.png
2 涉及技术
- hadoop体系架构与ha配置方案。
- hbase体系架构与ha配置方案
- flume实时收集架构方案。
- SSM实现前端web实现以及与后端HBase的交互架构方案。
- hive+oozie实现的周期任务调度。
3 项目讲解
1 项目模块介绍
image.png项目分为4个模块:
-
CallLogGenMoudle:产生数据,并将其写入到log文件中
-
CallLogCoproessorModule:Hbase协作器,触发处理业务数据
-
CallLogConsumerMoidle:消费Kafka数据,并将其存储到Hbase中,用于实时显示
-
ssm:前台web端,用户发送请求,展示结果。
2 项目流程图(不多说,敲黑板!!!)
image.png3 项目重要配置
(1)Flume配置文件
1 a1.sources = r1
2 a1.sinks = k1
3 a1.channels = c1
4
5 a1.sources.r1.type=exec
6 a1.sources.r1.command=tail -F -c +0 /home/spark/log/calllog/calllog.log
7
8 a1.channels.c1.type=memory
9
10 a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
11 a1.sinks.k1.kafka.topic = calllog
12 a1.sinks.k1.kafka.bootstrap.servers = s2:9092 s3:9092 s4:9092
13 a1.sinks.k1.kafka.flumeBatchSize = 20
14 a1.sinks.k1.kafka.producer.acks = 1
15
16 a1.sources.r1.channels = c1
17 a1.sinks.k1.channel = c1
(2)Hbase数据库至Hive数据库之间的转化
//key是hbase的rowkey, 各个字段是hbase中的quailiter
CREATE external TABLE hbase_table_1(key String, name string) -- 创建hive的表
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' -- 使用的类
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:name") -- 字段映射关系
TBLPROPERTIES ("hbase.table.name" = "userinfo"); --映射的表
4 收获
(1)大数据环境搭建(4台主机)
- Hadoop分布式搭建
- Spark分布式搭建
- Flume使用
- Kafka使用
- Zookeeper使用
- Hbase搭建
- Hive使用
各个机器分布如图
image.png(2)学会基本的消息处理(基本流程)
- 实时生成消息;
- Flume收集消息,并sink到Kafka集群中;
- 代码读取Kafka集群中消息,并存入到Hbase中;
- 将Hbase中数据转化为Hive;
- 前台SSM程序读取Hbase和Hive中数据,并展示在Web端。
5 与前一个项目的对比
这个项目和Spark实时离线电影推荐系统相比,特点如下:
- 本项目,重点在于环境搭建。实现多台主机的环境配置,完成从前台Web端到后台处理系统整个的处理流程,清晰的再现了大数据各个生态组件如何相互协同合作,为前台提供服务。
- 前一个项目,重点在于推荐算法的实现,推荐模型的训练,推荐结果的产生。就是编写代码,用Spark处理数据。
学完这两个项目,觉得环境配置相对容易,而用Spark的Scala去实际处理数据,去解决其中的问题较难,这也是是我下个阶段的研究重点。
end
网友评论