注意:此文档仍在完善中。
smart-meter镜像用于演示智能电表大数据应用,展示从数据注入、实时处理、批处理分析到机器学习预测的完整流程。通过Docker容器化部署,集成了数据存储、流处理、监控可视化等组件,适用于大数据架构展示、开发测试及技术演示场景。
!SmartMeter架构
生成docker-compose-merge.yml文件
使用combine_services.sh脚本(或对应Docker镜像)生成配置文件,需指定服务组合:
当提供Docker Secrets时:
bash./compose/combine_services.sh "_secrets" root_metrics inject_metrics streaming_metrics prediction_metrics > docker-compose-merge.yml
或使用Docker镜像:
bashdocker run logimethods/smart-meter:compose "_secrets" root_metrics inject_metrics streaming_metrics prediction_metrics > docker-compose-merge.yml
当不提供Docker Secrets时:
bash./compose/combine_services.sh "_no-secrets" root_metrics inject_metrics streaming_metrics prediction_metrics > docker-compose-merge.yml
或使用Docker镜像:
bashdocker run logimethods/smart-meter:compose "_no-secrets" root_metrics inject_metrics streaming_metrics prediction_metrics > docker-compose-merge.yml
启动和停止服务
基于生成的docker-compose-merge.yml文件管理服务:
bash# 启动服务(本地/远程,单节点/集群模式) ./docker-[local | remote]-[single | cluster]-up.sh # 停止服务 ./docker-[local | remote]-down.sh
本地模式
使用start-services.py脚本管理服务:
bash> python3 -i ./start-services.py >>> run_inject() # 启动数据注入 >>> run_app_batch() # 运行批处理应用 ... >>> stop_all() # 停止所有服务 ... >>> exit() # 退出
Grafana配置:
!Gatling-max-voltage截图
调整注入器数量:
bash> docker service scale inject=2 # 扩展到2个注入器 > docker service scale inject=1 # 缩减到1个注入器
本地开发模式(DEV mode)
bash> ./build_DEV.sh # 构建开发模式镜像 > ./stop.sh # 停止现有服务 > python3 -i start-services.py "local" "single" "-DEV" # 启动开发模式服务 Images will be postfixed by -DEV # 镜像将添加-DEV后缀 >>> run_inject() # 启动数据注入
远程模式(Docker Swarm)
bash# 建立SSH隧道连接远程Docker > ssh -NL localhost:2374:/var/run/docker.sock docker@xxxxx.amazonaws.com & # 启动远程集群服务 > python3 -i ./start-services.py "remote" "cluster" > Remote Docker Client >>> run_inject_cluster() # 启动集群数据注入 ... >>> stop_all() # 停止所有服务 ... >>> exit() # 退出
Grafana配置:
!Gatling-max-voltage-swarm截图
数据注入架构
!SmartMeter-Inject架构
批处理架构
!SmartMeter-Batch架构
访问Grafana,配置以下数据源:
Graphite:
InfluxDB:
Prometheus:
访问原始电压数据:
bash> ./cqlsh.sh Connected to Smartmeter Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. cqlsh> select * from smartmeter.raw_data limit 2; line | transformer | usagepoint | year | month | day | hour | minute | day_of_week | demand | val10 | val11 | val12 | val3 | val4 | val5 | val6 | val7 | val8 | val9 | voltage ------+-------------+------------+------+-------+-----+------+--------+-------------+--------+-------+-------+-------+------+------+------+------+------+------+------+----------- 11 | 2 | 5 | 2019 | 3 | 17 | 12 | 13 | 0 | 100 | 10 | 11 | 12 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 114.76842 11 | 2 | 5 | 2019 | 3 | 17 | 11 | 58 | 0 | 100 | 10 | 11 | 12 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 114.10834
!SmartMeter-Training架构
基于多层感知器分类器实现,核心代码见SparkPredictionProcessor.scala。
预测示例输出:
+-----+----------+----+--------------------+--------------------+---------+-----------+--------------------+----------+ |label| voltage|hour| hourSin| hourCos|dayOfWeek|temperature| features|prediction| +-----+----------+----+--------------------+--------------------+---------+-----------+--------------------+----------+ | 0| 115.36195| 13| -12.940958284226115| -48.296289698960514| 0| -1.1098776|[-12.940958284226...| 0.0| | 0|115.378006| 14| -24.999994594456457| -43.3012733101135| 0| 16.545746|[-24.999994594456...| 0.0| | 0| 116.9641| 3| 35.35533905932737| 35.35533905932738| 0| 4.004334|[35.3553390593273...| 0.0| | 1| 118.92017| 23| -12.94095828422611| 48.296289698960514| 50| 21.167358|[-12.940958284226...| 0.0| | 1| 119.15324| 12|6.123233995736766...| -50.0| 50| -12.110409|[6.12323399573676...| 1.0| ... +-----+----------+----+--------------------+--------------------+---------+-----------+--------------------+----------+ only showing top 20 rows Test set accuracy = 0.9642857142857143
预测结果可视化: !Grafana预测截图
生成的机器学习模型存储在HDFS(端口50070):HDFS浏览
NATS指标监控
!Grafana NATS指标截图
安装ODBC驱动
SimbaApacheCassandraODBCDriver.lic保存到指定位置创建DSN文件
从Excel连接数据
iODBC Data Source Chooser(File DSN)连接外部数据select * from smartmeter.raw_data limit 10;!从Cassandra到Excel
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务