- 가상화 머신을 이용하여 총 4대의 노드 생성

 

hadoop1(nn01). 액티브 네임노드(ha구성을 위한 액티브), 저널노드 

hadoop2(rm01). 스탠바이 네임노드(ha구성을 위한 스탠바이), 리소스 매니저, 저널노드, 데이터노드

hadoop3.(jn01) 저널노드, 데이터 노드 

hadoop4(dn01). 데이터 노드 

 

/etc/hosts 에서 ip hostname으로 구성하여 hostname으로 하둡을 운영하였습니다. 

 

-> 제한된 컴퓨터 자원으로 인하여 총 4대의 노드로 구성하였으며,

다른분들이 하둡 구축한 게시글들을 따라서 구성하였기에 ssh 설정, 각각의 설정파일들에 대한 작성하지 않고

구축 순서 제가 겪었던 오류와 해결과정 등에 대해서 작성하도록 하겠습니다.

 

zookeeper를 설치하고 실행하는 과정에서

Error contacting service. It is probably not running 오류가 발생하는 경우가 있습니다.

 

저의 실수는 zoo.cfg파일에서 

server.1 = nn01이라는 서버 이름을 명시하여서 입력을 받지 못했다고 판단됩니다.

 

직접 서버들의 ip주소를 입력했을때는 정상적으로 작동하였습니다.

저와같은 오류가 발생하신 분들은 server ip를 정확하게 입력하셨는지 확인을 한번 해보시는게 좋을것 같습니다.

현재 chromedriver는 114버전까지만 공식홈페이지에서 지원합니다.

 

115버전 이후부터는 이전과는 다른방법으로 지원한다고 하는데, 기존에 chromedriver.exe를 통해서 사용을 했기 때문에

exe파일로 사용할 수 없어 해결방법을 찾고 있었습니다.

 

현재 크롬은 119버전까지 나와있으며, chromedriver는 119버전을 지원하지 않습니다.

 

해결방법으로는 편리하게 자동으로 webdriver를 설치해주는 라이브러리를 사용합니다.

 

[해결방법]

webdriver_manager 라이브러리를 이용하여 자동 설치 및 버전관리를 통해 편리하게 사용가능 합니다.

#webdriver_manager를 사용하기 위해 라이브러리 설치
pip install webdriver_manager 

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

#필요한 chrome_options은 추가해주면 됩니다.
chrome_options = webdriver.ChromeOptions()


driver = webdriver.Chrome(executable_path=ChromeDriverManager().install(),
options=chrome_options)


URL = "접속이 필요한 URL 기입"
driver.get(URL)

 

webdriver_manager를 사용하여 chromedriver를 자동으로 다운로드합니다. 

2023.11월 현재 m2칩을 지원하는 무료 가상화 솔루션은 한정적입니다.

많이 이용하시는 virtualBox는 m2칩을 지원하지 않기때문에 저에게 선택지는 UTM이었습니다.

 

하지만, UTM은 마우스를 전혀 사용할 수 없었고, cli환경이지만 마우스를 전혀 사용할 수 없다는 것은 큰 단점이었습니다.

그래서 조금 더 편한 개발환경을 만들기 위해 고민하였고, 가상환경은 UTM으로 설정하지만 실제 개발은 맥 터미널을 이용하여 사용하였습니다.

 

우선 UTM에 접속 후 로그인을 하게되면 ip 정보를 확인할 수 있습니다.

 

ssh username@ipaddr 을 입력하게되면,

이런식으로 접속이 가능합니다.

 

주의사항 - utm의 서버를 실행시켜놓지 않으면 접속이 불가능합니다.

실제 hadoop 환경에 대한 경험이 없어 직접 구축을 해봤습니다.

연습용으로 구축해보기 위해 vm환경에서 4대의 클러스터를 구성할 예정입니다.

 

우선, vm설치를 진행해보았습니다.

 

먼저, 저는 맥북 m2 칩을 사용하고 있습니다

-> virtualBox는 m2 환경에서 호환이 되지 않아 저는 utm으로 설치하였습니다.

 

https://mac.getutm.app/ 

 

UTM

Securely run operating systems on your Mac

mac.getutm.app

appstore에서 설치하시면 14,000원의 유료로 구매해야하지만, web에서 다운로드 받으시면 무료로 다운 받을 수 있습니다.

 

os는 ubuntu22.04버전 사용하였고, 

추후 버전 문제로 오류가 발생할 경우 20.04버전으로 변경할 예정입니다.

 

utm에 대한 설치와 ubuntu설치 과정은 타 블로그를 참고하였습니다.

 

ubuntu설치까지 완료 화면

 

 

보완해야할 점, 참고해야할 점 댓글로 남겨주시면 도움이 많이 될 것 같습니다 

감사합니다.

AWS 실습 중 9090port로 접속이 불가능

- 인바운드 규칙을 http, tcp, http로 모든 port를 설정하였음에도 불구하고, 9090port의 웹 접속이 불가능

- 모든 tcp 유형으로 포트범위를 지정한뒤 접속이 가능(필요한 port에 따라서 인바운드 규칙을 지정해주는 방법도 가능)

 저의 경우에는 9090으로 지정해주었더니 접속이 가능해졌습니다.

 

 

[주의사항]

- 고정된 port가 존재한다면, 위의 방법을 사용하여 웹 접속이 가능하지만,

 여러개의 port를 사용하게 된다면 모든 port를 허용하는게 좋습니다.

반복문을 활용하다보면 하나이상의 리스트가 필요한 경우가 있습니다.

그럴때 zip()함수를 이용하여 여러개의 리스트를 불러올 수 있습니다.

 

li_1 = ["a","b","c","d","e"]
li_2 = [1,2,3,4,5]

#for문 밖에서 선언한 li_1의 변수들을 사용할 수 없음
for i,j in zip(li_1, li_2):
	i = j
    
for i,j in zip(li_1, li_2):
	globals()[i] = j  #for문 밖에서 선언한 li_1의 변수들을 사용할 수 있음

 

#주의사항

이때 선언한 변수 i를 그대로 사용하게되면, li_1의 변수명들을 사용할 수 없습니다.

그래서 추가적으로 필요한 개념이 globals()함수 입니다.

 

for문 안에서 변수명을 사용할 때는 globals()함수를 이용하여 for문 밖에서 선언한 변수명을 그대로 사용할 수 있게해줍니다.

ubuntu에서 docker를 설치하고 실행하였을때, docker가 연결되지 않았다는 에러가 발생하였습니다.

 

 

일반적인 linux환경에서는 $sudo systemctl status docker 명령어로 docker의 연결상태를 확인할 수 있습니다.

하지만, WSL환경에서는 systemctl 명령어가 사용이 불가능합니다.

systemctl명령어 대신 service 명령어를 사용해야 정상작동 합니다.

 

docker가 실행된걸 볼 수 있습니다.

 

위와 같은 hello-world 명령어를 실행한 결과

정상작동 하는것을 볼 수 있습니다.

 

* ubuntu 22.04버전에서는 docker 실행 명령어가 정상작동 하지 않을 수 있습니다.

저도 22.04버전에서 실행하다 작동이 안되서 20.04버전으로 버전을 낮춘뒤 사용했습니다.

ubuntu 20.04버전의 사용을 추천합니다.

+ Recent posts