一小时搭建实时数据分析平台

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 实时数据分析门槛较高,我们如何用极少的开发工作就完成实时数据平台的搭建,做出炫酷的图表呢?

image.png

如何快速的搭建实时数据分析平台,首先我们需要实时数据的接入端,我们选择高扩展性、容错性、速度极快的消息系统Kafka,而实时数据仓库,由于 Druid提供了非常方便快捷配置方式,如果不想编写负责的Flink和Spark代码,Druid绝对是一个不错的选择,有了数据仓库,我们必须需要一个可视化和交互式分析的平台,对druid支持最好的无疑是Superset了。

请注意,druid目前并不支持windows,所以我们将kafka 与 druid部署于我们的centos服务器中,而superset,可以在本地安装。

最终我们通过Kafka的实时数据接入能力,Druid的实时数据仓库存储,聚合能力,Superset的数据可视化与交互式分析能力,快速的搭建一套实时数据分析平台。

注:对于本教程需要的所有安装包,如果需要请在公众号回复 “实时数仓安装包” 下载

如果已有安装包,文中的Download安装包内容可以跳过~


一、CentOS下安装Kafka


Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统。

下载安装包

查看centos版本 cat /etc/redhat-release 我的是7.6

image.png

访问Kafka官网 http://kafka.apache.org/

选择左下方Download按钮

image.png

最新的版本已经是2.5 为了与公司版本统一 我们下滑选择1.0.0 注意选择二进制安装包

image.png

启动

上传包到服务器 进入所在目录

解压安装包:

tar -zxvf kafka_2.11-1.0.0.tgz

进入kafka目录 cd kafka_2.11-1.0.0

目录结构如下:

image.png

如果需要用自己的 zookeeper 多集群配置 需要修改 vi config/server.properties

我们这里启动kafka自带zk:-daemon 为后台启动

./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动Kafka

./bin/kafka-server-start.sh -daemon config/server.properties

不报错的话 查看进程是否正常运行 zk运行端口2181 kafka运行端口 9092

netstat -tunlp|egrep "(2181|9092)"

image.png

Kafka安装成功!

我们用命令行感受一下kafka

用一个生产者向test里发消息

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

再开启一个终端:

进入kafka的目录

开启消费者监听消息

./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

回到刚才的生产者 发送消息

image.png

再看消费者一端 消息收到了

image.png


二、CentOS安装Druid


Druid是一个分布式的支持实时分析的数据存储系统。通俗一点:高性能实时分析数据库。它由美国广告技术公司MetaMarkets于2011年创建,并且于2012年开源。MetaMarkets是一家专门为在线媒体公司提供数据服务的公司,主营是DSP广告运营推送平台,由于对实时性要求非常高,公司不得不放弃原始的大数据方案,Druid也就应运而生。

下载安装包

Druid官网地址 https://druid.apache.org/

选择Download

image.png

进入Download页

image.png

其他版本下载地址:https://archive.apache.org/dist/druid/

我们使用的版本是0.17.0

image.png

上传包到服务器

解压

tar -zxvf apache-druid-0.17.0-bin.tar.gz

进入目录

cd apache-druid-0.17.0

目录结构如下

image.png

我们选择最轻量的而服务器配置:

启动

单服务器参考配置

Nano-Quickstart:1个CPU,4GB RAM

启动命令: bin/start-nano-quickstart

配置目录: conf/druid/single-server/nano-quickstart

cd apache-druid-0.17.0/conf/druid/single-server/nano-quickstart/ vi _common/common.runtime.properties

修改zk地址
#
# Zookeeper,大概在46~55行中间,对zk进行配置
#
druid.zk.service.host=localhost:2181

修改默认端口验证

vi bin/verify-default-ports

把这行的2181去掉

my @ports = @ARGV;
if (!@ports) {
  @ports = (1527,  8083, 8090,  8100, 8200, 8888);
}

我们也可以自定义端口 都要在这里修改

随后我们启动

bin/start-nano-quickstart

启动成功!!

image.png

访问页面localhost:8888

image.png

druid已经成功启动!

导入Kafka数据

在kafka目录中运行命令 {PATH_TO_DRUID}替换为druid目录 这些是druid的测试数据

export KAFKA_OPTS="-Dfile.encoding=UTF-8"
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic wikipedia < {PATH_TO_DRUID}/quickstart/tutorial/wikiticker-2015-09-12-sampled.json

