网站模版开发,黄村做网站建设,公司网站建设需要哪些设备,全国工商信息查询官方文档#xff1a;https://doris.apache.org/zh-CN/installing/compilation.html 一、编译
使用 Docker 开发镜像编译#xff08;推荐#xff09;
1.拉取镜像
#下载 Docker 最新主干版本代码#xff0c;会随主干版本不断更新。
$ docker pull apache/incubator-doris:… 官方文档https://doris.apache.org/zh-CN/installing/compilation.html 一、编译
使用 Docker 开发镜像编译推荐
1.拉取镜像
#下载 Docker 最新主干版本代码会随主干版本不断更新。
$ docker pull apache/incubator-doris:build-env-ldb-toolchain-latest#下载对应的镜像版本
$ docker pull apache/incubator-doris:build-env-for-0.15.02.检查镜像下载完成
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache/incubator-doris build-env-for-0.15.0 e568f7b2e1d8 3 months ago 3.54GB3.运行镜像
$ mkdir -p /data/apps/apache-doris
$ docker run -it -v /data/apps/apache-doris/.m2:/root/.m2 -v /data/apps/apache-doris/incubator-doris-DORIS-0.15.0-release/:/root/incubator-doris-DORIS-0.15.0-release/ apache/incubator-doris:build-env-for-0.15.0注将镜像中 maven 的 .m2 目录挂载到宿主机目录以防止每次启动镜像编译时重复下载 maven 的依赖库。
4.下载源码
启动镜像后你应该已经处于容器内。可以通过以下命令下载 Doris 源码已挂载本地源码目录则不用
[root0fd6fc1093fd ~]# cd incubator-doris-DORIS-0.15.0-release/
[root0fd6fc1093fd incubator-doris-DORIS-0.15.0-release]# wget https://dist.apache.org/repos/dist/dev/incubator/doris/xxx.tar.gz
or
[root0fd6fc1093fd incubator-doris-DORIS-0.15.0-release]# git clone https://github.com/apache/incubator-doris.git5.编译 Doris
$ cd /root/incubator-doris-DORIS-0.15.0-release/apache-doris-0.15.0-incubating-src/$ sh build.sh#如果你是第一次使用 build-env-for-0.15.0 或之后的版本第一次编译的时候要使用如下命令
$ sh build.sh --clean --be --fe --ui编译完成后产出文件在 output/ 目录中。 注意: build-env-for-0.15.0 版本镜像升级了 thrift(0.9 - 0.13)需要通过 --clean 命令强制使用新版本的 thrift 生成代码文件否则会出现不兼容的代码。 二、软硬件需求 Doris 作为一款开源的 MPP 架构 OLAP 数据库能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势以及 Doris 的高可用特性我们建议 Doris 的部署遵循以下需求 硬件需求
开发测试环境
模块CPU内存磁盘网络实例数量Frontend8核8GBSSD 或 SATA10GB *千兆网卡1Backend8核16GBSSD 或 SATA50GB *千兆网卡1-3 *
生产环境
模块CPU内存磁盘网络实例数量最低要求Frontend16核64GBSSD 或 RAID 卡100GB *万兆网卡1-5 *Backend16核64GBSSD 或 SATA100G *万兆网卡10-100 * 注1 1.FE 的磁盘空间主要用于存储元数据包括日志和 image。通常从几百 MB 到几个 GB 不等。 2.BE 的磁盘空间主要用于存放用户数据总磁盘空间按用户总数据量 * 33副本计算然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。 3.一台机器上可以部署多个 BE 实例但是只能部署一个 FE。如果需要 3 副本数据那么至少需要 3 台机器各部署一个 BE 实例而不是1台机器部署3个BE实例。多个FE所在服务器的时钟必须保持一致允许最多5秒的时钟偏差 4.测试环境也可以仅适用一个 BE 进行测试。实际生产环境BE 实例数量直接决定了整体查询延迟。 5.所有部署节点关闭 Swap。 注2FE 节点的数量 1.FE 角色分为 Follower 和 ObserverLeader 为 Follower 组中选举出来的一种角色以下统称 Follower具体含义见 元数据设计文档。 2.FE 节点数据至少为11 个 Follower。当部署 1 个 Follower 和 1 个 Observer 时可以实现读高可用。当部署 3 个 Follower 时可以实现读写高可用HA。 3.Follower 的数量必须为奇数Observer 数量随意。 4.根据以往经验当集群可用性要求很高时比如提供在线业务可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务建议部署 1 个 Follower 和 1-3 个 Observer。 通常我们建议 10 ~ 100 台左右的机器来充分发挥 Doris 的性能其中 3 台部署 FEHA剩余的部署 BE当然Doris的性能与节点数量及配置正相关。在最少4台机器一台 FE三台 BE其中一台 BE 混部一个 Observer FE 提供元数据备份以及较低配置的情况下依然可以平稳的运行 Doris。如果 FE 和 BE 混部需注意资源竞争问题并保证元数据目录和数据目录分属不同磁盘。
软件需求
1.版本要求
软件版本JavaJava 11 及以上GCC4.8.2 及以上
2.设置系统最大打开文件句柄数
$ vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 655363.时钟同步
#修改时区
$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#NTP域名同步
$ ntpdate cn.pool.ntp.org#将系统时间写入到系统硬件当中
$ hwclock -w#添加定时任务
$ echo 11 * * * root ntpdate cn.pool.ntp.org /etc/crontab4.关闭交换分区swap
#将/etc/fstab 文件中包含swap的行注释掉
$ sed -i /swap/s/^/#/ /etc/fstab
$ swapoff -a5.Liunx文件系统
这里我们推荐使用ext4文件系统在安装操作系统的时候请选择ext4文件系统。
三、集群部署
节点信息
节点IPFE172.21.1.19BE172.21.19.251BE172.21.21.141
3-1、FE 部署
1.拷贝 FE 部署文件到指定节点
#将源码编译生成的 output 下的 fe 文件夹拷贝到 FE 的节点指定部署路径下
$ cd /data/apps/apache-doris
$ cp -rf incubator-doris-DORIS-0.15.0-release/apache-doris-0.15.0-incubating-src/output/fe /data/apps/apache-doris/2.配置 FE fe.conf 中 JAVA_OPTS 默认 java 最大堆内存为 4GB建议生产环境调整至 8G 以上。 $ cd /data/apps/apache-doris/fe/#修改FE元数据存放位置
$ mkdir -p /data/apache-doris/fe/doris-meta
$ sed -i s#^.*meta_dir.*$#meta_dir /data/apache-doris/fe/doris-meta# conf/fe.conf#脚本中指定JAVA_HOME路径根据实际情况配置
$ sed -i 1a\export JAVA_HOME/usr/java/jdk1.8 /data/apps/apache-doris/fe/bin/start_fe.sh#priority_networks 配置进程绑定IP
$ sed -i s#^.*priority_networks.*$#priority_networks 172.21.0.0/16# conf/fe.conf#修改日志默认位置如启动失败可以通过查看 log/fe.log 或者 log/fe.out 查看错误信息。
$ mkdir -p /data/logs/apache-doris
$ sed -i s#LOG_DIR.*$#LOG_DIR /data/logs/apache-doris#g conf/fe.conf注意生产环境强烈建议单独指定目录不要放在Doris安装目录下最好是单独的磁盘如果有SSD最好测试开发环境可以使用默认配置
3.启动FE
编写启动脚本
#添加环境变量否则启动报错
$ sed -i /$JAVA_HOME /iJAVA_HOME/data/apps/jdk-11.0.2 /data/apps/apache-doris/fe/bin/start_fe.sh$ cat EOF /usr/lib/systemd/system/doris-fe.service[Unit]DescriptionApache Doris Fe ServiceAfternetwork.target[Service]TypeforkingKillModecontrol-groupExecStart/data/apps/apache-doris/fe/bin/start_fe.sh --daemonExecStop/data/apps/apache-doris/fe/bin/stop_fe.shExecReload/bin/kill -s HUP \$MAINPIDSuccessExitStatus0 143PrivateTmptrueLimitNOFILE1000000LimitNPROC100000TimeoutStopSec10sRestarton-failureRestartSec30[Install]WantedBymulti-user.target
EOF启动FE
$ systemctl daemon-reload
$ systemctl start doris-fe.service
$ systemctl enable doris-fe.service检测 FE 是否启动成功 FE 进程启动后会首先加载元数据根据 FE 角色的不同在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER。最终会看到 thrift server started 日志并且可以通过 mysql 客户端连接到 FE则表示 FE 启动成功。
也可以通过如下连接查看是否启动成功
#http://fe_host:fe_http_port/api/bootstrapcurl http://172.21.1.19:8030/api/bootstrap如果返回
{status:OK,msg:Success}则表示启动成功其余情况则可能存在问题。 启动报错 ./bin/start_fe.sh: 第 109 行:[: -gt: 期待一元表达式 解决方法
#修改109行内容
if [ $java_version -gt 8 ]; thenif [[ $java_version -gt 8 ]]; then4.FE实例端口信息
实例名称端口名称默认端口通讯方向说明FEhttp_port *8030FE – FE用户FE 上的 http server 端口FErpc_port9020BE -- FE, FE – FEFE 上的 thrift server 端口每个fe的配置需要保持一致FEquery_port9030用户FE 上的 mysql server 端口FEedit_log_port9010FE – FEFE 上的 bdbje 之间通信用的端口 注 当部署多个 FE 实例时要保证 FE 的 http_port 配置相同。 3-2、BE 部署
1.拷贝 BE 部署文件到所有要部署 BE 的节点
#将源码编译生成的 output 下的 be 文件夹拷贝到 BE 的节点的指定部署路径下。
$ rsync -avzP /data/apps/apache-doris/incubator-doris-DORIS-0.15.0-release/apache-doris-0.15.0-incubating-src/output/be rootbe_server:/data/apps/apache-doris/2.配置 BE
修改 be/conf/be.conf。主要是配置 storage_root_path数据存放目录。默认在be/storage下需要手动创建该目录。多个路径之间使用英文状态的分号 ; 分隔最后一个目录后不要加 ;。可以通过路径区别存储目录的介质HDD或SSD。可以添加容量限制在每个路径的末尾通过英文状态逗号,隔开。 示例1 注意如果是SSD磁盘要在目录后面加上.SSD,HDD磁盘在目录后面加.HDD storage_root_path/home/disk1/doris.HDD,50;/home/disk2/doris.SSD,10;/home/disk2/doris/home/disk1/doris.HDD,50表示存储限制为50GBHDD;/home/disk2/doris.SSD,10存储限制为10GBSSD/home/disk2/doris存储限制为磁盘最大容量默认为HDD 示例2 注意不论HDD磁盘目录还是SSD磁盘目录都无需添加后缀storage_root_path参数里指定medium即可 storage_root_path/home/disk1/doris,medium:hdd,capacity:50;/home/disk2/doris,medium:ssd,capacity:50/home/disk1/doris,medium:hdd,capacity:10表示存储限制为10GB, HDD;/home/disk2/doris,medium:ssd,capacity:50表示存储限制为50GB, SSD;
登录BE服务器修改BE数据存放目录
$ cd /data/apps/apache-doris/be$ mkdir -p /data/apache-doris/be/doris-storage
$ sed -i s#^.*storage_root_path.*$#storage_root_path /data/apache-doris/be/doris-storage,medium:ssd# conf/be.conf#priority_networks 配置进程绑定IP
$ sed -i s#^.*priority_networks.*$#priority_networks 172.21.0.0/16# conf/be.conf#修改日志默认位置如启动失败可以通过查看 log/be.INFO 或者 log/be.out 查看错误信息。
$ mkdir -p /data/logs/apache-doris
$ sed -i s#^.*sys_log_dir.*$#sys_log_dir /data/logs/apache-doris#g conf/be.confwebserver_port端口配置 如果 be 部署在 hadoop 集群中注意调整 be.conf 中的 webserver_port 8040 ,以免造成端口冲突
3.在 FE 中添加所有 BE 节点
安装mysql-client BE 节点需要先在 FE 中添加才可加入集群。可以使用 mysql-client(下载MySQL 5.7)
#安装依赖
$ yum install libncurses* libtinfo*#下载rpm包
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.37-1.el7.x86_64.rpm
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.37-1.el7.x86_64.rpm
$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.37-1.el7.x86_64.rpm#安装
$ rpm -ivh mysql-community-*报错mariadb-libs is obsoleted by mysql-community-libs-5.7.37-1.el7.x86_64解决方法如下 #查看系统中的mariadb
$ rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.amzn2.x86_64#强制删除旧版本mariadb-libs
rpm -e --nodeps mariadb-libs-5.5.68-1.amzn2.x86_64连接到 FE
$ mysql -h 172.21.1.19 -P 9030 -uroothost 为 FE 所在节点 ipport 为 fe/conf/fe.conf 中的 query_port默认使用 root 账户无passwd登录。
4.启动BE
编写启动脚本
cat EOF /usr/lib/systemd/system/doris-be.service[Unit]DescriptionApache Doris BE ServiceAfternetwork.target[Service]TypeforkingKillModecontrol-groupExecStart/data/apps/apache-doris/be/bin/start_be.sh --daemonExecStop/data/apps/apache-doris/be/bin/stop_be.shExecReload/bin/kill -s HUP \$MAINPIDSuccessExitStatus0 143PrivateTmptrueLimitNOFILE1000000LimitNPROC100000TimeoutStopSec10sRestarton-failureRestartSec30[Install]WantedBymulti-user.target
EOF启动FE
$ systemctl daemon-reload
$ systemctl start doris-be.service
$ systemctl enable doris-be.service5.BE实例端口信息
实例名称端口名称默认端口通讯方向说明BEbe_port9060FE -- BEBE 上 thrift server 的端口用于接收来自 FE 的请求BEwebserver_port8040BE – BEBE 上的 http server 的端口BEheartbeat_service_port9050FE -- BEBE 上心跳服务端口thrift用于接收来自 FE 的心跳BEbrpc_port*8060FE–BE, BE – BEBE 上的 brpc 端口用于 BE 之间通讯
3-3、FS_Broker 部署可选 Broker 以插件的形式独立于 Doris 部署。如果需要从第三方存储系统导入数据需要部署相应的 Broker默认提供了读取 HDFS 、百度云 BOS 及 Amazon S3 的 fs_broker。fs_broker 是无状态的建议每一个 FE 和 BE 节点都部署一个 Broker。 1.拷贝源码 fs_broker 的 output 目录下的相应 Broker 目录到需要部署的所有节点上。建议和 BE 或者 FE 目录保持同级。
#拷贝到FE节点目录
$ cd /data/apps/apache-doris/incubator-doris-DORIS-0.15.0-release/apache-doris-0.15.0-incubating-src
$ cp -rf fs_brokers/apache_hdfs_broker/output/apache_hdfs_broker /data/apps/apache-doris/#拷贝到BE节点目录
$ rsync -avzP fs_brokers/apache_hdfs_broker/output/apache_hdfs_broker rootbe_server:/data/apps/apache-doris/2.修改相应 Broker 配置
在相应 broker/conf/ 目录下对应的配置文件中可以修改相应配置。
3.启动 Broker
#启动broker
$ /bin/sh /data/apps/apache-doris/apache_hdfs_broker/bin/start_broker.sh --daemon
#关闭broker
$ /bin/sh /data/apps/apache-doris/apache_hdfs_broker/bin/stop_broker.sh4.添加 Broker
要让 Doris 的 FE 和 BE 知道 Broker 在哪些节点上通过 sql 命令添加 Broker 节点列表。 使用 mysql-client 连接启动的 FE执行以下命令
# 添加broker
$ ALTER SYSTEM ADD BROKER doristestbroker 172.21.1.19:8000,172.21.8.247:8000,172.21.12.227:8000;ALTER SYSTEM ADD BROKER broker_name “host1:port1”,“host2:port2”,…; 其中 host 为 Broker 所在节点 ipport 为 Broker 配置文件中的 broker_ipc_port。
5.查看 Broker 状态
使用 mysql-client 连接任一已启动的 FE执行以下命令查看 Broker 状态
SHOW PROC /brokers;注在生产环境中所有实例都应使用守护进程启动以保证进程退出后会被自动拉起如 Supervisor (opens new window)。如需使用守护进程启动在 0.9.0 及之前版本中需要修改各个 start_xx.sh 脚本去掉最后的 符号。从 0.10.0 版本开始直接调用 sh start_xx.sh 启动即可。也可参考 这里(opens new window)
6.启动Broker
编写启动脚本
#添加环境变量否则启动报错
$ sed -i /$JAVA_HOME /iJAVA_HOME/data/apps/jdk-11.0.2 /data/apps/apache-doris/apache_hdfs_broker/bin/start_broker.sh$ cat EOF /usr/lib/systemd/system/doris-broker.service[Unit]DescriptionApache Doris Broker ServiceAfternetwork.target[Service]TypeforkingKillModecontrol-groupExecStart/data/apps/apache-doris/apache_hdfs_broker/bin/start_broker.sh --daemonExecStop/data/apps/apache-doris/apache_hdfs_broker/bin/stop_broker.shExecReload/bin/kill -s HUP \$MAINPIDSuccessExitStatus0 143PrivateTmptrueLimitNOFILE1000000LimitNPROC100000TimeoutStopSec10sRestarton-failureRestartSec30[Install]WantedBymulti-user.target
EOF**启动Broker **
$ systemctl daemon-reload
$ systemctl restart doris-broker.service
$ systemctl enable doris-broker.service