on
Hadoop
Hadoop
최근까지 데이터분석, AI 공부에 집중해왔고 여러 대회를 참여하면서 많은 것들을 배울 수 있었고 수상까지 하면서 기쁨도 느낄 수 있었습니다. 며칠 전 어느 한 기업 대표님과 미팅하는 시간을 가졌습니다. 현업에서 다루고 있는 문제, 막상 AI를 하려고하니 부딪히는 벽들, 대표님의 경험 등 다양한 이야기를 나누면서 많은 생각들을 가지게 되었습니다. 항상 잘 가공된 데이터를 가지고 프로그래밍 스킬만 익힐 것이 아니라 데이터 인프라를 이해하고 잘 다룰줄 아는 사람이 되야겠다라는 생각을 갖게 되었습니다. 그래서 오늘부터 빅데이터 처리에 있어 기업에서 자주사용되는 하둡 플랫폼을 이해하려고 합니다. 대회는 가끔 취미로... ㅎㅎ
온라인에 존재하는 수 많은 데이터를 수집하여 DB 서버에 저장시킨 후 DB로부터 데이터 검색을 어떻게 하면 빠르게 할지를 과거서부터 많은 고민해왔고 많은 라이브러리와 알고리즘들이 나왔습니다. 현재는 빅데이터 처리 프로젝트로 많은 기업에서 Hadoop을 사용하고 있습니다. 하둡은 구글에서 발표한 GFS와 Map Reduce 논문 2개를 합친 프로젝트라고 할 수 있습니다. 구글 논문과 아파치 하둡 프로젝트를 비교해보면 아래 그림과 같습니다.
그 밖에도 Mahout(복잡한 ML 알고리즘을 분산처리하기 위한 알고리즘), Sqoop(관계형 DB와 하둡 연결에 사용), Oozie, Airflow(데이터 ETL workflow scheduler), Hcatalog(서로 다른 언어에서 하둡을 다루다보니 스키마, 메타정보 공유가 필요하며 이를 해주는 역할), Mrunit(Testing) 등 하둡과 관련된 프로젝트가 존재합니다.
하둡 설치
데이터 인프라 구축을 리눅스로 환경을 만들고 구축하려다가 새로 만들고 설치하기 시간이 소모되기 때문에 일단 윈도우로 구축을 해보고 나중에 시간이 남으면 virtualbox로 여러 대 가상서버 올려서 해보려고 합니다.
JAVA는 oracle 홈페이지 들어가자마자 보이는게 JDK 17이길래 이 것으로 설치하고 JAVA_HOME 환경변수 설정하고 하둡 3.3.0랑 Hive 3.1.2 다운받아서 환경변수 설정까지 했습니다.
1. 하둡 환경파일 수정(hadoop-env.cmd)
JAVA_HOME은 JDK 디렉토리
HADOOP_HOME은 hadoop 디렉토리
HADOOP_CONF_DIR 디렉토리 환경변수 설정(하둡 Config 파일 위치는 하둡 디렉토리의 etc/hadoop)
4. 설정파일 수정 : core-site.xml
fs.defaultFS hdfs://localhost:9000
5. 설정파일 수정 : hdfs-site.xml
dfs.replication 1
3. 하둡 데몬을 위해 ssh 키 받으시고 설정
ssh localhost로 로그인 가능 여부 테스트
ssh 설치는 여기 참조
4. 하둡 네임노드 포맷
hadoop-3.3.0\bin 디렉토리에서 hdfs namenode -format 명령어 수행
에러 발생 (Class ~~~~... 블라블라)
아래 github에서 hadoop.dll, winutils.exe 파일을 다운받아 hadoop-3.3.0\bin 파일에 위치시킨 후 다시 명령어 수행
https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin
잘 동작시 아래와 같은 결과가 나옵니다. 아래 결과가 길게 나오는데 너무 길어서 잘랐습니다.
5. 데몬 실행
이제 하둡설정이 잘 되었는지 데몬을 실행해보겠습니다.
hadoop-3.3.0/sbin 디렉토리에 start-dfs.cmd를 관리자 권한으로 실행
데이터노드 하나 네임노드하나 두개의 cmd 창이 뜨면서 실행됩니다.
localhost:9870에 들어가보시면 하둡에 대한 summary를 보실 수 있습니다.
from http://toitoitoi79.tistory.com/106 by ccl(A) rewrite - 2021-12-12 16:26:51