반응형

MySQL / MariaDB 컬럼명 조회

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='테이블명';
반응형
반응형
# 계정 확인
select user, host from mysql.user;

# 권한 부여
GRANT ALL PRIVILEGES ON [DB 이름].* TO '[계정 이름]'@'[계정 host]';
FLUSH PRIVILEGES;

# 권한 확인
SHOW GRANTS FOR '[계정 이름]'@'[계정 host]';
반응형

'DB > MySQL' 카테고리의 다른 글

MySQL Query 최대 용량  (1) 2024.09.05
EXISTS 사용 방법  (0) 2023.07.15
Join 속도 개선  (0) 2023.05.17
반응형

*MySQL에서 bulk insert를 할 때 DB에서 받아 줄 수 있는 최대치를 구하기 위함

*MySQL은 최대 용량으로 DB가 받아 줄 수 있는 양을 결정(개인적으로 확인했을 때)

 

# 확인 방법
SHOW VARIABLES LIKE 'max_allowed_packet';


# 테스트
INSERT INTO cm_max VALUES ( REPEAT('A', 10000000), REPEAT('가', 10000000));
# 10000000 은 10MB 정도, 만약 max_allowed_packet가 10MB 이상이면 max_allowed_packet 을 줄여서 테스트
# -> SQL Error [1301] [HY000]: (conn=257936) Result of repeat() was larger than max_allowed_packet (16777216) - truncated

# max_allowed_packet 줄이는 방법
SET GLOBAL max_allowed_packet = 128 * 1024 * 1024;

 

 

 

 

 

반응형

'DB > MySQL' 카테고리의 다른 글

MySQL 계정에 DB 권한 부여  (0) 2024.09.05
EXISTS 사용 방법  (0) 2023.07.15
Join 속도 개선  (0) 2023.05.17
반응형

File 읽어서 객체에 담기

# test 객체


class test:
	name: str
    age: int

def test():
    file_path = "test.txt"
    # 파일 읽기
    with open(file_path, 'r', encoding='UTF8') as file:
        file_content = file.read()

    # JSON 파싱
    data = json.loads(file_content)
    x = data["data"]

    # Syncer 인스턴스 생성
    test_data = test(**x)
반응형

'Python' 카테고리의 다른 글

파이썬 lambda 사용시  (0) 2023.06.01
print 하면 <map object at 0x10446d880> 나올 때  (0) 2023.06.01
[python] list 사용 방법  (0) 2023.05.29
zip()  (0) 2023.05.03
combinations()  (0) 2023.05.03
반응형

- Worker Node

sudo kubeadm reset
sudo rm -rf /etc/cni/net.d
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t raw -F
sudo iptables -t raw -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo ipvsadm --clear
rm $HOME/.kube/config


# 만약 cache가 있으면 cache도 제거

 

 

- Master Node

sudo kubeadm reset

sudo rm -rf /etc/cni/net.d
sudo rm -rf /var/lib/etcd
sudo rm -rf ~/.kube

sudo kubeadm init --pod-network-cidr=192.168.0.0/16

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico.yaml -o calico.yaml
kubectl apply -f calico.yaml
반응형

'Kubernetes' 카테고리의 다른 글

kubernetes yaml 분석  (1) 2024.10.07
Pod에 붙어 있는 PV 확인  (0) 2024.09.11
kubectl 자동 완성  (0) 2024.09.06
Ubuntu 20.04 Kubernetes cluster 구축 방법  (1) 2024.06.30
반응형

 

1. OS 정보 확인

# 코어 확인
nproc

# 메모리 확인
free -h

# MAC 확인
ifconfig -a

# product uuid 확인
sudo cat /sys/class/dmi/product_uuid
# 또는 
sudo cat /sys/class/dmi/id/product_uuid

 

2. 메모리 swap 기능 비활성화

# swap 임시 비활성화
sudo swapoff -a 

# swap 영구 비활성화
sudo sed -i '/swap/s/^/#/' /etc/fstab

# 메모리 상태 확인
sudo free -m

# swap 메모리 상태 확인, 출력값이 없으면 swap 메모리 비활성화 상태
sudo swapon -s


