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.
计算节点配置 | |
计算节点配置 |
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.5 计算节点配置
打开系统运维--系统选项–执行引擎--计算节点配置,(具体配置根据实际部署环境修改):
如下图所示,重点配置红框地方,第一个框填写spark master连接地址,其它选项配置策略如下:
- instances * executor.memory <= spark可分配的内存数 * 0.
- 7(例如 52G * 0.
- 7 = 36)
- instances * executor.cores <= spark可分配的cpu核数 * 0.
- 7(
- 例如:
- 32核 * 0.
- 7 =
- 22)
- max = executor.instances * executor.cores
默认情况下,executor.memory 配置为8G,除非总的内存比8G还小,根据上面策略,其它选项配置如下
- instances = spark可分配的内存数 * 0.
- 7 / executor.memory =
- 52 * 0.
- 7 / 8 = 4
- cores = spark可分配的cpu核数 * 0.
- 7 / executor.instances =
- 32 * 0.
- 7 / 4 =
- 5
- max = executor.instances * executor.cores = 4 *
- 5 =
- 20
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部署成功。
borderColor | #BBBBBB |
---|---|
bgColor | #F0F0F0 |
borderWidth | 1 |
borderStyle | solid |
注意 |
---|
给引擎分配的cpu个数、内存大小,不能超过spark服务器拥有的cpu个数、总内存的大小,否则引擎会启动失败。 |
注意 |
---|
需采用先部署挖掘引擎在部署Spark的部署逻辑 |
1.1.6 停止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.7 Spark版本更新
Spark仅作为计算节点。为了保证产品兼容性及稳定性,建议使用smartbi推荐的spark版本。目前暂时没有更新版本。