版本比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
Smartbi数据挖掘介绍
1、数据挖掘整体架构图
2、数据挖掘节点具体说明
1)实验引擎
主要负责接收smartbi 发送实验执行请求,通过解析实验定义,生成spark 计算任务或python计算任务,分别发送给spark集群或python集群。
本身并不承担计算任务,只负责计算任务的调度跟分发。
2)spark 集群
分布式计算平台,主要承担实验引擎发送过来的计算任务,其中worker实例可以横向扩展。
3)python 执行节点
python 执行环境,主要承担实验引擎发送过来的python计算任务。可以横向扩张,实验引擎会根据负责均衡策略把python计算任务分发到不同节点。
4)服务引擎
主要提供模型预测服务给第三放系统调用,可以通过smartbi proxy搭建负载均衡集群。
5)Zookeeper集群
主要用于实现实验引擎的高可用。
安装指南
1、系统环境要求
操作系统要求:
Linux操作系统平台 | 版本 |
---|---|
Red Hat Enterprise Linux | 推荐7.4 及以上 |
CentOS | 推荐7.4 及以上 |
服务器配置建议:
组件 | CPU | 内存 | 硬盘 | 网络 | 备注 |
---|---|---|---|---|---|
实验引擎 | 8核+ | 8G+ | 安装目录300G+ | 万兆网卡 | 如果资源紧张,可以跟服务引擎在同台机器 |
spark master | 8核+ | 8G+ | 安装目录300G+ | 万兆网卡 | 如果资源紧张,可以跟其中一台spark worker同一台机器 |
spark worker | 16核+ | 32G+ | 1T | 万兆网卡 | 承担计算任务 |
python执行节点 | 16核+ | 32G+ | 1T | 万兆网卡 | 承担计算任务,强烈建议最好独立机器,避免资源争用 |
服务引擎 | 8核+ | 8G+ | 安装目录300G+ | 万兆网卡 | 如果资源紧张,可以跟实验引擎在同台机器 |
2、部署场景
最小集群(3台机器,每台CPU 16核+,内存 32G+):
服务器IP | 主机名 | 组件实例 |
---|---|---|
192.168.137.139 | smartbi-engine | 实验引擎,服务引擎 |
192.168.137.140 | smartbi-python | python执行节点 |
192.168.137.141 | smartbi-spark | spark单节点(master+worker) |
5台机器集群(每台CPU 16核+,内存 32G+):
服务器IP | 主机名 | 组件实例 |
---|---|---|
192.168.137.139 | smartbi-engine | 实验引擎,服务引擎 |
192.168.137.140 | smartbi-python | python执行节点 |
192.168.137.141 | smartbi-spark | spark master,spark worker |
192.168.137.142 | smartbi-spark2 | spark worker |
192.168.137.143 | smartbi-spark3 | spark worker |
3、安装介质装备
SmartbiMining介质:
安装介质 | 文件名 |
---|---|
JDK | jdk-8u181-linux-x64.tar.gz |
Spark | spark-2.4.0-bin-hadoop2.7.tgz |
SmartbiEngine | smartbi-mining-engine-bin.tar.gz |
Python | Python节点安装包Anaconda3-2019.10-Linux-x86_64.sh |
CentOS7版本:bzip2-1.0.6-13.el7.x86_64.rpm |
离线插件包:plugin |
4、设置系统环境
注意 |
---|
每台服务器中均需要设置系统环境。 |
4.1 取消打开文件数限制
修改/etc/security/limits.conf文件在文件的末尾加入以下内容:
#vi /etc/security/limits.conf
在文件的末尾加入以下内容:
soft nofile 65536
hard nofile 65536
soft nproc 131072
hard nproc 131072
4.2 关闭防火墙/SElinux
1、关闭防火墙
关闭防火墙
#systemctl stop firewalld
禁止防火墙开机启动
#systemctl disable firewalld
查看防火墙状态
#systemctl status firewalld
2、关闭Selinux 防火墙
临时关闭selinux
#setenforce 0
永久关闭selinux防火墙(需要重启服务器生效)
#vi /etc/selinux/config
SELINUX=enforcing改成SELINUX=disabled
4.3 修改主机名-添加主机映射关系
1、修改主机名:
#hostnamectl set-hostname 新主机名
注意 |
---|
主机名不能使用下划线。 |
2、配置主机名和IP的映射关系
#vi /etc/hosts
内容设置,例如:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.139 smartbi-engine
192.168.137.140 smartbi-python
192.168.137.141 smartbi-spark
192.168.137.142 smartbi-spark2
192.168.137.143 smartbi-spark3
安装部署SmartbiMining
联系support获取相关安装包,并将安装包上传到对应的服务器中。
1、Spark安装
1.1 单节点Spark安装
1.1.1 安装JAVA
解压jdk到指定目录:
# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt
添加环境变量。
# vi /etc/profile
在最底下添加下面内容:
export JAVA_HOME=/opt/jdk1.8.0_181
export JAVA_BIN=$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_BIN
让配置生效
# source /etc/profile
#java -version
1.1.2 安装Spark
解压Spark到安装目录
#tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz -C /opt
1.1.3 启动Spark
启动Spark master
#cd /opt/spark-2.4.0-bin-hadoop2.7/sbin
# ./start-master.sh -h 主机名
例如: 主机名为smartbi-spark,则执行:./start-master.sh -h smartbi-spark
启动Spark work
#cd /opt/spark-2.4.0-bin-hadoop2.7/sbin
#./start-slave.sh spark://master节点的主机名:7077 -c 配置的cpu数 -m xg 配置得的内存数(g为单位)
Work 节点最低配置为 1 核 8G 内存。 cpu 和内存比值建议为 1:8 ,即一个 cpu 配置 8G 的内存
例如:worker节点为8核,64G内存的配置,master的主机名为smartbi-spark,则执行:
# ./start-slave.sh spark://smartbi-spark:7077 -c 6 -m 48g #2核16G留给系统
1.1.4 检查Spark
在浏览器中输入:http://master节点的ip:8080,查看集群状态,
在master节点提交任务测试进入/opt/spark-2.4.0-bin-hadoop2.7/bin目录,执行以下命令(注意将”节点的IP”替换对应的IP或主机名)
#./spark-submit --class org.apache.spark.examples.SparkPi --master spark://节点的ip:7077 /opt/spark-2.4.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.0.jar 100
运行得出圆周率Pi的近似值3.14即部署成功。
1.1.5 停止Spark
#cd /opt/spark-2.4.0-bin-hadoop2.7/sbin
#./stop-all.sh
输入部署spark的节点的密码,停止spark。
查看日志
Spark的日志路径:/opt/spark-2.4.0-bin-hadoop2.7/logs
安装部署或者使用中有问题,可能需要根据日志来分析解决。
1.1.6 Spark版本更新
Spark仅作为计算节点。为了保证产品兼容性及稳定性,建议使用smartbi推荐的spark版本。目前暂时没有更新版本。
1.2 Spark集群安装
集群服务器:
机器 | 主机名 | 组件实例 |
---|---|---|
192.168.137.141 | smartbi-spark | spark master,spark worker |
192.168.137.142 | smartbi-spark2 | spark worker |
192.168.137.143 | smartbi-spark3 | spark worker |
1.2.1 配置系统免密登录(集群服务器都执行)
1)生成密钥
# ssh-keygen
输入ssh-keygen后,连续按三次回车,不用输入其它信息
2)复制本机公钥到其它机器
假设当前的系统用户为root(注意,每台机器使用同一个用户来安装), 那命令如下:
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@smartbi-spark
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@smartbi-spark2
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@smartbi-spark3
3)如果以上命令执行失败,可以手工把每个节点 ~/.ssh/id_rsa.pub的数据追加到其它节点的~/.ssh/authorized_keys文件中, 如果~/.ssh/authorized_keys不存在,可以新建一个.
4)测试是否设置成功
例如:
# ssh root@smartbi-spark
# ssh root@smartbi-spark2
# ssh root@smartbi-spark3
如果不用输入密码,表示设置成功.
1.2.2 集群安装JAVA(集群服务器都执行)
解压jdk到指定目录:
# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt
添加环境变量。
# vi /etc/profile
在最底下添加下面内容:
export JAVA_HOME=/opt/jdk1.8.0_181
export JAVA_BIN=$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_BIN
让配置生效
# source /etc/profile
#java -version
1.2.3 Spark master节点安装Spark
1)解压Spark到安装目录
#tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz -C /opt
2)配置Spark从节点列表
#cd /opt/spark-2.4.0-bin-hadoop2.7/conf
#cp slaves.template slaves
# vi slaves
把所有spark worker节点的机器名加到slaves文件中,例如slaves文件内容设置如下:
smartbi-spark
smartbi-spark2
smartbi-spark3
3)配置spark-env
#cd /opt/spark-2.4.0-bin-hadoop2.7/conf
#cp spark-env.sh.template spark-env.sh
spark-env 配置项说明:
- JAVA_HOME=java安装路径
- SPARK_MASTER_IP=spark的管理节点主机名或ip
- SPARK_MASTER_PORT=7077
- SPARK_MASTER_WEBUI_PORT=8080
- SPARK_WORKER_CORES=worker进程cpu数量(视现场服务器配置而定)
- SPARK_WORKER_MEMORY=worker进程可支配内存(视现场服务器配置而定,单位:G, 例如:2G )
例如,worker节点为6核,48g内存,把2核16G留给操作系统
#vi spark-env.sh
内容设置如下:
JAVA_HOME=/opt/jdk1.8.0_181
SPARK_MASTER_IP=smartbi-spark
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=6
SPARK_WORKER_MEMORY=48g
4)把安装目录分发到 spark worker节点
假设当前的系统用户为root命令如下:
#scp -r /opt/spark-2.4.0-bin-hadoop2.7 root@smartbi-spark2:/opt/
#scp -r /opt/spark-2.4.0-bin-hadoop2.7 root@smartbi-spark3:/opt/
5)在Spark master节点启动Spark
# cd /opt/spark-2.4.0-bin-hadoop2.7/sbin/
#./start-all.sh
6)检验是否安装成功
在浏览器中输入:http://master节点的ip:8080, 检查集群状态,页面呈现如下:
表示安装成功。
2、安装Python节点
python节点主要用于机器学习的DBSACN算法和自定义模块的python脚本扩展。如果没有用到这两个功能模块,可以不用部署python节点。
2.1 配置基础环境
1)安装JAVA
解压jdk到指定目录:
# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt
添加环境变量。
# vi /etc/profile
在最底下添加下面内容:
export JAVA_HOME=/opt/jdk1.8.0_181
export JAVA_BIN=$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_BIN
让配置生效
# source /etc/profile
#java -version
2)配置本地yum源
参考文档:https://www.jellythink.com/archives/548
注意 |
---|
Centos7.4 以上,可不设置本地yum源。 |
2.2 安装Python主程序
1)安装依赖包
#rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm
#yum install gcc
注意 |
---|
Centos7.4 以上,无需安装依赖包。 |
2)配置环境变量
#vi /etc/profile
在末尾添加以下内容:
export PATH=/opt/anaconda3/bin:$PATH
# source /etc/profile
3)安装 Anaconda3并指定安装目录为/opt/anaconda3
#bash Anaconda3-2019.10-Linux-x86_64.sh -b -p /opt/anaconda3
检验是否安装成功
#python --version
Python 3.7.4 #表示安装成功
2.3 离线安装Python插件
批量安装:
#pip install --no-index --find-links=./plugin/ -r requirements.txt
requirements.txt文件可查看附件:
2.4 部署引擎包
解压到安装目录
#tar -zxvf SmartbiMiningEngine-V9.5.56071.20221.tar.gz -C /opt
2.5 创建Python执行用户
创建用户
useradd mining-py
设置用户密码
passwd mining-py
把引擎安装目录所有者设置为mining-py
chown -R mining-py:mining-py /opt/smartbi-mining-engine-bin
3、安装Smartbi-engine
3.1 配置基础环境
1)安装JAVA
解压jdk到指定目录:
# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /opt
添加环境变量。
# vi /etc/profile
在最底下添加下面内容:
export JAVA_HOME=/opt/jdk1.8.0_181
export JAVA_BIN=$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_BIN
让配置生效
# source /etc/profile
#java -version
3.2 安装数据挖掘引擎
解压Smartbi-engine到安装目录
#tar -zxvf SmartbiMiningEngine-V9.5.56071.20221.tar.gz -C /opt
3.3 启动数据挖掘引擎
注意 |
---|
需要先启动Spark和Smartbi。 |
进入目录
#cd /opt/smartbi-mining-engine-bin/engine/sbin
#./experiment-daemon.sh start
#./service-daemon.sh start
3.4 重启/停止/查看数据挖掘引擎
进入目录
#cd /opt/smartbi-mining-engine-bin/engine/sbin
重启数据挖掘引擎:
#./experiment-daemon.sh restart
#./service-daemon.sh restart
停止数据挖掘引擎:
#./experiment-daemon.sh stop
#./service-daemon.sh stop
查看数据挖掘引擎:
#./experiment-daemon.sh status
#./service-daemon.sh status
3.5 数据挖掘引擎日志
数据挖掘引擎启动后,会在/opt/smartbi-mining-engine-bin目录下生成logs目录,用来保存启动的引擎日志。
安装部署或使用中遇到问题,可能需要提供相应的日志文件来分析解决。
3.6 数据挖掘引擎版本更新
联系support获取新版本的数据挖掘引擎安装包。
新数据挖掘引擎安装包解压缩后;
先备份/opt/smartbi-mining-engine-bin/engine目录;
再删除/opt/smartbi-mining-engine-bin/engine目录,然后上传新的engine目录,并重启数据挖掘引擎。
注意 |
---|
数据挖掘引擎安装包版本要和smartbi的war包版本一致,更新时需要同步更新Python节点中的引擎包。 |
4、配置Smartbi连接Smartbi-engine
4.1 配置实验引擎地址
访问smartbi
使用浏览器打开 http://服务器ip:端口/smartbi/vision/index.jsp
系统运维--系统选项--引擎设置
修改完测试引擎地址和服务地址,点解测试引擎连接和测试服务连接,如果都弹出成功提示框,表示配置成功,然后点击保存。
4.2 设置实验引擎/服务引擎连接smartbi的配置项
实验引擎:
系统运维--系统选项--执行引擎--引擎配置。如下图所示:
服务引擎:
系统运维--系统选项–服务引擎
4.3 设置实验引擎连接Python执行节点配置项
系统运维--系统选项--执行引擎--引擎配置。如下图所示:
4.4 设置实验引擎连接Spark
浏览器访问spark master webui, 访问地址:http://sparkmaster安装机器ip:8080, 比如spark master安装在192.168.137.141机器,那访问地址就是: http://192.168.137.141:8080
访问后,显示如下,第一个框是指spark master连接地址,第二个框是指spark可分配的cpu核数,第三个框指spark可分配的内存数.
系统运维—系统选项—执行引擎—计算节点配置
如下图所示,重点配置红框地方,第一个框填写spark master连接地址,其它选项配置策略推荐如下(某种场景下,这并不是最优策略,可根据实际情况调整):
1.executor.instances * executor.memory <= spark可分配的内存数 * 0.75(例如上图: 48G * 0.75 = 36)
2.executor.instances * executor.cores <= spark可分配的cpu核数 * 0.75(例如上图: 6核 * 0.75 = 4)
3.cores.max = executor.instances * executor.cores
默认情况下,executor.memory 配置为8G,除非总的内存比8G还小,根据上面策略,其它选项配置如下
executor.instances = spark可分配的内存数 * 0.75 / executor.memory = 48 * 0.75 / 8 = 4
executor.cores = spark可分配的cpu核数 * 0.75 / executor.instances = 6 * 0.75 / 4 = 1
cores.max = executor.instances * executor.cores = 4 * 1 = 4
5、测试Smartbi-engine
5.1 测试Smartbi-Engine-Experiment服务
1)打开数据挖掘-案例-选择一个案例,打开。
2)保存数据挖掘实验,运行数据挖掘,运行成功即数据挖掘实验部署成功。
5.2 测试Smartbi-Engine-Service服务
1)打开数据挖掘-案例-窃漏电预测。
2)保存示例,点击运行,等待运行成功。
3)右键点击”训练”-模板-保存模型。
4)保存的的模型可以在左侧导航栏的”已训练模型”中查看。右键删除”随机森林”,”训练”。
5)将保存的示例模型拖入,并与”预测连线”。
6)导航栏-服务-拖入 服务输入、服务输出,并连线,运行成功后点击部署服务。
7)服务部署成功后选择服务测试,显示测试结果。
Smartbi-Engine-Service部署测试成功。
5.3 测试Python节点
1)打开 数据挖掘 > 新建实验 。
2)拖拽“示例数据源”,选择数据源 - 保存 - 运行 - 运行成功。
3)拖拽PYTHON脚本,与示例数据源连线,点击Python脚本。
4)点击确定。
5)点击运行,提示运行成功,则Smartbi-mining-pynode部署成功。
面板 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|