Linux 系统 | 版本 | 当前系统版本 |
---|---|---|
CentOS | 7.1 及以上 | CentOS8 |
Ubuntu | 16.04 及以上 | - |
软件 | 版本 | 当前版本 |
---|---|---|
Java | 1.8 | 1.8.0_391 |
GCC | 4.8.2 及以上 | gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) |
方法 1:使用命令行
cat /etc/centos-release
如果你看到输出中含有 CentOS 7 或 CentOS 8 的版本号,则可以确定当前系统的 CentOS 版本。
方法 2:使用运行版本命令
/etc/os-release
文件的内容:cat /etc/os-release
这个命令会显示包含 CentOS 版本信息的输出。在 VERSION_ID
一行中,你将能够看到版本号,从而确定是 CentOS 7 还是 CentOS 8。
无论使用哪种方法,你都将能够确定当前系统运行的是 CentOS 7 还是 CentOS 8。
要查看 CentOS 8 上安装的 GCC 版本,你可以按照以下方法进行操作:
gcc --version
该命令将输出 GCC 的版本信息,包括主版本号、次版本号等详细信息。
注意:如果你的系统中未安装 GCC,需要先通过以下命令安装:
sudo dnf install gcc
使用上述步骤,你将能够在 CentOS 8 上查看到安装的 GCC 版本。
在 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
服务以使更改生效。
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
# 重启服务器生效 reboot
# 通过ulimit 查看是否生效
ulimit -n
# 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)
要检查你的 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 硬件。
# 这里没有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)
在 FE 安装目录下执行下面的命令,来完成 FE 的启动。
[root@localhost fe]# ./bin/start_fe.sh --daemon
你可以通过下面的命令来检查 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 启动成功
注意:
我们下面通过 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)
[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的默认存储介质配置
注意:
示例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
说明
实际操作: 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 .
在 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
通过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.conf
里的 priority_networks
匹配be.conf
里的 heartbeat_service_port
匹配,默认是 9050
。你可以在 MySQL 命令行下执行下面的命令查看 BE 的运行状态。
SHOW BACKENDS\G
./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 服务器。
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;
在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
命令安装这些工具。
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
命令来安装它。
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 操作次数。
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` 命令来安装它们。