一键部署
本部署集群模式默认使用HBase作为存储引擎,使用Zeroc-ICE作为RPC服务,单机模式默认使用Mysql作为存储引擎,如需自定义相关配置,请参考: 自定义存储引擎 以及 自定义RPC组件
nodelist文件中配置一个节点,即为部署单机模式;配置三个或以上节点即为部署集群模式!
系统环境
- 部署脚本支持Rocky、AlmaLinux、CentOS、RHEL、Ubuntu、Debian等操作系统,已测试过的系统版本有Rocky(8.5 , 8.6 , 9.0 , 9.1 , 9.2)、AlmaLinux(8.5 , 8.6 , 9.1 , 9.2)、CentOS(7.4 , 7.9 , 8.4)、RHEL(8.6)、Ubuntu(18.04 , 20.04 , 22.04)、Debian(10.2 ,10.12 , 11.1 , 12.4),建议您优先选择以上系统发行版;
- 系统必须为64bit,CPU选择Intel型号;
- 执行部署脚本需要使用root账号,并且服务器需要有外网访问权限(外网权限仅用于yum/apt安装依赖包),部署完成后不再需要root和外网访问权限;
- 集群模式至少需要3个节点,单节点最低运行配置为:CPU-Cores>=4,Memory>=16G,建议单节点配置:CPU-Cores>=16,Memory>=64G;单机模式最低配置为:CPU-Cores>=4,Memory>=8G;
- 各节点的系统发行版、系统版本号、节点内存和CPU、磁盘容量建议保持一致。
- 各节点时区保持一致,请配置时间服务器,不同节点的hostname不可相同,提前关闭系统防火墙。
源码编译
您可以直接下载Releases发布包下载地址或选择自己编译。
下载源码
请使用JDK11编译,选择releases最新分支,不要使用main开发分支。
git clone -b releases-x.x.x https://github.com/xl-xueling/xl-lighthouse.git
或
git clone -b releases-x.x.x https://gitee.com/xl-xueling/xl-lighthouse.git
源码编译
执行命令如下,该步骤涉及前端模块编译,耗时较长,请耐心等待!
mvn clean install -P release
编译完成后,在lighthouse-assembly/target目录下生成的lighthouse-x.x.x.tar.gz即为系统部署文件。
服务部署
部署准备
- 选择集群中的一台服务器作为部署操作节点,【以下操作只需要在该节点执行即可】;
- 使用root账号登录操作节点,创建部署路径(务必选择磁盘空间最大的分区,并且不要部署到/root路径下,可能会有操作权限限制),本文档默认将集群部署在/usr/soft路径下;
- 上传lighthouse-x.x.x.tar.gz到操作节点部署路径下并解压文件;
配置/bin/config/nodelist
10.206.0.7;NodeA123456(重要:第一个节点必须为当前部署操作节点,单机模式只需要配置当前节点即可)
10.206.0.9;NodeB123456
10.206.0.17;NodeC123456
nodelist文件配置说明:
- nodelist为集群节点信息,包含集群节点的内网IP和节点对应的root账号的密码,使用分号分割,配置格式为: ip;password。
- nodelist的第一行配置必须为当前执行部署操作的节点。
- nodelist中配置一个节点,即为单机模式,配置3个或以上节点即为集群模式。
- 部署脚本执行时会根据该文件生成nodelist.new文件只包括节点IP信息,如果担心root密码泄漏,可在部署完成后将nodelist文件删除.
配置/bin/config/deploy.json
如果您希望快速的初步体验XL-LightHouse,该文件直接使用默认配置即可。
deploy.json文件包括各组件集群规划配置和相关密码设置等配置信息(修改该文件中的参数,重启服务不会生效,必须重新部署才能生效)。
deploy.json文件配置说明:
- 正式环境部署务必修改其中的密码相关参数,防止数据泄露风险;
- 可以使用nodes_size或nodes_ips两种配置方法指定各组件的集群规模和部署节点,系统默认使用node_size方式, 如果使用nodes_size即按照nodelist节点顺序至上而下选择指定数量的节点部署该组件。 如果使用nodes_ips为指定相应的ip,多个ip之间使用分号分割。
hadoop、hbase、spark三个组件的部署节点需要保持一致(自定义存储引擎请忽略)。
集群模式部署,对应cluster-deploy.json配置文件。
- 单机模式部署,对应standalone-deploy.json配置文件。
配置/bin/config/config.json
如果您希望快速的初步体验XL-LightHouse,该文件直接使用默认配置即可。
config.json文件主要包括各组件内存参数相关配置(修改该文件中的参数,执行restart-all.sh重启服务即可生效)。
config.json文件配置说明:
- 集群模式部署,对应cluster-config.json配置文件,可以直接复制本文档 cluster-config.json配置参考的配置。
- 单机模式部署,对应standalone-config.json配置文件,可以直接复制本文档 standalone-config.json配置参考的配置。
执行部署命令
# 执行一键部署命令
/usr/soft/lighthouse-x.x.x/bin/easy-deploy.sh
脚本参数:
--force,重复执行部署脚本时使用,会强制删除之前的部署文件后再进行部署(会导致原先的数据丢失)。
输出日志:
/usr/soft/lighthouse-x.x.x/bin/log/log.txt
部署脚本自动下载所依赖组件安装包,具体下载时间取决于您的服务器网络状况,如果服务器网速较差,出现下载超时等情况,请首先删除./packages目录下的已下载文件,然后重新部署即可!
部署验证
部署脚本输出日志“XL-LightHouse installed successfully!”表示部署完成!
Web服务验证
使用Web模块部署IP访问(默认为集群第一个节点),端口为8181,初始账号/密码为:admin/123456,建议您使用chrome浏览器访问。
部署完成后默认使用内网地址访问,如果您是使用公网IP访问,出现远程连接异常时,可以配置一下安装目录./light-webapps/build/config.json中的REACT_APP_BASE_URL参数的IP地址,将其修改为web服务的公网IP,同时确保您的服务器已对公网放开9089端口(后端接口服务)和8181端口(Web服务)!
修改config.json中的ip地址为公网ip,注意端口号不要修改,9089是后端接口服务的端口
{
"REACT_APP_BASE_URL":"http://10.206.6.31:9089",
"AXIOS_TIMEOUT":60000
}
Web系统访问地址如下,端口号为8181
http://10.206.0.7:8181
演示项目
使用部署账号(默认为:work登录操作系统),然后执行项目路径下:./bin/tools/examples/start_example.sh,自动创建出演示项目,可用于初步体验XL-LightHouse或测试服务部署是否正常,系统正式上线后可执行stop_example.sh将演示项目停止,避免不必要的资源占用。
Task运算模块监控地址(绝大多数情况下不需要关注)
Tasks运算服务监控,请使用Spark集群首个节点IP访问(默认为集群第一个节点),端口为4040。
- 集群部署完成后,Tasks服务仍需要两三分钟左右的启动时间,可以查看相关日志信息。
- 如果出现HTTP ERROR 401 Authentication required,需要在url后面加上user.name=ldp再访问。
- 通过IP访问时,会自动重定向到hostname访问地址,如果出现"页面无法访问",可能是本机没有配置hosts的原因,可将服务器hosts文件内容添加到本地电脑即可。
http://10.206.0.7:4040?user.name=ldp
其他组件监控页面(绝大多数情况下不需要关注)
# spark集群监控页面
http://10.206.0.7:8081?user.name=ldp
# 任务运行监控
http://10.206.0.7:4040?user.name=ldp
# 如果使用自定义存储引擎请忽略。
hadoop集群监控页面:http://10.206.0.7:9870?user.name=ldp
hadoop集群Yarn任务页面:http://10.206.0.7:9399/cluster?user.name=ldp
hbase集群监控页面:http://10.206.0.7:16010?user.name=ldp
集群性能优化
按集群节点内存大小拷贝相关配置即可集群模式参数配置或单机模式参数配置,绝大多数情况下不需要自己优化
集群部署完成后,如需对运行期的参数(主要为各组件的内存、任务并行度等配置参数)进行进一步优化,请您修改config.json配置文件,修改完成后使用部署账号(默认为:work登录系统)执行./restart-all.sh重启系统即可。
其他事项
1、如果服务器网速很慢的情况下,可能会有ice安装失败的情况,具体表象是部署日志出现:icegridadmin命令不存在,这种情况重新部署即可!
2、部署脚本远程操作ssh相关命令默认使用22端口,如果您的服务器ssh端口非默认端口,会提示不能远程连接,可进行以下操作:
手动修改集群每台服务器的/etc/ssh/ssh_config文件,将其中的Port改为您自己的端口,并将注释符号去掉,然后重新执行即可。务必注意:是修改ssh_config文件而不是sshd_config文件。
ssh_config文件中的Port只是对应在当前服务器上执行ssh命令远程连接其他服务器时,所使用的默认端口号,所以修改此端口不会改变您登录当前服务器的端口。
sshd_config文件中的Port是对应当前服务器sshd服务的端口号,修改此文件后,您再次使用ssh客户端登录当前服务器,必须修改ssh端口。