blob: 90d0e6025c418f12c1bc29905ba3480fbe01985d [file] [log] [blame] [view]
# Prepare
## Operating System
### Requirements
Supported Architectures
* `x86_64`
* `aarch64`
Verified Distributions
* `Rocky Linux 8.10`
* `Anolis OS 8.10`
* `openEuler 24.03`
Filesystems
* `ext4`
* `xfs`
## JDK
Requires `JDK ≥ 17` (e.g., `JDK17` or `JDK21`). LTS releases are recommended.
## Database
Supported Databases:
* `MySQL`
* `PostgreSQL`
Recommended versions:
* `MySQL` 8.0+
* `PostgreSQL` 16.4+
## Build
```bash
git clone https://github.com/apache/bigtop-manager.git
cd bigtop-manager
mvn clean package -DskipTests
```
## System
### Firewall
If port connectivity issues occur, temporarily disable the firewall to confirm whether it is blocking traffic. Re-enable specific ports for bigtop-manager components if needed.
```bash
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
```
### Time Sync
Ensure clock synchronization across all cluster nodes to prevent metadata inconsistencies.
#### NTP
```bash
sudo systemctl start ntpd.service
sudo systemctl enable ntpd.service
```
#### Chrony
```bash
sudo systemctl start chronyd.service
sudo systemctl enable chronyd.service
```
## Hosts
### Set Hostname
```bash
hostnamectl set-hostname your-host-name
# Update /etc/hosts
echo "10.10.0.101 bm1" | sudo tee -a /etc/hosts
echo "10.10.0.102 bm2" | sudo tee -a /etc/hosts
echo "10.10.0.103 bm3" | sudo tee -a /etc/hosts
```
## System Tuning
### Resource Limits
```bash
cat >> /etc/security/limits.conf << EOF
* soft fsize unlimited
* hard fsize unlimited
* soft cpu unlimited
* hard cpu unlimited
* soft as unlimited
* hard as unlimited
* soft nofile 1048576
* hard nofile 1048576
* soft nproc unlimited
* hard nproc unlimited
EOF
```
Verify
```bash
ulimit -a
```
### Memory Optimization
#### Disable Transparent Huge Pages (THP)
```bash
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
```
#### Adjust Swappiness
```bash
sysctl vm.swappiness=1
swapoff -a
```
#### Verification
```bash
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
free -h | grep Swap
sysctl vm.swappiness
```
#### Persistence Configuration
```bash
# THP
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
# Swappiness
echo 'vm.swappiness=1' | sudo tee -a /etc/sysctl.conf
```
## SSH
### Generate SSH Keys
```bash
# Generate keys (run once on the server node)
ssh-keygen -N '' -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -N '' -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -N '' -t ed25519 -b 256 -f /etc/ssh/ssh_host_ed25519_key
```
### Distribute Public Keys (Optional)
```bash
# Replace YOU_KEY.pub with your actual public key
for node in bm{1..3}; do
ssh-copy-id -i ~/.ssh/YOU_KEY.pub $node
done
```