반응형

회사에서 테스트 때문에 synology nas 에 java 를 실행해야 할 일이 생겼는데

DS 7 부터 java 를 지원하지 않는다고 하여 해결법을 적어둔다.

회사 synology nas 는 얼마 전 DSM 7.1 로 업그레이드를 했다.

 

패키지 센터 > 설정
패키지 소스 > 추가

이름: Java

위치: https://get.filebot.net/syno/ 

확인

추가

 

설정에 추가된 모습
커뮤니티 > Java Installer 설치
사용자 동의
설치 중...
설치완료
Terminal 에서 확인

반응형

'[프로그래밍]' 카테고리의 다른 글

오늘부터의 목표  (0) 2022.07.18
Apache Ratis 소개  (3) 2018.03.21
java 로 KMP 알고리즘  (0) 2017.12.21
dfs 알고리즘을 java 로 구현하기  (0) 2017.02.16
[IntelliJ] SVN 커밋 시 'is out of date' 에러 문제  (0) 2015.10.23
Posted by FeliZ_하늘..
,
반응형

2022년 7월 18일 출근하려고 샤워하는 도중 문득 이런 생각을 하게 되었다.

작년까지 목표는 대표님 코딩 안하게 하는 것이었다.
그런데 올해 5월쯤 다른회사 프로젝트가 거의 마무리 되어갈 즈음, 대표님께서 오른쪽 자리에 앉아서 이런 말씀을 하셨다.
"오랜만에 코딩을 하니 살아있는 것 같았다."
그 당시엔 그럴 수 있지 라며 넘겼었는데, 오늘 샤워하는 도중 뇌리에 그 단어들이 스치더니 내 오른쪽 뇌를 때리는 것 같았다.

내 개발인생 전체 8년간 봬온 분이었는데...
진짜 개발자가 개발하는 모습을 옆자리에서 처음으로 보여주신 분이었는데...
대표님의 코딩은 업무이면서 동시에 행복코딩이 아니었을까 하는 생각이 들었다.

나는 16살에 바이올린 전공을 포기하면서 바이올린을 취미로 미루고 그 다음 취미는 코딩이었다.
이직을 결심하고 공부하면서 지금의 대표님을 만났고, 업으로도 코딩을 했다.
생각해보니 나도 언젠가부터는 회사에서의 코딩과 집에서의 코딩을 구분했다.
나도 행복코딩을 하고 있었다.
그런 분의 코딩을 안하게 한다니...
내 뒤에 있을 누군가의 칼을 갈아주는 것 같다는 느낌이 들었다.

지금부터는 대표님의 "행복코딩"을 위해 일해야겠다는 생각이 들었다.
그래야 나도 행복코딩을 할 수 있을테니까...

반응형

'[프로그래밍]' 카테고리의 다른 글

Java Install in Synology DSM 7  (0) 2022.07.26
Apache Ratis 소개  (3) 2018.03.21
java 로 KMP 알고리즘  (0) 2017.12.21
dfs 알고리즘을 java 로 구현하기  (0) 2017.02.16
[IntelliJ] SVN 커밋 시 'is out of date' 에러 문제  (0) 2015.10.23
Posted by FeliZ_하늘..
,

Apache Doris 설치

[BigData] 2022. 7. 15. 23:33
반응형

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 누르면 로그인 화면으로 넘어감

초기 Frontend Web UI

로그인 화면

  • Username: root
  • Password:

Login UI

로그인 후 첫화면

첫화면

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 목록

Frontend List

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

반응형

'[BigData]' 카테고리의 다른 글

TB to PB  (0) 2023.03.30
Posted by FeliZ_하늘..
,