[项目] 智慧出行

技术选型

  • 数据采集
    • 大数据平台和关系型数据库的导入导出:Sqoop、datax
    • 日志数据的采集和解析:flume、logstash
    • 实时解析mysql的binlog数据:maxwell、canal、waterDrop
  • 消息中间件
    • RabiitMQ
    • Kafka
    • Redis
  • 实时流处理技术
    • Storm:现在基本不用
    • SparkStreaming:非结构化数据
    • StructStreaming:结构化数据
    • Flink:使用较多
  • 永久存储
    • HFDS:分布式文件存储系统
    • Hbase:K-V对的nosql数据库
    • Kudu:类似Hbase
  • 离线计算框架(OLAP)
    • MapReduce:分布式文件计算系统
    • Hive:基于MR数仓
    • Impala:速度快,内存消耗大
    • SparkSQL
    • FinkSQL
    • clickHouse

数据格式

项目构建

数据生成

  • 数据回放
    • java -jar bin/FileOperate-1.0-SNAPSHOT-jar-with-dependencies.jar /root/kkb/datas/sourcefile/chengdu /root/kkb/datas/destfile/chengdu 3000
    • ps -ef | grep FileOperate-1.0-SNAPSHOT-jar | grep -v grep
  • flume
    • bin/flume-ng agent -n a1 -f conf/flume-client.conf -c conf -Dflume.root.logger=INFO,console
  • kafka
    • bin/kafka-server-start.sh config/server.properties &
    • bin/kafka-topics.sh --create --zookeeper bigdata111:2181 --replication-factor 1 --partitions 3 --topic cheng_du_gps_topic
    • bin/kafka-console-consumer.sh --bootstrap-server bigdata111:9092 --topic cheng_du_gps_topic
  • 启动顺序:数据生成--flume--kafka消费

将数据保存到HBase

  • HBse建表
    • create 'hbase_offset_store','f1','f2'
    • create 'HTAB_GPS','f1','f2'
  • 运行SparkStreaming程序

 

虚拟车站

  • uber h3 算法
  • 统计虚拟车站数据,保存在HBase中,通过phoenix映射,用javaWeb查询

业务库功能开发

  • 通过maxwell,解析业务库mysql的binlog,将业务数据实时同步到kafka
  • SparkStreaming解析kafka数据,存入Hbase
  • sparkSQL自定义数据源,获取Hbase中数据,并将查询结果保存到Hbase中
  • 监控页面大屏开发,写sql

问题

  • 面试怎么说项目
    • 细节:业务逻辑、功能模块、负责的功能职责、遇到了哪些问题、日常工作、服务器配置、数据量大小
  • 为什么要把kafka的offset保存到hbase
    • kafka保存offset会过期
    • kafka 中 topic consum_offset 默认50个分区,一个副本,存在数据丢失问题
    • 方便控制hbase的offset值,实现数据重复消费功能
  • maven dependency 飘红
    • 用课程的maven仓库覆盖本地的
    • 删除maven仓库中lastupdate
    • 打开idea
  • 查询Hbase三种方式
    • get
    • scan 或 scan startRow stopRow
    • phoenix:作为Hbase二级索引,通过sql语句查询
  • phoenix全局索引及局部索引适用情况
  • 大数据两种架构模型
    • lambda:离线和实时分开,数据不一致,结果可能不一样
    • kappa:通过消息中间件收集数据,实时和离线用同一套代码
原文地址:https://www.cnblogs.com/cxc1357/p/13618588.html