docker에서 test로 hadoop을 공부하고 있는 도중,
namenode와 datanode가 서로 연결되지 않아 
데이터를 전송하지 못하는 상황이 발생하였습니다.

datanode가 연결되지 않는 원인을 찾아
core-site.xml을 수정하는 해결 방법을 시도하려고 하였으나,
debian9라는 오래된 운영체제의 이슈로 vi/vim/nano 모두 편집기가 실행되지 않았습니다.

이때, 편집기 없이 내부에 있는 텍스트를 수정하기 위한 방법을 공유드립니다.

 

sed 명령어로 파일 수정하기

  • sed는 스트림 편집기로, 파일의 내용을 변경할 때 유용합니다. 기존 파일을 덮어쓰거나, 필요한 내용을 파일에 추가할 수 있습니다.

sed -i 's/old-text/new-text/' 경로

 

-> 이 명령은 old-text를 찾아 new-text로 바꿉니다.

 

변경 전 :

 

변경 후 :

ubuntu 환경에서

패키지 업데이트를 위해 sudo update 명령어를 실행하였으나

 

0% [Connecting to download.docker.com] 에서 멈춰 진행되지 않았습니다.

 

관련된 에러 해결 방법에 대해 공유합니다.

 

우선, 에러의 원인은 IPv6 문제로 인해 연결에 실패하였습니다.

IPv6의 비활성화를 통해 해결이 가능했습니다.

 

[해결 방법]

1. sysctl.conf 파일 수정:

vi /etc/sysctl.conf

 

 

2. 아래 내용을 추가합니다.(IPv6 비활성화)

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

 

3. 위 내용을 서버에 적용합니다.

sudo sysctl -p

 

IPv6를 비활성화하니 정상작동 되었습니다 ~

'데이터 엔지니어 > 서버' 카테고리의 다른 글

[서버] GPU 서버 구축기  (0) 2024.08.12
[AWS] EC2 - 9090port로 접속 안되는 이슈 해결  (0) 2023.09.11
[서버]TCP 통신  (0) 2022.07.06

회사에서 모델학습을 위해 GPU서버를 요청해서 드디어 받았습니다.

 

사용을 하기 위해 구축을하였는데,

이때 발생한 오류들을 기록하면서 공유하도록 하겠습니다.

 

1. NVIDIA 드라이버 설치

#1. 드라이버 설치를 위해 기존 드라이버 제거(필요시)
sudo apt-get purge nvidia*

#2. 드라이버 목록 업데이트:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

#3. NVIDIA 드라이버 설치
sudo apt-get install nvidia-driver-535

#4. 시스템 재부팅
sudo reboot

#5. 설치 확인
nvidia-smi

 

# 설치 완료시 화면 

2. CUDA 툴킷 설치 

# 1.cuda 11.8버전 다운로드
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

# 2.cuda 툴킷 설치
sudo sh cuda_11.8.0_520.61.05_linux.run

# 3.환경 변수 설정
echo 'export PATH=/usr/local/cuda-11.2/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

 

 

## 설치시 발생했던 오류

1. cuda 툴킷을 실행하면서 GCC버전 오류로 인해 cuda 툴킷 설치 불가

해결방법

기존 GCC버전을 임시로 변경 -> 호환 가능한 GCC 설치 및 링크 -> cuda 설치 -> 설치 후 기존 GCC 복구

# 1. 기존 GCC 백업
sudo mv /usr/bin/gcc /usr/bin/gcc-backup
sudo mv /usr/bin/g++ /usr/bin/g++-backup

# 2. 호환 가능한 GCC 설치 및 링크
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
sudo ln -s /usr/bin/g++-10 /usr/bin/g++

# 3. cuda 설치 
sudo sh cuda_11.8.0_520.61.05_linux.run

# 4. 설치 후 기존 GCC 복구
sudo rm /usr/bin/gcc
sudo rm /usr/bin/g++
sudo mv /usr/bin/gcc-backup /usr/bin/gcc
sudo mv /usr/bin/g++-backup /usr/bin/g++

 

