본문 바로가기
Web & Mobile/Hadoop

Lecture 92 - Hadoop(2) 기초, Yarn 서버 추가법

by Bennyziio 2019. 8. 12.
반응형

빅데이터 개념 : 3V 
        1. Volume(볼륨) : 데이터 크기(헥터바이트 이상의 크기가 나올때, 한개의 서버에 저장하지 못할때) 
        2. Velocity : 데이터 가공속도 (데이터 생성 속도) 
        3. Variety : 데이터의 다양성(데이터 내부에 생성되는 데이터의 종류가 다양함) 
+2가지를 추가한다. 
        complexity 
        value(데이터에 대한 가치성 - 비쥬얼라이제이션(시각화)) 
        => 정규적인 형태의 데이터베이스에서는 처리 불가 
        => scale-out 형태의 병렬 처리구조(클러스터링) 형태의 데이터 처리구조가 나음(HDFS) 
        => hadoop 
        => 대용량(빅) 데이터를 분산(병렬) 처리할 수 있는 자바 기반의 오픈 소스 프레임워크(서버) 
        => google - GFS, Map/Reduce 논문이 나옴 
        => HDFS, mapreduce 개념으로 실제로 구현이 된다. 요걸 뭉쳐서 (HDFS + mapreduce) 

하둡 에코시스템 
        저장(HDFS) -> 처리(map/reduce) 

데이터가 들어오면 잡트레커가 task tracker에게 나눠서 분산으로 저장한다. 그리고 그걸 다시 
통합시키는 것이 reduce이다. 각자 분산할 때 서버가 있고, 그 서버들 위에 namenode라는 것이 있다. 
그런데 namenode가 부서지면 안되니깐 secondary namenode가 있다. 

하둡 분산구조 
        namenode : datanode 서버 관리 
        datanode : 실제 분산 데이터 저장 
        jobtracker : 작업에 할당 및 수집 
        testracker: 작업에 할당 및 수집 

하둡 에코 시스템 
: 하둡을 활용한 추가 시스템 

https://www.bogotobogo.com/Hadoop/Big Data_hadoop_Ecosystem.php 
https://hadoop.apache.org

core-site.xml에서 하둡 설정되어 있는지 확인

hdfs-site.xml에서 하둡 설정되어 있는지 확인

레플레케이션 값이 1이면 pseudo mode이고 3이면 multi mode이다.

네임노드 초기화

하둡 시작

jps 치면 프로세스가 뜬다

hdfs dfs ls / 를 치면 루트안의 내용을 보여주는데 지금은 아무 것도 없다. 그래서 그 안에 test 파일을 만들어주고 다시 ls를 하면 나오진 않는다. 하둡내 저장공간에 저장된 것이기 때문이다.

하둡 서버 크롬에서 들어가서 확인해 보면 위와 같이 test로 만든게 있는걸 볼 수 있다.

이 하둡 파일시스템을 /user/hadoop으로 옮겨보자

 datanode가 없어서 에러가 난다. datanode가 가동이 안될 때 처리 방법은 아래와 같다.

위와 같이 하여 tmp 파일이 없어야 한다.

jps 하였을 때 DataNode가 보이면 성공이다.

/user, /user/hadoop 디렉토리를 만들어 주고

/user/hadoop으로 hadoop 파일을 옮기고

위와 같이 옮겨진 것을 확인할 수 있다.

위와 같이 read는 되는데 수정은 안된다.

shell로 시작되는 파일이 있는지 없는지 확인하고 있다고 떴으며 이를 지우고 다시 검색해서 없다고 뜸. 이를 이용하여 word count를 할 수 있다. 어제는 로컬 파일을 했다면 오늘은 하둡내 파일을 해보자.

/user/hadoop 에 있는 모든 파일중에 'dfs[a-z.]+' 조건을 충족하는 내용을 grep(찾기)으로 확인해보는 방법으로 이를 자바로 해보려고 하면 무수히 많은 구문들이 필요할 것인데 하둡으로 단 한줄로 위와같이 표현할 수 있다. 우편번호 검색처럼 하나 검색할때는 자바로 해도 문제가 없겠지만 수가 방대해지면 자바로 수많은 구문들을 작성하게 되면 효율이 떨어진다.

모든 파일들을 열어보며 위와 같이 검색하여 결과를 알려준다.

hadoop
	jar
	./hadoop-3.1.1/share/hadoop/mapreduce
		/hadoop-mapreduce-examples-3.1.1.jar
	grep
	/user/hadoop
	/output
	'dfs[a-z.]+'

결과는 output에서 나오는데 그냥 ls하면 로컬위치이므로 안나오고 하둡 위치를 찾아서 검색해야 한다.

output/part-r-00000파일이 grep을 도출한 결과가 담긴 파일이다.

위와 같이 확인하면 정규식 조건에 부합하는 내용들을 확인할 수 있다.
이걸 이용하면 예를 들어 토익에서 출제가 잘 되는 빈도수가 높은 단어를 검색할 때 사용하기도 한다.

이제 이걸 외부로 뽑아보자

그냥 ls를 치면 output이라는 폴더가 생성이 되었다.

똑같은 결과가 나옴을 확인할 수 있다.

yarn 서버를 써보자

yarn 서버를 키지 않아서 8088은 안들어가진다.

yarn 설정을 해보자

서버를 띄어보자!

dsf 서버를 켜주고 이제 yarn을 따로 또 껴줘야 한다.

위와 같이 8088 Yarn 서버가 띄어졌음을 확인할 수 있다.

아까 했던 mapreduce를 Yarn을 이용해서 해보자

위와 같이 수행되었다.

apps 돌아가는 동작이 1이 추가 되었고,
아래 FinishedTime이 뜬걸 보면 동작이 Yarn에서 수행됨을 확인할 수 있다.

output내 결과를 확인해 보자

결과를 위와 같이 확인할 수 있다.

반응형

댓글