载入kafka数据到Druid

请将localhost替换为安装服务器的地址!

进入localhost:8888 点击load data

选择Apache Kafka并单击Connect data

image.png

输入kafka服务器localhost:9092
输入topic wikipedia 可以预览数据 然后下一步

image.png

解析数据

image.png

解析时间戳 设置转换 设置过滤

image.png

image.png

image.png

这步比较重要 确定统计的范围

image.png

image.png

发布!

image.png

等待任务完成

image.png

image.png

去查询页面查看,我们的数据已经实时写入Druid了

image.png


三、本地安装Superset


Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。

win10安装python 3.7

下载

Python官网,点击进入https://www.python.org/

image.png

点击Python官网的Downloads,然后在下拉菜单中点Windows,进入版本选择页面

image.png

进入版本选择页面,可以在最上面看到有Python3的最新版和Python2的最新版,在这里点击Python3.7.3进入下载页面 进入下载页面后,向下滚动鼠标,找到"Files",这里列出了Python3.7.3版本的不同操作系统的安装包或相关文件,我们是在Windows10里面安装,选择对应版本的安装包下载,点击下载,等待一会就可以下载完成了

image.png

安装

将下载完成的Python3.7.3安装包剪切到电脑桌面(不放桌面也可以,只是这样更方便),双击打开,然后将下方的两个选项框都打钩,再点击Customize installation进入下一步

image.png

这个界面默认所有选项都是打钩的,保持默认即可,点击Next进入下一步

image.png

将Install for all users选项打钩,其他的选项保持默认,此时下方的默认安装路径为C:\Program Files\Python37,这里可以点击Browse,根据自己的需求选择安装目录,但是目录名中最好不要包含中文.

如果C盘有很多空间,可以不更改,或者有固态硬盘的,可以选择将Python3.7.3装在固态盘中.

image.png

确认好安装位置后,点击Install进行安装

现在Python3.7.3开始安装,可以看到安装的进度条在读条,什么也不用做,稍等一会就安装完成了

进度条完成,会显示下面的菜单,表示已经安装成功了,现在点击Close即可,Python3.7.3已经安装成功了

image.png

验证

在安装完成Python3.7.3后,已经自动帮我们配好了环境变量(非常省事),我们直接在命令行里面使用python命令,就会进入Python3.7.3的交互界面.

按Win+R进入运行界面,在里面输入cmd回车,进入Windows的命令行,在命令行输入python37可以进入Python3.7.3的命令行模式,(输入a = 1,然后输入a,控制台输出1)测试成功,说明Python3.7.3安装成功

image.png

win10安装superset

安装

使用pip 需要下载一会~ 网不好可能下载失败,需要重新执行,之前下载的会缓存,网速不好的话可能很难~ 耐心一点

pip install apache-superset

image.png

成功!!

image.png

记录一下superset的安装位置 进入该目录

初始化
# 初始化数据库
python superset db upgrade

这个过程中会提示缺少包,初始化失败

image.png

依次安装即可 比如这里缺少 flask_migrate

我们就

pip install flask_migrate
# 创建管理员账号
python superset fab create-admin

提示输入用户名 密码

image.png

# 载入案例数据 也会有点慢 服务器在国外 也可以多试几次 不行可以跳过
python superset load_examples

image.png

# 初始化角色和权限
python superset init

image.png

# 启动服务,默认端口号 5000,使用 -p 更改端口号
python superset run

成功!!

image.png

浏览器访问http://localhost:5000/

image.png

image.png

image.png

superset查询 展示druid数据

这时候还不能连Druid

需要安装pydruid

pip install pydruid

重启superset

新建数据源

image.png

image.png

成功!!保存

image.png

新建刚才的表

image.png

image.png

进入表 设置展示效果

image.png

这里根据数据情况 进行各种展示设置

image.png

选择sqlLite 进行sql查询

image.png

至此实时数据分析平台已经搭建完成,可以进行实时数据的接入,展示,分析等等工作。

java 向kafka中发送数据demo

依赖

<dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>1.0.0</version>
        </dependency>

demo