이후에는 패키지 및 라이브러리를 설치해서 사용하실 수 있습니다.

2일전까지 정상적으로 돌아갔던 코드가 오늘 갑자기 

 

OSError: [WinError 193] %1은(는) 올바른 Win32 응용 프로그램이 아닙니다

 

라는 에러를 띄우며 selenium이 실행되지 않았습니다.

저와 같은 에러가 발생한 분들이 많아 보였고, 해결방법을 찾아봤습니다.

 

위 에러가 발생한 원인은 다음과 같습니다.

새로운 Chromedriver 배포판에 Chromedriver 바이너리 옆에 THIRD_PARTY_NOTICES.chromedriver가 포함된 것 같습니다.

잘못된 크롬 드라이버로 인해 selenium이 실행되지 않은것으로 보입니다.

 

 

해결방법 아래와 같습니다.

1.pip install webdriver-manager --upgrade 를 통해서  webdriver-manager의 버전을 4.0.2버전으로 업그레이 해주시고,

2. print(ChromeDriverManager().install()) 로 현재 chromedriver의 설치 위치를 찾아 폴더를 삭제해줍니다.

3. 그리고 다시 실행하면 정상적으로 selenium이 실행됩니다.

 

- 개념 

LTV(Life Time Value)는 고객 한 명이 회사에게 전체 수명 동안 가져다주는 가치를 측정합니다.

 

- 필요성

신규고객 획득비용 (CAC) 설정 기준이되며, 효율적인 마케팅 채널을 파악하여 예산을 분배할 수 있습니다.

 

- LTV 계산법

LTV = ARPU x 리텐션

ARPU :유저당 주문금액(매출/유저수)

그룹을 코호트로 쪼개어서 LTV 비교 분석

 

- 유의사항 

1. 고객 평가 주기의 결정 

 이는 고객이 회사와 상호작용하는 주기를 나타내며, 예를들어 일년 또는 여러 해 등이 될 수 있습니다. 고객 평가 주기는 비즈니스의 성격과 상품 또는 서비스의 특성에 따라 결정 됩니다.

 

2. 잔존 가치 계산 

잔존 가치는 고객이 관계를 유지할 동안 회사에 제공할 것으로 예상되는 가치를 나타냅니다. 이를 정확하게 계산하기 위해서는 고객의 구매이력, 이탈률, 가치창출 가능성 등을 종합적으로 고려해야 합니다.

 

3. 고객 유형 및 세분화 

서로 다른 고객 그룹은 회사에 서로 다른 가치를 제공할 수 있으며, 이를 고려하여 LTV를 계산하는 것이 더욱 정확한 결과를 얻을 수 있습니다.

 

4. 기간 내 변동 요인 고려 

LTV는 시간이 지남에 따라 변할 수 있습니다. 

 마케팅 캠페인, 경쟁사의 활동, 경제적 변동 등이 영향을 미칠 수 있습니다.

 

5. 지속적인 모니터링과 업데이트

고객의 구매 행동이나 시장 상황의 변화에 따라 LTV는 변할 수 있으며, 이러한 변화를 감지하고 대응하기 위해 지속적인 모니터링이 필요합니다.

 

- 정리 

1. LTV는 효율적인 마케팅 채널을 파악하여 예산을 분배할 수 있게 해줍니다.

 

'데이터분석 > 분석방법론' 카테고리의 다른 글

[분석방법론] 퍼널 분석  (0) 2024.04.28
[분석방법론] RFM 분석  (0) 2024.04.23
[분석방법론] 코호트 분석  (0) 2024.04.23
[분석방법론] A/B Test  (2) 2024.04.19

- 개념 

고객들이 우리가 설계한 유저 경험 루트를 따라 잘 도착하고 있는지 확인해보기 위해 최초 유입부터 최종 목적지까지 단계를 나누어서 살펴보는 분석 기법입니다.

