Linux 操作系统版本需求

Linux 系统版本当前系统版本CentOS7.1 及以上CentOS8Ubuntu16.04 及以上-

软件需求

软件版本当前版本Java1.81.8.0_391GCC4.8.2 及以上gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4)

1、查看操作系统版本

方法 1:使用命令行

打开终端或命令行窗口。运行以下命令来查看 CentOS 版本信息:

cat /etc/centos-release

如果你看到输出中含有 CentOS 7 或 CentOS 8 的版本号,则可以确定当前系统的 CentOS 版本。

方法 2:使用运行版本命令

同样需要打开终端或命令行窗口。运行以下命令来检查 CentOS 系统中 /etc/os-release 文件的内容:

cat /etc/os-release

这个命令会显示包含 CentOS 版本信息的输出。在 VERSION_ID 一行中,你将能够看到版本号,从而确定是 CentOS 7 还是 CentOS 8。

无论使用哪种方法,你都将能够确定当前系统运行的是 CentOS 7 还是 CentOS 8。

2、查看GCC版本

要查看 CentOS 8 上安装的 GCC 版本,你可以按照以下方法进行操作:

打开终端或命令行窗口。运行以下命令来查看 GCC 版本信息:

gcc --version

该命令将输出 GCC 的版本信息,包括主版本号、次版本号等详细信息。

注意:如果你的系统中未安装 GCC,需要先通过以下命令安装:

sudo dnf install gcc

使用上述步骤,你将能够在 CentOS 8 上查看到安装的 GCC 版本。

3、集群做时钟同步

在 CentOS 8 上,你可以使用 chronyd 服务来进行时钟同步。以下是设置时钟同步的步骤:

确保 chronyd 服务已安装: sudo dnf install chrony

如果你已安装了 chrony,则会显示已安装的版本号。 编辑 /etc/chrony.conf 文件: sudo vim /etc/chrony.conf

打开文件后,你可以根据需要进行配置更改。 添加或更改时间服务器: 在 /etc/chrony.conf 文件中,你可以找到一些种类为 server 的行。你可以编辑这些行来添加或更改时间服务器。通常,你可以在互联网上找到公共的时间服务器。例如,你可以在 chrony.conf 文件中添加以下行: ## 注释掉这个一行

# pool 2.centos.pool.ntp.org iburst

# FE 同步授时中心cn.ntp.org.cn

server cn.ntp.org.cn iburst

# BE 同步FE的时间

# server 10.10.8.156 iburst

请将 time.example.com 替换为你选择的时间服务器。例如:cn.ntp.org.cn 启动并启用 chronyd 服务: sudo systemctl start chronyd

sudo systemctl enable chronyd

检查时钟同步状态: chronyc sources

这将显示与 chronyd 同步的时间服务器列表以及同步状态。

通过按照上述步骤设置 chronyd 服务,你将在 CentOS 8 上实现时钟同步。如果你修改了 chrony.conf 配置文件,请确保重新启动 chronyd 服务以使更改生效。

4、设置系统最大打开文件句柄数

vim /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

# 重启服务器生效 reboot

# 通过ulimit 查看是否生效

ulimit -n

5、安装Java环境

# Oracle官网下载,上传JDK jdk-8u391-linux-x64.tar.gz

[root@localhost ~]# cd /u01/

[root@localhost u01]# tar -zxf jdk-8u391-linux-x64.tar.gz

[root@localhost u01]# vim /etc/profile

export JAVA_HOME=/u01/jdk1.8.0_391

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

# 重新加载资源

[root@localhost u01]# source /etc/profile

[root@localhost u01]# java -version

java version "1.8.0_391"