public class ProducerTestDemo {
    public static void main(String[] args) throws Exception {
        Properties properties = new Properties();
        properties.put("bootstrap.servers", "localhost:9092");
        properties.put("acks", "all");
        properties.put("retries", 0);
        properties.put("batch.size", 16384);
        properties.put("linger.ms", 1);
        properties.put("buffer.memory", 33554432);
        properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        KafkaProducer<String, String> kafkaProducer = new KafkaProducer<String, String>(properties);
            try{
                BufferedReader br = new BufferedReader(new FileReader(new File("C:\\aaa.csv")));
                String s = null;
                while((s = br.readLine())!=null){
                    kafkaProducer.send(new ProducerRecord<String, String>("topic", s));
                }
                br.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        kafkaProducer.close();
    }
}
相关文章
|
8月前
|
数据可视化 数据挖掘 大数据
Pandas+Pyecharts | 北京某平台二手房数据分析可视化
Pandas+Pyecharts | 北京某平台二手房数据分析可视化
|
5月前
|
人工智能 Cloud Native 大数据
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
构建高性能云原生大数据处理平台:融合人工智能优化数据分析流程
191 0
|
2月前
|
存储 分布式计算 数据挖掘
Pig 数据分析平台
Pig 是一个基于 Hadoop 的数据分析平台,它是由 Yahoo! 开发并捐献给 Apache 软件基金会的一个开源项目。Pig 起源于 Yahoo! 的广告业务部门,旨在处理大规模数据并支持数据分析。【2月更文挑战第5天】
25 5
|
4月前
|
传感器 监控 安全
实时监控、数据分析、智能管理的智慧工地平台(源码)
智慧工地是指通过信息化技术、物联网、人工智能技术等手段,对建筑工地进行数字化、智能化、网络化升级,实现对施工全过程的实时监控、数据分析、智能管理和优化调控。智慧工地的建设可以提高工地的安全性、效率性和质量,降低施工成本,是建筑行业数字化转型升级的重要抓手。主要围绕“人、机、料、法、环、质、安、进”各业务环节的智能化、互联网化管理,提升建筑工地的精益生产管理水平。
实时监控、数据分析、智能管理的智慧工地平台(源码)
|
7月前
|
数据采集 数据挖掘 测试技术
Gartner:实施混合式数据分析平台的三个步骤
Gartner:实施混合式数据分析平台的三个步骤
|
7月前
|
存储 机器学习/深度学习 运维
课时1:日志服务 SLS 可观测数据分析平台介绍
课时1:日志服务 SLS 可观测数据分析平台介绍
334 0
|
7月前
|
存储 人工智能 数据可视化
伙伴云连续2年入选Gartner《中国分析平台市场指南》,数据分析能力遥遥领先
伙伴云作为中国分析与商业智能平台代表性厂商,因出色的数据分析能力,入选Gartner2023《中国分析平台市场指南》(《Market Guide for Analytics Platforms, China》,以下简称“指南”),成为入选该报告中唯一一家零代码厂商。
98 0
|
7月前
|
SQL 关系型数据库 MySQL
边锋 x AnalyticDB MySQL:打造一站式游戏数据分析平台
杭州边锋网络技术有限公司是国内领先的休闲游戏开发商、运营商、发行商。20余年来,边锋网络一直是中国棋牌游戏的开拓者和变革者。  边锋网络市场覆盖20余个省份,注册用户过亿,月活跃用户上千万,是国家级重点软件企业(一类)。公司大数据分析系统"反应堆"目前支持着包括雀神广东麻将、边锋斗地主、蜀山四川麻将、功夫川麻等10余款休闲游戏产品;
|
8月前
|
SQL 安全 搜索推荐
瓴羊Dataphin升级V3.11,新上线数据分析、隐私计算平台促进数据流通消费
瓴羊旗下开发云核心产品Dataphin(智能数据建设与治理)近期升级到V3.11版本,全新上线Notebook数据分析空间,以及Dataphin隐私计算平台,在数据采、建、管、用的基础上,进一步强化数据消费和数据流通能力,帮助企业用标准化的产品能力,在大数据时代构建起生产经济、质量可靠、安全稳定、消费便捷的企业级数据资产,促进数据价值释放。
14339 3
|
9月前
|
人工智能 供应链 数据可视化
电子商务平台市场动向的数据分析平台:阿里商品指数,包括淘宝采购指数,淘宝供应指数,1688供应指数。
电子商务平台市场动向的数据分析平台:阿里商品指数,包括淘宝采购指数,淘宝供应指数,1688供应指数。
电子商务平台市场动向的数据分析平台:阿里商品指数,包括淘宝采购指数,淘宝供应指数,1688供应指数。