# 만일 위에 명령어로 swap 기능 비활성화가 되지 않으면 아래 명령어를 실행
#swap unit 조회
systemctl list-unit-files --type swap

# swap unit(dev-파티션이름.swap)을 mask해서 비활성화
systemctl mask [swap unit명]
ex) systemctl mask dev-sda3.swap

# 비활성화 적용 확인
sudo systemctl list-unit-files --type swap

 

3. 방화벽 설정(쿠버네티스 포트만 방화벽 포트 개방)

# 방화벽 예외 설정(마스터, 워커)
sudo apt-get install -y firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 마스터 노드일 경우
sudo firewall-cmd --permanent --add-port=6443/tcp
sudo firewall-cmd --permanent --add-port=2379-2380/tcp
sudo firewall-cmd --permanent --add-port=10250-10252/tcp
sudo firewall-cmd --permanent --add-port=8285/udp
sudo firewall-cmd --permanent --add-port=8472/udp
sudo firewall-cmd --reload

# 워커 노드일 경우
sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=30000-32767/tcp
sudo firewall-cmd --permanent --add-port=8285/udp
sudo firewall-cmd --permanent --add-port=8472/udp
sudo firewall-cmd --permanent --add-port=26443/tcp
sudo firewall-cmd --reload

# 방화벽 오픈 상태 확인
sudo firewall-cmd --list-all

# 열린 포트 확인
sudo netstat -tlnp

# 다른 노드의 포트 점검
telnet [ip] [port]
ex) telnet 192.168.100.128 6443

>> 
Trying 192.168.111.128...
telnet: Unable to connect to remote host: Connection refused
#Trying 192.168.111.128... 만 계속 나오면 방화벽 오픈되어 있지 않음
#Connection refuesed가 나오면 방화벽 오픈은 되어 있으나 프로세스가 올라가 있지 않은 상태

# 방법2
curl -v telnet://[ip]:[port]

 

4. 네트워크 옵션 설정

# /etc/modules-load.d/k8s.conf 파일 생성
sudo cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
 
# /etc/sysctl.d/k8s.conf 파일 생성
sudo cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# 시스템 재시작 없이 stysctl 파라미터 반영
sudo sysctl --system

br_netfilter는 Linux 커널 모듈로, 브리지 네트워크 인터페이스를 사용하여 IP 필터링과 네트워크 주소 변환(NAT)을 가능하게 하는 기능을 제공합니다. 이 모듈은 특히 Kubernetes와 같은 컨테이너 오케스트레이션 시스템에서 필수적입니다. Kubernetes에서 Pod 간 통신 및 네트워킹을 올바르게 처리하기 위해 br_netfilter가 필요할 수 있습니다.

 

5. 컨테이너 런타임 설치

- Docker 설치 후 Containerd 패키지 사용

apt 업데이트 및 필수 패키지 설치

# apt 업데이트
sudo apt-get update

# 필수 패키지 설치
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

 

공개키 다운로드 및 저장소 등록

# 공개키 다운로드
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 저장소 등록
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

도커 설치

# 저장소 추가로 apt 업데이트
sudo apt update

# 도커 설치
sudo apt install -y docker.io 또는 sudo apt install -y docker-ce

# 도커 버전 조회
docker --version

* docker.io 데비안(우분투)에서 제공하는 도커 패키지로 데비안 저장소에서 도커 패키지를 가져오게 된다.

* docker.io 는 docker의 외부 종속성 패키지는 마이크로 패키징으로 독립적으로 패키징되어 있다.

* docker-ce 설치 시 → 외부 종속성 패키지로 containerd.io 설치됨.

* docker.io 설치 시 → 외부 종속성 패키지로 containerd 설치됨.

 

도커 데몬 설정

# /etc/docker 디렉토리 없을 경우 생성
sudo mkdir /etc/docker

# daemon.json 파일 추가
sudo cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

# 필요 시 cgroup(runc) 옵션 설정
# containerd 구성 파일 생성
sudo mkdir -p /etc/containerd

