본문 바로가기

[Data Engineering]/[Hadoop]

(8)
[Hadoop/기록] 8. Hadoop map-reduce (WordCount / Python) [How abount python] 동일한 WordCount 예제를 이번에는 python으로 작성해 보도록 한다. 먼저 리눅스에 python을 설치해 준다. (공부중인 영상을 참고했는데, 매번 인스턴스 벽돌만 만져서 그런가 역대급 깔끔 설치;;) sudo apt update sudo apt-get install python-is-python3 1. Java는 한 파일에 다 담았지만 python은 mapper와 reducer를 따로 작성해본다. 먼저 mapper를 작성하고, 실행권한을 추가한다. mapper 파일의 역할은 다음과 같다. 단순히 잘라...준다. 2. 다음은 reducer 파일이다. reducer 또한 들어오는 라인의 tab을 기준으로 첫번째 것만 잘라서, int형으로 변환하고, 만약 word..
[Hadoop/기록] 7. Hadoop map-reduce (WordCount / Java) Apache Hadoop 3.3.1 – MapReduce Tutorial hadoop.apache.org --> [map-reduce 예제 실행과정]1. Hadoop home을 기준으로, 데이터를 넣을 input 폴더를 생성하고, 폴더안에 리눅스 시스템에 있던 아무 텍스트파일이나 집어넣는다.  예제는 wordcount이므로, 나는 NOTICE.txt 파일을 사용했다.  2. 하둡 폴더에는 share/hadoop/mapreduce 폴더로 들어가면 다음과 같이 다양한 예제파일들, 정확히는 Jar 실행파일 들을 확인할 수 있다. 그중에서 hadoop-mapreduce-examples-3.2.2 파일을 실행시켜보자. 커맨드는 다음과 같다.  그러면 내부에 Sourc..
[Hadoop/기록] 6. Hadoop Read/Write Architecture [Read/Write Architecture] Read Architecture는 Write Architecture의 반대로 흘러가는 개념이므로, Write Architecture 중심으로 기록하도록 한다. (깊이 공부해보고 작성한것이 아님을 감안!!) 아래 그림은 Hadoop에 Write 과정을 나타내는 다이어그램이다. 언어는 크게 중요한 부분이 아니므로 대략적인 흐름을 기억하려 한다. 먼저 기록하려는 파일이 있다고 가정해본다. 이 파일은 크기가 256MB이하라서 2개의 128MB의 Block으로 나누어진다. 이를 block a, b라고 하자. Application은 요청(file write request')을 통해 HDFS Client로 파일을 쓰겠다고 말한다. HDFS Client은 write req..
[Hadoop/기록] 5. Hadoop Architectures 훑기 [HDFS v1.x ~ v3.x Architecture] HDFS ver1.0 이던 시절, 당시의 HDFS의 구조는 위와 같다. Dataflow를 간단히 설명하자면 다음과 같다. 1. 요청이 HDFS Client로 들어온다 -> 2. HDFS Client는 namenode에서 파일에 대한 메타데이터를 불러온다. 이때 메타데이터는 namespace, filename을 의미한다. -> 3. HDFS는 이 정보를 바탕으로 데이터 노드에서 읽어내고자 하는 데이터를 읽어낸다. -> 4. 만약 namenode가 수정되면 secondary node의 edit file을 수정한다. 모든 시스템은, 발생한 문제를 해결하고 고도화 하는 과정에서 발전하기 마련이다. HDFS 1.0버전에서 발생한 주된 문제중 하나는 Sing..
[Hadoop/기록] 4. 하둡 User Common commands user-commands [user-commands] 하둡의 common-commands 는 user-command와 administrator-command로 나뉘어진다. 그 중 사용자 명령어인 user-command에 대한 기록이다. 마찬가지 특별하지 않은 cmd는 별다른 코멘트를 달지 않았다. (archive) : 파일 시스템 디렉토리를 위해 로드맵을 그린다. *.har파일로 압축되며, 메타데이터와 데이터 파일들을 가지고 있다. 하둡 HDFS는 작은 사이즈의 파일이 많아지면 네임노드에서 이를 관리하는데 어려움이 발생한다. 따라서 블록사이즈 정도로 파일을 유지해주는 것이 좋은데, 이를 위해서 하둡은 파일을 묶어서 관리하고, 사용할 수 있는 하둡 아카이브를 제공한다. hadoop archive -arch..
[Hadoop/기록] 3. Linux -> Hadoop 데이터 적재 과정(fs cmd 복습) [1. Hadoop 환경변수 재설정] java, hadoop native [2. Hadoop에 데이터를 저장할 폴더 생성] 이 과정에서 찝찝한 warning 하나를 잡고 넘어갔다. WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 라는 에러가 발생하는 경우, 위의 사진에서 HADOOP_OPT 부분을 추가적으로 입력해 준다. -> 64bit Linux에서 32bit Hadoop을 실행하면 발생할 수 있다고 한다. [3. put 명령어로 옮기고 싶은 파일을 하둡의 생성한 폴더로 옮김] 현 시점이 접근허가가 제외된 놈들을 빼고 이..
[Hadoop/기록] 2. 하둡 File-System Shell commands Hadoop File-System commands [초기 실행] dfs, yarn을 실행시켜준다. hadoop의 fs command에 익숙해지기 위한 연습이며, 리눅스와 유사한 커맨드는 구체적인 설명을 생략했다. sbin/start-dfs.sh sbin/start-yarn.sh [Hadoop FS Shell Commands] linux에서 통상적으로 쓰이는 쉘 커맨드랑 굉장히 유사하다. 하지만 하둡의 루트 디렉토리에서 반드시 실행시켜야 한다! (ls) hadoop fs -ls bin/hdfs dfs -ls (mkdir) hadoop fs -mkdir /user bin/hdfs dfs -mkdir /hdfs-user (touchz) bin/hdfs dfs -touchz /생성하고자 하는 경로/파일명 - h..
[Hadoop/기록] 1. Ubuntu 20.04 LTS에 하둡 설치 및 환경구성 [Ubuntu 20.04 LTS에 Hadoop 3.2.1 설치] 1. ssh 설치 sudo apt-get install ssh sudo apt-get install pdsh 2. 권한 변경 sudo chmod -R 777 /home/lsy1206/.bashrc nano .bashrc ssh-keygen -t rsa -P "" cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh localhost exit sudo apt-get update 3. java 설치 oracle에서 java 1.8 linux download 적당한 곳에 압축파일 해제 sudo tar -xvzf ~/Downloads/jdk-8u301......... + 환경변수 설정 sudo chmod -..