Java(TM) SE Runtime Environment (build 1.8.0_391-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

6、Doris 配置 FE

6.1、查看操作系统是否支持avx2指令集,没有则下载noavx2的安装包。

要检查你的 CentOS 8 系统是否支持 AVX2 指令集,可以使用以下命令来检查 CPU 的功能:

grep avx2 /proc/cpuinfo

如果你看到类似下面的输出,说明你的 CPU 支持 AVX2 指令集:

flags : ... avx2 ...

其中 flags 列表中包含了支持的 CPU 功能标记。如果你在其中找到了 avx2,则表示你的系统 CPU 支持 AVX2 指令集。

如果你的 CPU 不支持 AVX2 指令集,那么在上述输出中将找不到 avx2 标记。

请注意,要确保你的 CPU 支持 AVX2 指令集,你的 CPU 和主板必须支持该功能。虽然 CentOS 8 是一个 64 位操作系统,但该操作系统本身并不影响 CPU 功能。因此,支持 AVX2 指令集取决于你的 CPU 硬件。

6.2 解压缩,修改配置

# 这里没有avx2指令集 下载apache-doris-2.0.2-bin-x64-noavx2.tar.gz

# 上传到服务器 /u01目录下

# 1、解压缩包

[root@localhost u01]# tar -zxf apache-doris-2.0.2-bin-x64-noavx2.tar.gz

# 2、这里把FE的文件夹,单独拿到/u01 方便后面出问题后,删除重新复制一份

[root@localhost u01]# cp -r apache-doris-2.0.2-bin-x64-noavx2/fe/ /u01/

修改 FE 配置文件 conf/fe.conf ,这里我们主要修改两个参数:priority_networks 及 meta_dir ,如果你需要更多优化配置,请参考 FE 参数配置说明,进行调整。

添加 priority_networks 参数 [root@localhost u01]# vim fe/conf/fe.conf

# 修改内容如下

priority_networks=x.x.x.0/24

注意:

这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 FE 指定唯一的IP地址。

这里假设你的节点 IP 是 172.23.16.32,那么我们可以通过掩码的方式配置为 172.23.16.0/24。

添加元数据目录 # 单独配置元数据目录,需要你提前创建好你指定的目录

meta_dir=/u01/fe/doris-meta

# 注意:生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置(默认是在你的Doris FE 安装目录下的 doris-meta)

6.3 后台启动FE

在 FE 安装目录下执行下面的命令,来完成 FE 的启动。

[root@localhost fe]# ./bin/start_fe.sh --daemon

6.4查看 FE 运行状态

你可以通过下面的命令来检查 Doris 是否启动成功

root@narada:/u01/apache-doris-2.0.2-bin-x64/fe# curl http://127.0.0.1:8030/api/bootstrap

{"msg":"success","code":0,"data":{"replayedJournalId":0,"queryPort":0,"rpcPort":0,"version":""},"count":0}

这里 IP 和 端口分别是 FE 的 IP 和 http_port(默认8030),如果是你在 FE 节点执行,直接运行上面的命令即可。

如果返回结果中带有 "msg":"success" 字样,则说明启动成功。

你也可以通过 Doris FE 提供的Web UI 来检查,在浏览器里输入地址

http:// fe_ip:8030 即:http://x.x.x.x:8030/

可以看到下面的界面,说明 FE 启动成功

注意:

这里我们使用 Doris 内置的默认用户 root 进行登录,密码是空这是一个 Doris 的管理界面,只能拥有管理权限的用户才能登录,普通用户不能登录。

6.5连接 FE

我们下面通过 MySQL 客户端来连接 Doris FE,下载免安装的 MySQL 客户端

解压刚才下载的 MySQL 客户端,在 bin/ 目录下可以找到 mysql 命令行工具。然后执行下面的命令连接 Doris。

[root@localhost bin]# pwd

/u01/mysql-5.7.22/bin

[root@localhost bin]# ./mysql -uroot -P9030 -h127.0.0.1

# 设置登录密码

SET PASSWORD FOR 'root' = PASSWORD('narada2023');

注意:

这里使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户,具体的用户权限查看 权限管理-P :这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port-h : 这里是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1。mysql 无法运行的话,要先解决对应报错。

执行下面的命令查看 FE 运行状态

show frontends\G;

然后你可以看到类似下面的结果:

mysql> show frontends\G

*************************** 1. row ***************************

Name: fe_cd86c1da_3c70_4ebe_add6_70c7e39b3827

Host: x.x.x.x

EditLogPort: 9010

HttpPort: 8030

QueryPort: 9030

RpcPort: 9020

Role: FOLLOWER

IsMaster: true

ClusterId: 1027578203

Join: true

Alive: true

ReplayedJournalId: 3379

LastHeartbeat: 2023-12-06 14:29:20

IsHelper: true

ErrMsg:

Version: doris-2.0.2-rc05-ae923f7

CurrentConnected: Yes

1 row in set (0.04 sec)

如果 IsMaster、Join 和 Alive 三列均为true,则表示节点正常。

7 Doris配置 BE

7.1 同样解压缩,复制be到/u01

[root@localhost u01]# tar -zxf apache-doris-2.0.2-bin-x64-noavx2.tar.gz

[root@localhost u01]# cp -r apache-doris-2.0.2-bin-x64-noavx2/be/ /u01

我们进入到 be 目录

修改 BE 配置文件 conf/be.conf ,这里我们主要修改两个参数:priority_networks 及 storage_root ,如果你需要更多优化配置,请参考 BE 参数配置说明,进行调整。

添加 priority_networks 参数 [root@localhost u01]# cd be/conf/

[root@localhost conf]# vim be.conf

priority_networks=x.x.x.0/24

注意:

这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 BE 指定唯一的IP地址。

配置 BE 数据存储目录 修改 be/conf/be.conf。主要是配置 storage_root_path:数据存放目录。默认在be/storage下,若需要指定目录的话,需要预创建目录。多个路径之间使用英文状态的分号 ; 分隔。 可以通过路径区别节点内的冷热数据存储目录,HDD(冷数据目录)或 SSD(热数据目录)。如果不需要 BE 节点内的冷热机制,那么只需要配置路径即可,无需指定 medium 类型;也不需要修改FE的默认存储介质配置 注意:

如果未指定存储路径的存储类型,则默认全部为 HDD(冷数据目录)。这里的 HDD 和 SSD 与物理存储介质无关,只为了区分存储路径的存储类型,即可以在 HDD 介质的盘上标记某个目录为 SSD(热数据目录)。 示例1如下: storage_root_path=/home/disk1/doris;/home/disk2/doris;/home/disk2/doris

示例2如下: 使用 storage_root_path 参数里指定 medium storage_root_path=/home/disk1/doris,medium:HDD;/home/disk2/doris,medium:SSD

说明

/home/disk1/doris,medium:HDD: 表示该目录存储冷数据;/home/disk2/doris,medium:SSD: 表示该目录存储热数据; 实际操作: centos这边先不动了,直接用默认目录 # 这里是测试环境没有多余的磁盘 用disk1 disk2 区分,生产环境:挂不同的地址可以用 u01 u02区分

# 预创建目录:/u01/disk1/doris /u01/disk2/doris

storage_root_path=/u01/disk1/doris,medium:HDD;/u01/disk2/doris,medium:SSD

配置 JAVA_HOME 环境变量 由于从 1.2 版本开始支持 Java UDF 函数,BE 依赖于 Java 环境。所以要预先配置 JAVA_HOME 环境变量,也可以在 start_be.sh 启动脚本第一行添加 export JAVA_HOME=your_java_home_path 来添加环境变量。 **注意:**最开始安装JDK的时候,已经把环境变量配置好了,所有这里不用管 安装 Java UDF 函数 安装Java UDF 函数因为从1.2 版本开始支持Java UDF 函数,需要从官网下载 Java UDF 函数的 JAR 包放到 BE 的 lib 目录下,否则可能会启动失败。 **注意:**发现lib下面已经有 java_extensions/java-udf 。这里把他复制到lib下面 [root@localhost lib]# pwd

/u01/be/lib

[root@localhost lib]# cp java_extensions/java-udf/java-udf-jar-with-dependencies.jar .

7.2 启动 BE 在 BE 安装目录下执行下面的命令,来完成 BE 的启动。 [root@localhost bin]# pwd

/u01/be/bin

[root@localhost bin]# ./start_be.sh --daemon

提示报错1: Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'.

解决方案: # 临时修改:使用sysctl命令临时修改参数的值

sysctl -w vm.max_map_count=2000000

# 永久修改:编辑/etc/sysctl.conf文件,并增加或修改以下行:

root@narada:/u01/apache-doris-2.0.2-bin-x64/be# vim /etc/sysctl.conf

vm.max_map_count=2000000

# 保持文件后,使用一下命令更改生效

root@narada:/u01/apache-doris-2.0.2-bin-x64/be# sysctl -p

vm.max_map_count = 2000000

提示报错2: Please disable swap memory before installation.

解决方案: # 关闭交换分区(swap)

# 使用swapoff -a命令可以关闭所有已启用的交换分区。在执行此命令之前,应仔细检查已启用的交换分区,并确保关闭它们不会对系统产生不利影响。

swapoff -a

7.3添加 BE 节点到集群 通过MySQL 客户端连接到 FE 之后执行下面的 SQL,将 BE 添加到集群中 -- 实例:ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";

ALTER SYSTEM ADD BACKEND "be1_ip:9050";

ALTER SYSTEM ADD BACKEND "be2_ip:9050";

ALTER SYSTEM ADD BACKEND "be3_ip:9050";

be_host_ip:这里是你 BE 的 IP 地址,和你在 be.conf 里的 priority_networks 匹配heartbeat_service_port:这里是你 BE 的心跳上报端口,和你在 be.conf 里的 heartbeat_service_port 匹配,默认是 9050。 查看 BE 运行状态 你可以在 MySQL 命令行下执行下面的命令查看 BE 的运行状态。 SHOW BACKENDS\G

Alive : true表示节点运行正常

常见问题

1、MySQL连接报错

./mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

解决方案:

这个错误通常是由于缺少 libncurses.so.5 库文件引起的。要解决这个问题,你可以尝试以下方法:

安装 libncurses.so.5 库文件: sudo dnf install ncurses-compat-libs

这个命令将安装 ncurses-compat-libs 软件包,它提供了 libncurses.so.5 库文件。 创建软链接: 如果安装了 ncurses-compat-libs 软件包但问题仍存在,可以尝试创建一个软链接来解决: # 安装以后没有,就再建一个软连接。如果已经有了 就不用管了

sudo ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5

这个命令将在 /usr/lib64 目录下创建一个 libncurses.so.5 的软链接指向 libncurses.so.6。

尝试以上解决方法后,再次运行 ./mysql 命令,应该可以成功加载 libncurses.so.5 库文件并启动 MySQL 服务器。

2、导入数据时 max_allowed_packet 值过小

com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (1,347,330 > 1,048,576). You can change this value on the server by setting the 'max_allowed_packet' variable.

# 查询原来的大小是多少,默认是1G

select @@max_allowed_packet; -- 1048576

# 重新设置大小20*1024*1024; 20代表:20G

set global max_allowed_packet = 20*1024*1024;

3、centos8 查看CPU使用情况

在CentOS中,你可以使用 top 命令来查看 CPU 的使用情况。请按照以下步骤进行操作:

打开终端或 SSH 连接到 CentOS 服务器。 在终端中输入以下命令并按下回车运行: top

在顶部的信息栏中,你将看到类似下面的 CPU 使用情况: top - 08:45:23 up 1 day, 3:25, 1 user, load average: 0.00, 0.01, 0.05

Tasks: 176 total, 1 running, 175 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 2047812 total, 196180 free, 1192144 used, 653488 buff/cache

KiB Swap: 0 total, 0 free, 0 used. 659280 avail Mem

%Cpu(s) 行列出了 CPU 的使用情况。其中,us 代表用户进程占用 CPU 的百分比,sy 代表系统进程占用 CPU 的百分比,ni 代表改变过优先级的进程占用 CPU 的百分比,id 代表空闲 CPU 的百分比,wa 代表等待 I/O 的进程占用 CPU 的百分比,hi 代表硬件中断占用 CPU 的百分比,si 代表软件中断占用 CPU 的百分比,st 代表虚拟机被强制获取 CPU 时间的百分比。 在该信息栏中,你还可以看到系统的负载情况和内存使用情况等。你可以使用箭头键来上下滚动查看更多进程和信息。

除了 top 命令之外,你还可以使用其他一些命令来查看 CPU 使用情况,例如 htop 和 mpstat。这些工具提供了更详细和交互式的 CPU 监控信息。你可以使用 yum 或 dnf 命令安装这些工具。

4、centos8 查看IO使用情况

4.1 使用 iotop ,安装命令 sudo dnf install iotop

在 CentOS 8 中,你可以使用 iotop 命令来查看磁盘 I/O 使用情况。请按照以下步骤进行操作:

打开终端或通过 SSH 连接到 CentOS 8 服务器。 在终端中输入以下命令并按下回车运行: iotop

当命令运行后,你将看到类似下面的实时磁盘 I/O 使用情况的统计信息:

该输出显示了每个活动的进程以及它们的磁盘 I/O 使用情况,包括磁盘读取速度(DISK READ)、磁盘写入速度(DISK WRITE)以及进程的资源占用情况。你可以根据需要来查看特定进程的 I/O 使用情况和排名。

iotop 命令提供了实时的磁盘 I/O 统计信息,可以帮助你监控磁盘活动,找到可能引起性能问题的进程。请注意,你可能需要以 root 用户身份运行 iotop 命令或具有相应权限的用户。如果系统中没有安装 iotop,你可以使用 yum 或 dnf 命令来安装它。

4.2 使用 iostat ,安装命令 sudo dnf install sysstat

iostat 命令可以提供关于磁盘 I/O 统计信息的详细报告。请按照以下步骤进行操作:

打开终端或通过 SSH 连接到 CentOS 8 服务器。 在终端中输入以下命令并按下回车运行: iostat

你将看到类似下面的输出,其中包含了磁盘 I/O 使用情况的统计信息: Linux 4.18.0-80.11.2.el8_0.x86_64 (centos) 08/25/20 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

0.10 0.00 0.48 1.13 0.00 98.29

Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn

sda 0.83 2.36 2.82 161343 198840

sdb 0.00 0.00 0.00 10 20

在输出中,kB_read/s 表示每秒的读取速度(单位为 kB),kB_wrtn/s 表示每秒的写入速度(单位为 kB),tps 表示每秒的 I/O 操作次数。

4.3 使用 dstat ,安装命令 sudo dnf install dstat

dstat 命令可以提供实时的系统资源监视器,其中包括磁盘 I/O 使用情况。请按照以下步骤进行操作:

打开终端或通过 SSH 连接到 CentOS 8 服务器。 在终端中输入以下命令并按下回车运行: dstat -d

你将看到类似下面的输出,其中包含了磁盘 I/O 使用情况及其他资源的统计信息: ----total-cpu-usage---- --dsk/total- --dsk/sda-- --dsk/sdb-- --net/total- --paging-- ---system--

usr sys idl wai hiq siq| read writ | read writ | read writ | recv send | in out | int csw

...

输出中的read和writ列分别表示读取和写入的数据量。

0.00 10 20

在输出中,`kB_read/s` 表示每秒的读取速度(单位为 kB),`kB_wrtn/s` 表示每秒的写入速度(单位为 kB),`tps` 表示每秒的 I/O 操作次数。

### 4.3 使用 `dstat ` ,安装命令 `sudo dnf install dstat`

`dstat` 命令可以提供实时的系统资源监视器,其中包括磁盘 I/O 使用情况。请按照以下步骤进行操作:

1. 打开终端或通过 SSH 连接到 CentOS 8 服务器。

2. 在终端中输入以下命令并按下回车运行:

dstat -d

3. 你将看到类似下面的输出,其中包含了磁盘 I/O 使用情况及其他资源的统计信息:

----total-cpu-usage---- --dsk/total- --dsk/sda-- --dsk/sdb-- --net/total- --paging-- —system– usr sys idl wai hiq siq| read writ | read writ | read writ | recv send | in out | int csw …

输出中的`read`和`writ`列分别表示读取和写入的数据量。

这些工具可以帮助你监控磁盘 I/O 使用情况,以便了解系统的性能和负载情况。你可以根据需要来选择使用其中的一个工具。如果系统中没有安装这些工具,你可以使用 `yum` 或 `dnf` 命令来安装它们。

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。