Giter Club home page Giter Club logo

bilibilipublicdataanalysis's Introduction

Readme

项目介绍

啰嗦

本项目基于Bilibili的分开信息,实现需求的主要模块为Flink + eCharts,点击直达官网。 项目代码主要是Scala + Python实现,建议学习大数据的最好掌握Java或Scala,学习资料丰富些。

GitHub地址

项目架构

项目环境版本信息

Scala Python Flink Flume Kafka CentOS Redis
2.11.8 3.7.3 1.7.2 1.7.0 0.11.0.2 6.8 2.8.17

一图胜千言

项目流程

静态图表

来看看效果,先上个静态的,这个简单需求完全可以不用框架实现,但已奉上粗漏的Flink代码,让大佬们适应一小下。

弹幕时间分布

动态图表

  • 需求一:弹幕在视频时间线上分布情况

弹幕散点

  • 需求二:视频净观看量、设定时间段内增量及增长率动态统计

观看量增长

为了调度代码我把时间设置得非常小,实际使用应该以小时计

跑项目的一些小建议

启动顺序

  1. Flume、Kafka启动顺序
    • 首先需要启动集群ZooKeeper,然后是Kafka服务、Flume
  2. 启动Redis
    • 爬虫使用了Redis存储视频一些静态信息
  3. 启动爬虫
    • 爬虫文件为PythonWorm/bilibiliWorm.py
  4. 启动Flink
    • FlinkAnalysis/src/main/scala/com.ck.bulletScreen & pageView
    • PV还有静态代码在
  5. 启动Flask
    • pyecharts下,每个需求一个文件
    • py会有一个对应的html文件,在html中写的eCharts代码,参考官方文档,要啥有啥

小提示

在config&ShellFiles里放了flume配置文件与一些脚本文件,方便有需要的借鉴~

文件说明

  • xsync.sh
    • 同步文件脚本
  • .bash_foo
    • 函数脚本,将各种启动、维护代码写成函数,放入以统一管理
  • .bash_aliases
    • alias统一管理脚本
  • .bash_profile
    • 在这个文件中需要加入引用.bash_aliases的代码

注意以上 . 开头的文件都放在 ~ 中

项目优化

待优化

  1. 暂时爬到的弹幕还是放在内存中去重,但大数据嘛,肯定不能这么干啊,之后会补充上布隆加Redis方案,使用布隆可能有少量数据会错误识别,但弹幕嘛,要求也没那么高
  2. 暂时各个图表需求都是分散的,且没有改Flask端口,一次只能启动一个;之后会将所有图集成到一个网页中,也考虑多端口使用

已优化

  1. 爬虫卡死:request添加timeout参数
  2. 图表初始数据载入:通过设置flag及prepare_init_data函数处理初始数据,通过jsonify传递给js载入;散点图载入全量数据,PV图载入最后十条数据,如果数据不够则只显示对应条目数据
  3. 散点图鼠标无触发信息,之后加上这个功能

一些参考链接

bilibilipublicdataanalysis's People

Contributors

kelvinchi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.