반응형
Apache Doris 설치
Apache Doris
Preparation
templatePath: E:\vm\linux\template79
displayName: dm1
hostname: dm1.sky.local
path: E:\vm\linux\doris
description: frontend
ip: 192.168.181.231
numvcpus: 2
coresPerSocket: 2
memsize: 4096
---
templatePath: E:\vm\linux\template79
displayName: dm2
hostname: dm2.sky.local
path: F:\vm\linux\doris
description: frontend
ip: 192.168.181.232
numvcpus: 2
coresPerSocket: 2
memsize: 4096
---
templatePath: E:\vm\linux\template79
displayName: dm3
hostname: dm3.sky.local
path: E:\vm\linux\doris
description: frontend
ip: 192.168.181.233
numvcpus: 2
coresPerSocket: 2
memsize: 4096
---
templatePath: E:\vm\linux\template79
displayName: dw1
hostname: dw1.sky.local
path: F:\vm\linux\doris
description: backend
ip: 192.168.181.234
numvcpus: 2
coresPerSocket: 2
memsize: 4096
---
templatePath: E:\vm\linux\template79
displayName: dw2
hostname: dw2.sky.local
path: E:\vm\linux\doris
description: backend
ip: 192.168.181.235
numvcpus: 2
coresPerSocket: 2
memsize: 4096
---
templatePath: E:\vm\linux\template79
displayName: dw3
hostname: dw3.sky.local
path: F:\vm\linux\doris
description: backend
ip: 192.168.181.236
numvcpus: 2
coresPerSocket: 2
memsize: 4096
java -jar E:\vm\CopyVMWare-1.1.0.jar `
--force `
--yaml E:\vm\conf\doris.yaml
cat >> /etc/hosts <<EOF
# Apache Doris
192.168.181.231 dm1.sky.local dm1
192.168.181.232 dm2.sky.local dm2
192.168.181.233 dm3.sky.local dm3
192.168.181.234 dw1.sky.local dw1
192.168.181.235 dw2.sky.local dw2
192.168.181.236 dw3.sky.local dw3
EOF
cat >> /etc/bashrc <<EOF
export JAVA_HOME=/usr/lib/jvm/java
export PATH=\${JAVA_HOME}/bin:\${PATH}
EOF
. /etc/bashrc
# yum install -y sshpass
# ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa
# export SSHPASS="PASSWORD"
# for i in {1..1} ; do sshpass -e ssh -o StrictHostKeyChecking=no root@192.168.181.23${i} "mkdir -p ~/.ssh ; chmod 700 ~/.ssh ; touch ~/.ssh/authorized_keys ; echo '$(cat ~/.ssh/id_rsa.pub)' >> ~/.ssh/authorized_keys ; chmod 600 ~/.ssh/authorized_keys" ; done
# for i in {2..8} ; do sshpass -e ssh -o StrictHostKeyChecking=no root@192.168.181.23${i} "rm -rf ~/.ssh ; mkdir -p ~/.ssh ; chmod 700 ~/.ssh ; touch ~/.ssh/authorized_keys ; echo '$(cat ~/.ssh/id_rsa.pub)' >> ~/.ssh/authorized_keys ; chmod 600 ~/.ssh/authorized_keys ; echo SUCCESS" ; done
for i in {1..3} ; do echo dm${i}.sky.local ; done | xargs -P 2 -I {} ssh {} -o StrictHostKeyChecking=no "hostname"
for i in {1..3} ; do echo dw${i}.sky.local ; done | xargs -P 5 -I {} ssh {} -o StrictHostKeyChecking=no "hostname"
for i in {1..3} ; do echo dm${i} ; done | xargs -P 2 -I {} ssh {} -o StrictHostKeyChecking=no "hostname"
for i in {1..3} ; do echo dw${i} ; done | xargs -P 5 -I {} ssh {} -o StrictHostKeyChecking=no "hostname"
for i in {2..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} scp /etc/{bashrc,hosts} {}:/etc
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 4 -I {} ssh {} "yum install -y net-tools gcc* git vim wget zip unzip tar curl dstat ntp java-1.8.0-openjdk-devel"
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 8 -I {} ssh {} "systemctl stop firewalld && systemctl disable firewalld ; systemctl enable ntpd ; systemctl start ntpd ; ntpq -p"
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 8 -I {} ssh {} "ntpq -p"
kernel
cat >> /etc/security/limits.conf << EOF
# 20220715 hskimsky for apache doris
* soft nofile 65536
* hard nofile 65536
EOF
for i in {2..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} scp /etc/security/limits.conf {}:/etc/security
cat >> /etc/sysctl.conf << EOF
# 20220715 hskimsky for apache doris
vm.swappiness = 0
EOF
for i in {2..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} scp /etc/sysconfig/network {}:/etc/sysconfig
deployment
- 1 node 에 1개의 FE instance 만 가능
- 1 node 에 여러개의 BE instance 배포 가능
- FE disk 는 수백 MB ~ 수 GB
- BE disk 는 사용자 데이터 저장
- 사용자의 총 데이터 * 3 추가로 40% 공간이 중간 데이터 저장
- 모든 FE 서버 시간은 5초 이내 편차만 허용함
- 모든 node 는 swap 꺼야 함
- FE Role
- leader: follower group 에서 선출
- follower
- observer
- online service 에선 follower * 3 + observer * 1~3
- offline service 에선 follower * 1 + observer * 1~3
- broker
- hdfs 같은 외부 data source 에 access 하기 위한 process
- 각 machine 에 배포
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "mkdir -p ~/Downloads/doris"
cd ~/Downloads/doris
wget https://dist.apache.org/repos/dist/release/doris/1.0/1.0.0-incubating/apache-doris-1.0.0-incubating-bin.tar.gz
for i in {2..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} scp ~/Downloads/doris/apache-doris-1.0.0-incubating-bin.tar.gz {}:~/Downloads/doris
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "mkdir -p /opt/doris"
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "tar zxf ~/Downloads/doris/apache-doris-1.0.0-incubating-bin.tar.gz -C /opt/doris"
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "chown -R root:root /opt/doris/apache-doris-1.0.0-incubating-bin"
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "cd /opt/doris ; ln -s apache-doris-1.0.0-incubating-bin default"
cat >> /opt/doris/default/fe/conf/fe.conf << EOF
# 20220715 hskimsky for apache doris
priority_networks = 192.168.0.0/16
EOF
for i in {2..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} scp /opt/doris/default/fe/conf/fe.conf {}:/opt/doris/default/fe/conf
cat > /etc/profile.d/doris.sh << EOF
export DORIS_HOME=/opt/doris/default
export PATH=\${PATH}:\${DORIS_HOME}/fe/bin:\${DORIS_HOME}/be/bin
EOF
for i in {2..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} scp /etc/profile.d/doris.sh {}:/etc/profile.d
# save and source
source /etc/profile.d/doris.sh
Start
ssh 192.168.181.231 "/opt/doris/default/fe/bin/start_fe.sh --daemon"
ssh 192.168.181.232 "/opt/doris/default/fe/bin/start_fe.sh --daemon --helper 192.168.181.231:9010"
ssh 192.168.181.233 "/opt/doris/default/fe/bin/start_fe.sh --daemon --helper 192.168.181.231:9010"
ssh 192.168.181.234 "/opt/doris/default/be/bin/start_be.sh --daemon"
ssh 192.168.181.235 "/opt/doris/default/be/bin/start_be.sh --daemon"
ssh 192.168.181.236 "/opt/doris/default/be/bin/start_be.sh --daemon"
for i in {1..6} ; do ssh 192.168.181.23${i} "hostname ; /opt/doris/default/apache_hdfs_broker/bin/start_broker.sh --daemon" ; done
초기 Frontend Web UI 화면이 뜨고 OK 누르면 로그인 화면으로 넘어감
로그인 화면
- Username: root
- Password:
로그인 후 첫화면
Add all BE nodes to FE
mkdir ~/Downloads/MySQL-5
cd ~/Downloads/MySQL-5
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
tar zxf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
rm -f mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.38-linux-glibc2.12-x86_64/ default
add nodes
ALTER SYSTEM ADD FOLLOWER "follower_host:edit_log_port"
ALTER SYSTEM ADD OBSERVER "follower_host:edit_log_port"
cat > 192.168.181.231.sql << EOF
ALTER SYSTEM ADD FOLLOWER "192.168.181.232:9010";
ALTER SYSTEM ADD OBSERVER "192.168.181.233:9010";
ALTER SYSTEM ADD BACKEND "192.168.181.234:9050";
ALTER SYSTEM ADD BACKEND "192.168.181.235:9050";
ALTER SYSTEM ADD BACKEND "192.168.181.236:9050";
ALTER SYSTEM ADD BROKER hdfs
"192.168.181.231:8000"
,"192.168.181.232:8000"
,"192.168.181.233:8000"
,"192.168.181.234:8000"
,"192.168.181.235:8000"
,"192.168.181.236:8000";
EOF
~/Downloads/MySQL-5/default/bin/mysql -h 192.168.181.231 -P 9030 -uroot < 192.168.181.231.sql
Follower, Observer 추가 후 Frontend 목록
stop-all
for i in {1..3} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "/opt/doris/default/fe/bin/stop_fe.sh"
for i in {4..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "/opt/doris/default/be/bin/stop_be.sh"
for i in {1..6} ; do echo 192.168.181.23${i} ; done | xargs -P 7 -I {} ssh {} "/opt/doris/default/apache_hdfs_broker/bin/stop_broker.sh"
reboot
for i in {6..1} ; do ssh 192.168.181.23${i} "reboot" ; done
shutdown
for i in {6..1} ; do ssh 192.168.181.23${i} "shutdown -h now" ; done
References
반응형