# containerd 기본 설정값으로 config.toml 생성
sudo containerd config default | sudo tee /etc/containerd/config.toml

# config.toml 파일 수정
vi /etc/containerd/config.toml

# cgroup driver(runc) 사용하기 설정
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true

# 수정사항 적용 및 재실행
sudo systemctl restart containerd

 

도커 재실행

# 도커 재시작
sudo service docker restart

# 도커 상태 조회
sudo service docker status

 

 

- Containerd 설치 후 사용

apt 업데이트 및 필수 패키지 설치

#apt 업데이트
sudo apt-get update

#필수 패키지 설치
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

 

공개키 다운로드 및 저장소 목록

#공개키 다운로드
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 저장소 등록
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

containerd 패키지 설치

#저장소 적용을 위한 apt 업데이트
sudo apt-get update

#containerd 패키지 설치
sudo apt-get install containerd

#설치 확인
sudo systemctl status containerd

 

containerd config 옵션 설정

#containerd 구성 파일 생성
sudo mkdir -p /etc/containerd

#containerd 기본 설정값으로 config.toml 생성
sudo containerd config default | sudo tee /etc/containerd/config.toml

#config.toml 파일 수정
vi /etc/containerd/config.toml

# cgroup driver(runc) 사용하기 설정
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true

#수정사항 적용 및 재실행
sudo systemctl restart containerd

 

- Docker Engine + cri-dockerd 적용

  • Docker 엔진 관련 명령을 기반으로 스크립트를 실행
  • 권한이 있는 Pod에서 Docker 명령 실행
  • Docker 특정 로깅 및 모니터링 활용

apt 패키지 업데이트 및 필수 패키지 설치

# apt 업데이트
sudo apt update

# 필수 패키지 설치
sudo apt install -y apt-transport-https ca-certificates curl gnupg

# 설치 패키지 조회
dpkg -l | grep [패키지명]

 

docker gpg 키 다운로드 및 저장소 추가

#공개키 다운로드
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 저장소 등록
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

docker 패키지 설치

#등록한 레포지토리를 반영하기 위해 apt update
sudo apt update

#docker 패키지 설치
sudo apt install -y docker-ce

 

설치 확인

#버전 확인
docker --version

#hello-world container 생성
docker run -it --name [컨테이너명] hello-world

#도커 컨테이너 조회
docker ps -a

#도커 컨테이너 삭제
docker rm [컨테이너ID 또는 컨테이너명]

#도커 이미지 조회
docker images

#도커 이미지 삭제
docker rmi [이미지명]

 

- cri-dockerd를 이용하여 도커 엔진과 쿠버네티스 연결

#cri-dockerd 소스코드 복사
git clone https://github.com/Mirantis/cri-dockerd.git

#Go언어 설치
wget https://storage.googleapis.com/golang/getgo/installer_linux
chmod +x ./installer_linux
./installer_linux
source ~/.bash_profile

#cri-dockerd 빌드
cd cri-dockerd
mkdir bin
go build -o bin/cri-dockerd

#/usr/local/bin 으로 빌드파일 복사
mkdir -p /usr/local/bin
install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd

