Byzer 提供了Docker,发型包,桌面版等各种部署方式,有的时候会让人乱花渐欲迷人眼,对新手而言会有不知所措。
经过一段时间的观察,我发现最好的方式还是发型包,而且通过发行包的方式,可以很好的面向单机和基于Yarn的分布式。而且部署过程遵循如下流程,足够简单:
- 下载,解压
- 修改配置(可选)
- 启动
单机版本
下载:
- Byzer-lang: https://download.byzer.org/latest/byzer-lang-all-in-one-linux-amd64-3.3.0-2.4.0-SNAPSHOT.tar.gz
- Byzer-notebook: https://download.byzer.org/latest/Byzer-Notebook-1.2.3.tar.gz
然后解压。
首先是启动 Byzer-lang 引擎,
进入 byzer-lang-all-in-one-linux-amd64-3.3.0-2.4.0-SNAPSHOT 目录,执行如下命令即可启动 By zer 引擎:
代码语言:javascript复制./bin/byzer.sh start
启动完成后就可以访问 9003 端口了。
启动 Byzer Notebook 则需要提前准备一个 MySQL 数据库,建议 5.7 版本的,然后创建一个名称叫做 notebook 的数据库。现在可以进入 Byzer-Notebook-1.2.3, 修改 conf/notebook.properties 文件,根据数据库实际地址修改数据库配置部分:
代码语言:javascript复制notebook.database.type=mysql
notebook.database.ip=127.0.0.1
notebook.database.port=3306
notebook.database.name=notebook
notebook.database.username=root
notebook.database.password=root
现在就可以启动 Notebook了:
代码语言:javascript复制./bin/notebook.sh start
此时就可以访问 9002 端口了,进入 Notebook 界面开始工作了。
让 Byzer-lang 运行在 Yarn
第一步:下载 spark-3.3.0 : https://archive.apache.org/dist/spark/spark-3.3.0/spark-3.3.0-bin-hadoop3.tgz 解压
第二步,把 core-site.xml, yarn-site.xml , hive-site.xml 三个文件丢到 spark-3.3.0-bin-hadoop3/conf 目录里
第三步, 进入目录 byzer-lang-all-in-one-linux-amd64-3.3.0-2.4.0-SNAPSHOT/conf, 拷贝 server 配置:
代码语言:javascript复制cp byzer.properties.server.example byzer.properties.overwrite
启动引擎:
代码语言:javascript复制export SPARK_HOME=xxxxxxx && ./bin/byzer.sh start
特定情况还需要配置 HADOOP_HOME 或者 YARN_CONF_DIR 两个变量中的一个
现在 Byzer引擎会以 yarn-client 模式运行在 Yarn 集群了。你可以访问本地 9003 端口或者通过 Notebook 直接使用。
如何部署在 Kubenertes 里(开发测试中)
也是三步。
第一步,添加仓库:
代码语言:javascript复制helm repo add byzer http://store.mlsql.tech/charts
第二步,安装引擎:
代码语言:javascript复制helm install -n byzer --create-namespace bz byzer/Byzer-lang
--set clusterUrl=https://192.168.3.42:16443
--set fs.defaultFS=oss://xxxx
--set fs.impl=org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem
--set fs.oss.endpoint=oss-cn-hangzhou.aliyuncs.com
--set fs.oss.accessKeyId=xxxx
--set fs.oss.accessKeySecret=xxxxx
引擎需要一个对象存储或者 HDFS ,这里我配置了阿里云 OSS。
第三步,安装 Byzer Notebook (需要配置一个数据库,需要有个库名叫 notebook):
代码语言:javascript复制helm install -n byzer --create-namespace nb byzer/Byzer-notebook
--set name=nb
--set engine=bz
--set notebook.database.ip=192.168.3.14
--set notebook.database.username=xxx
--set notebook.database.password=xxxx
现在就可以访问 Notebook 了。