각 단계를 통과할 때마다 유저 수가 줄어들게 되는데 그림으로 그려보면 점점 좁아지는 형태의 깔대기(Funnel)모양이라 퍼널 분석이라고 말합니다.

각각의 단계를 넘어가는 것은 전환(Conversion)이라고 부르고 그 비율은 전환율(Conversion rate)이 됩니다.

 

- 필요성

얼마나 많은 사람들이 최종 단계까지 도착하는지, 또 어디에서 많이 이탈하는지 확인할 수 있습니다.

 

- 유의사항

1. 정의된 단계의 일관성 : 각 단계는 명확하게 정의되고 일관성 있어야 합니다. 각 단계가 어떤 행동을 나타내는지 명확히 이해되어야 하며, 여러 사람이 동일한 기준으로 단계를 측정할 수 있어야 합니다.

2. 퍼널에서의 드롭아웃 이유 분석 : 사용자가 퍼널의 특정 단계를 완료하지 못한 이유를 분석하는 것이 중요합니다. 이를 통해 장애물을 제거하고 사용자 경험을 향상시킬 수 있습니다.

3. 시간적 관념 고려 : 특정 기간에 사용자의 퍼널 경로가 어떻게 변하는지를 이해하고 분석하는 것이 중요합니다.

4. 다차원 분석 : 단순히 사용자가 특정 단계를 통과하는 것 이상으로, 다양한 특성에 따라 사용자를 세분화하고 분석해야 합니다. 이를 통해 다양한 사용자 그룹의 행동을 이해하고 개별적인 전략을 수립할 수 있습니다.

 

- 정리

1. 퍼널 분석은 최초 유입부터 최종 목적지까지 단계를 나누어서 사용자 경험을 살펴보는 분석 기법입니다.

2. 단계에 따라 사용자들의 이탈 지점을 파악하는데 도움이 되는 분석기법입니다.

 

- 참조문서

https://datarian.io/blog/funnel-analysis

 

'데이터분석 > 분석방법론' 카테고리의 다른 글

[분석방법론] LTV 분석  (1) 2024.04.28
[분석방법론] RFM 분석  (0) 2024.04.23
[분석방법론] 코호트 분석  (0) 2024.04.23
[분석방법론] A/B Test  (2) 2024.04.19

- 개념 

Recency 얼마나 최근에 구매했는가?

Frequency 얼마나 자주 구매했는가? 

Monetary 얼마나 많은 금액을 지출했는가?  의 약자로

즉, 사용자별로 얼마나 최근에, 얼마나 자주, 얼마나 많은 금액을 지출했는지에 따라

사용자들의 분포를 확인하거나 사용자 그룹(또는 등급)을 나누어 분류하는 분석 기법입니다.

 

- 필요성

고객 세분화를 통해 마케팅 전략을 수립할 수 있습니다.

고객들의 구매행동에 따라 그 그룹을 세분화할 수 있으며 고객의 특성과 선호도에 다라 맞춤형 마케팅 전략을 수립하는데 도움이 됩니다.

 

- 유의사항

1. 지속적인 업데이트 

고객의 구매 행동은 시간에 따라 변화할 수 있으므로, RFM 분석은 지속적으로 업데이트 되어야 합니다. 새로운 데이터를 수집하고 분석을 수행하여 최신의 고객 세분화를 유지해야합니다.

 

- 고려해야할 점

비즈니스의 성격에 따라, 상황에 따라 알맞은 기준을 세우면 됩니다. 대표적으로 서비스마다 다르게 적용이 가능한 요소들은 아래와 같습니다.

1. Recenct, Frequencty, Monetary를 각각 몇단계로 나눌것인가

2. Frequency, Monetary를 집계하는 기간을 어떻게 설정할 것인가

 

기준을 정하는 방법은 유연하게 사고하여 정하는 방법이 가장 좋습니다.

상황에 따라 R-F-M 분석중 한가지를 제외하고 분석에 적용할 수 있습니다.

 

- 정리

1. RFM은 고객을 세분화하여 마케팅 전략을 수립할 수 있게 도와주는 도구입니다.