#systemd에 서비스 등록
cp -a packaging/systemd/* /etc/systemd/system
sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service

#재기동
systemctl daemon-reload
systemctl enable cri-docker.service
systemctl enable --now cri-docker.socket
sudo systemctl restart docker && sudo systemctl restart cri-docker

#상태 확인
sudo systemctl status cri-docker.socket --no-pager

# Docker daemon Cgroup 변경
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

 

6. Kubernetes Cluster 설치

a. apt 패키지 업데이트 및 필수 패키지 

  • apt-transport-https
  • ca-certificates
  • curl
  • gnupg
# apt 업데이트
sudo apt-get update

# 필수 패키지 설치
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg

 

b. 구글 클라우드의 공캐  키 다운로드 및 쿠버네티스 레포지토리 추가

- Ubuntu 20.04

#keyrings 디렉토리 생성
sudo mkdir -p /etc/apt/keyrings

#개인키 다운로드
curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://dl.k8s.io/apt/doc/apt-key.gpg

#쿠버네티스 레포지토리 추가
sudo apt-add-repository "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io/ kubernetes-xenial main"

 

- Ubuntu 22.04 이후

#공개 키 다운로드
curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://dl.k8s.io/apt/doc/apt-key.gpg

#apt 저장소에 쿠버네티스 저장소 추가
sudo echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 23.01쯤 부터 쿠버네티스 저장소 url이 변경됨.
#https://packages.cloud.google.com/apt/doc/apt-key.gpg -> https://dl.k8s.io/apt/doc/apt-key.gpg

*만약 문제가 발생하면 vi 편집기로 kubenetes.list 파일에 해당 문자열 추가

sudo vi /etc/apt/sources.list.d/kubernetes.list 

# 다음 문자열 추가
deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io/ kubernetes-xenial main

 

c. 쿠버네티스 패키지 설치

# 저장소 추가되었기 때문에 apt 업데이트
sudo apt-get update

# 쿠버네티스 패키지 설치
sudo apt-get install -y kubelet kubeadm kubectl

# 쿠버네티스 패키지 버전 고정
sudo apt-mark hold kubelet kubeadm kubectl

# 쿠버네티스 설치 버전 조회
kubelet --version
kubeadm version
kubectl version

# kubelet service 확인
sudo systemctl status kubelet.service

*쿠버네티스 패키지 설치할 때 Unable to locate package ~ 에러가 발생할 수 있습니다.

# 해결
# 구글 클라우드의 공개 사이닝 키를 다운로드 한다.
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg

# 쿠버네티스 apt 리포지터리를 추가한다.
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# apt 패키지 색인을 업데이트하고, kubelet, kubeadm, kubectl을 설치하고 해당 버전을 고정한다.
sudo apt-get update

 

7. Master Node 구성

a. Control-Plan 구성

kubeadm을 통해 Control-Plane 설정을 완료하면 Worker Node의 join키가 발급되고 해당 키로 Worker Node를 등록 시 사용하니 기록 필요

# 쿠버네티스 클러스터를 초기화하여 새로운 마스터 노드를 생성하는 명령어
# 별도의 옵션을 설정하지 않으면 기본 디폴트 값으로 적용
kubeadm init [옵션]

# 기본 설정 명령어
sudo kubeadm init

# Calico
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
# Flannel
sudo kubeadm init --pod-network-cidr=10.244.0.0/16



# 옵션 목록
--config : 초기화에 사용할 구성 파일을 지정
--token : 클러스터에 대한 액세스를 허용하는 토큰을 초기화
--pod-network-cidr : 클러스터에 대한 Pod 네트워크 CIDR 범위를 지정
--apiserver-advertise-address : API 서버가 퍼블릭 엔드포인트에 대해 알릴 IP 주소를 지정
--apiserver-cert-extra-sans : 마스터 노드 인정스에 추가할 DNS 이름을 지정
--control-plane-endpoint : 컨트롤 플레인 구성요소가 서로 통신하는데 사용할 엔드포인트를 지정
--cri-socket : 사용할 CRI의 소켓을 지정

# 결과
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.0.19.95:6443 --token er5mxz.xnyvpcqw5tx1kwbe --discovery-token-ca-cert-hash sha256:ef921801340bd63f1e7ab862d4c9130c0fbd2f0c37e59ab81b29af0f27a23ba7

 

b. kubectl 설정

root 계정이 아닌 다른 계정에서도 kubectl 명령어를 사용하기 위해 config 설정

*config 설정을 진행하지 않을 경우 kubectl 명령어를 사용 시

The connection to the server localhost:8080 was refused - did you specify the right host or port?

sudo mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

c. CNI(Container Network Interface) 설정

컨테이너 간의 네트워크를 제어할 수 있는 플러그인으로 컨테이너 런타임에서 컨테이너의 네트워크를 사용하게 해주는 인터페이스입니다.

쿠버네티스에서 사용되는 Pod들은 기본적으로 오버레이 네트워크 방식을 적용하여 엔드포인트 간의 네트워크 구조를 추상화하여 네트워크 통신 경로를 단순화합니다. 이때 사용되는 플러그인 마다 설정 방법이 다릅니다.

# Flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# Calico
curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.5/manifests/calico.yaml -o calico.yaml
kubectl apply -f calico.yaml

# CNI 적용 확인
kubectl get pods -A -o wide

 

8. Worker Node구성

a. Worker Node Master 클러스터에 연결

마스터 노드에서 kubeadm init을 통해 생성한 join 명령어를 이용하여worker node 등록

sudo kubeadm join [ip]:6443 --token [토큰명] --discovery-token-ca-cert-hash [hashkey]

 

9. 최종 확인

a. Master Node에서 node 상태 확인

kubectl get node
or
kubectl get nodes -o wide

 

 

 

 

 

 

 

반응형

'Kubernetes' 카테고리의 다른 글

kubernetes yaml 분석  (1) 2024.10.07
Pod에 붙어 있는 PV 확인  (0) 2024.09.11
kubectl 자동 완성  (0) 2024.09.06
kubernetes cluster 재설정  (1) 2024.06.30
반응형

 

kafka-lag-exporter

kafka-lag-exporter 설치 및 실행

*여러 방법으로 실행하는 방법이 있는데 Java 방식으로 설치 및 실행했습니다. 다른 방식은 처음 사람이 하기에는 어려울 수 있습니다.

 

  1. https://github.com/seglo/kafka-lag-exporter/releases 페이지에서 zip 형태를 다운로드 받습니다. Source code는 example 파일 사용을 위해 다운로드 받습니다.
  2. java를 설치하거나, java version이 8이면 최신 버젼으로 업데이트 해줍니다.
    1. 8 버젼이면 아래와 같은 에러가 발생합니다.
    2. ‘java.lang.UnsupportedClassVersionError: ch/qos/logback/classic/spi/LogbackServiceProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0’
  3. Source code에 example 폴더에 application.conf 파일을 kafka-lag-exporter 폴더로 이동해줍니다.
  4. pplication.conf 파일 내용을 수정해줍니다.
  5. 아래 명령어를 실행해줍니다.
$ ./bin/kafka-lag-exporter -Dconfig.file=/Users/jsh/kafka/kafka-lag-exporter/application.conf

 

반응형
반응형

spark-driver version 과 python verson 맞추기 

 

환경

- Mac2

- Mac2에 자동으로 설치 되어 있는 python3 와 version 3.12.*

 

방법

현재 python3 -V 하면 3.9가 나오며, 현재 brew python 설치는 3.12로 되어 있는 상태에서 spark-driver worker version 은 3.12 가 나오는 상태입니다.

만약 spark-driver worker version 이 brew list 에 있으면 해당 위치를 .zshrc 또는 .bash_profile 에 설정을 해주면 됩니다.

예를 들어 python3 에 3.12이면 아래와 같이 넣어주면 됩니다.

#Python
alias python="python3"
alias python3="/opt/homebrew/bin/python3.12"

해당 항목을 저장후 source 를 통해 쉘에 적용 후 python3 -V 하면 원하는 version 이 나올겁니다.

 

만약 spark-driver worker version 이 brew list 에 없으면 brew install python@3. 뒤에 원하는 버젼을 입력하여 설치 합니다.

설치 후 위와 같이 항목을 적용 합니다.

 

 

jupyter 로 pyspark 열 때 맞추는 방법

아래 부분 보고 맞추시면 됩니다.

#Python
alias python="python3"
alias python3="/opt/homebrew/bin/python3.12"

#Spark
export SPARK_HOME=~/Spark/spark
export PYSPARK_PYTHON=/opt/homebrew/bin/python3.12
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
export SPARK_LOCAL_IP=127.0.0.1
alias sparknb='$SPARK_HOME/bin/pyspark'

여기서 주의할건 PYSPARK_PYTHON 에 python3 를 입력하면 적용이 되지 않아 직접 dir 를 입력했습니다.

그리고 PYSPARK_DRIVER_PYTHON 은 jupyter 이여야 합니다.

반응형

+ Recent posts