2. RFM은 기준을 나누는 것이 중요하지만 그 기준을 세우는데 유연하게 사고하여야 합니다.

-> 분석의 목적이 없이 수치화하여 나누려고 한다면 분석의 기준을 잃을 수 있습니다.



-참조 문서 

https://datarian.io/blog/what-is-rfm

 

'데이터분석 > 분석방법론' 카테고리의 다른 글

[분석방법론] LTV 분석  (1) 2024.04.28
[분석방법론] 퍼널 분석  (0) 2024.04.28
[분석방법론] 코호트 분석  (0) 2024.04.23
[분석방법론] A/B Test  (2) 2024.04.19

- 개념 

사용자 행동을 그룹으로 나눠 지표별로 수치화 한뒤 분석하는 기법입니다.

코호트 분석은 특정 기간에 공통된 특성이나 행동을 가진 사용자 그룹을 만들어 이들의 동질적인 특성을 분석하는 방법입니다. 

즉, 고객 세분화를 ‘시간의 흐름'을 기준으로 하는 것

 

- 필요성

사용자 유지율 등의 지표를 통해 특정 기간에 방문한 사용자가 시간 경과에 따라 참여도가 어떻게 달라지는지 등을 파악하고 이에 적절한 대응을 할 수 있습니다.

 

- 유의사항 

1. 코호트의 정의와 선택

코호트는 분석의 기본 단위입니다. 따라서 올바른 코호트를 선택하는 것이 매우 중요합니다. 코호트를 정의할때 어떤 기준을 사용할지 신중하게 결정해야 합니다.

 

2. 측정 지표의 선택 

코호트 분석에서 사용할 적절한 지표를 선택하는 것이 중요합니다. 예를 들어, 사용자 유지율, 구매량, 이탈률 등이 될 수 있습니다. 이러한 지표는 분석의 결과를 해석하는 데 중요한 역할을 합니다.

 

3. 통계적 유의성 

코호트 분석에서는 코호트 간의차이가 통계적으로 유의미한지를 확인해야 합니다. 즉, 어떤 차이가 우연에 의한 것인지 아니면 실제로 의미 있는 차이 인지를 판단해야 합니다.

 

4. 시간 요인의 고려 

코호트 분석에서는 시간이 매우 중요한 변수입니다. 따라서 시간의 흐름에 따라 코호트의 특성이 어떻게 변하는지를 고려해야 합니다.

 

5. 외부 요인의 고려 

외부 요인이 사용자 행동에 영향을 미칠 수 있습니다. 이러한 외부 요인을 고려하지 않고 코호트 분석을 수행할 경우 잘못된 결론에 이를 수 있습니다.

 

6. 인과 관계의 명확성 

코호트 분석에서 관찰된 상관관계가 인과관계를 나타내는지를 명확히 구분해야 합니다. 상관 관계가 인과 관계를 나타내지 않을 수 있으므로 이점을 유의해야 합니다. 

 

#리텐션 : 코호트 분석에서 자주 언급되는 리텐션은 유지율을 의미합니다.

코호트 분석에서 측정 지표로 많이 사용되며, 리텐션에 종류또한 다양하기 때문에 추후 별도로 포스팅 하도록 하겠습니다.



- 정리

1. 코호트 분석이란 시간의 흐름을 기준으로 고객을 세분화 하여 분석하는 기법

2. 코호트 분석에서 사용되는 리텐션(유지율) 지표를 통해 사용자가 시간 경과에 따라 참여도를 확인하여 성과를 확인 할 수 있습니다.

 

- 참조문서 

https://datarian.io/blog/cohort-analysis

'데이터분석 > 분석방법론' 카테고리의 다른 글

[분석방법론] LTV 분석  (1) 2024.04.28
[분석방법론] 퍼널 분석  (0) 2024.04.28
[분석방법론] RFM 분석  (0) 2024.04.23
[분석방법론] A/B Test  (2) 2024.04.19

+ Recent posts