목숨건데이터엔지니어
foot-data-engineering
목숨건데이터엔지니어
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 취업과 기본기 잡기 (11)
      • Python (2)
      • 자료구조 (1)
      • 알고리즘 (1)
      • 운영체제 (2)
      • 네크워크 (1)
      • 데이터베이스 (1)
      • SQL (1)
      • Linux (1)
      • Docker (1)
    • 더 나은 엔지니어가 되기위해 (11)
      • (AWS) api-gateway, kinesis (1)
      • (AWS) MWAA (1)
      • Apache Spark (1)
      • Apache Airflow (1)
      • Apache Kafka (1)
      • Apache Flink (1)
      • Hadoop (1)
      • 알쓸신잡 (4)
    • 데이터와 손잡기 (6)
      • 머신러닝(sklearn) (1)
      • 딥러닝 (3)
      • 오디오 처리 (1)
      • 데이터 시각화 (1)
    • 코딩테스트 잡기 (1)
      • [BOJ] 문제풀이 (0)
      • [프로그래머스] 문제풀이 (0)
      • [HackerRank] SQL (0)
      • 코딩테스트 후기 (1)
    • 토이 프로젝트 (4)
    • 각종 기술 삽질하며 익히기 - onpremise (11)
    • 학습과정 잡동사니 (7)
      • 오답노트 (7)
    • 평소 궁금증 파헤치기 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 아직 한참 부족하고 부끄러운 나의 github 링크

인기 글

태그

  • 멀티 프로그래밍
  • aws builders online series
  • jupyter
  • MWAA
  • spark on centos7
  • django
  • 쓰레드와 프로세스
  • Elk
  • EMR
  • filebeat
  • 네트워크 스위치
  • scikit-learn
  • 프로세스
  • Api-Gateway
  • spark
  • CTAS
  • #데이터수집
  • ES
  • logstash
  • kafka
  • 파이썬
  • #데이터 수집 절차
  • Tableau
  • spark with elasticsearch
  • LIVY
  • 서비쿼리
  • spark to mysql
  • flink
  • 도커파일
  • Kinesis

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
목숨건데이터엔지니어

foot-data-engineering

하둡 설치 및 예제 실행해보기
각종 기술 삽질하며 익히기 - onpremise

하둡 설치 및 예제 실행해보기

2022. 2. 22. 00:22

hadoop 파일 설치하기

 

hadoop 홈페이지 들어가서 링크 복사하기(hadoop 홈페이지 : https://hadoop.apache.org/releases.html )

 

루트 홈(~)으로 이동하기

cd ~

 

링크 사용해서 tar.gz 파일 다운받기

wget https://mirror.navercorp.com/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2-src.tar.gz

 

Tar.gz파일 압축 풀기

tar -xvzf hadoop-3.2.2-src.tar.gz

 

압축 해제된 폴더 들어가면 BUILDING.txt 파일을 보면 hadoop빌드에 필요한 요청사항이 적혀있다.

우선 압축해제된 폴더로 들어가기

cd hadoop-3.2.2-src

 

BUILDING.txt 파일 있는지 확인하기

ls

 

BUILDING.txt 파일 확인하기

Less BUILDING.txt

hadoop 환경 설정하기

(이 파일만 참고해서 hadoop을 깔 수 있도록 정리해 두는 것으로 이미 설정한 사항이 있다면 그냥 넘어가기)

jdk 1.8 설치

 

아래 명령어를 입력해서 자바 버전이 확인된다면 설치할 필요 없음

java -version

 

Maven 3.3 이상 설치

 

아파치 홈페이지에서 메이븐 다운로드 링크 복사하기

(메이븐 다운로드 사이트 : https://maven.apache.org/download.cgi )

(메이븐이란? 자바 프로젝트 관리 툴로 빌드 기능을 제공)

 

파일을 설치할 root의 홈으로 이동하기

cd ~

 

링크 사용해서 tar.gz 파일 다운받기

wget https://mirror.navercorp.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz

 

Tar.gz 파일 압축 해제하기

tar -xvzf apache-maven-3.8.1-bin.tar.gz

 

디렉토리를 usr/local로 옮기기

mv apache-maven-3.8.1 /usr/local/maven

 

maven 환경 변수 설정하기

.bash_profile 파일을 수정해야 하는 데 우선 .bash_profile 열기

vi ~/.bash_profile

1번에 MAVEN_HOME 추가하기 (다른 내용은 추후 추가될 것이기 때문에 신경 쓰지 말 것)

MAVEN_HOME=/usr/local/maven

 

2번 PATH에 MAVEN_HOME 추가하기

:$MAVEN_HOME/bin

 

3번 export 목록에 MAVEN_HOME 추가하기

MAVEN_HOME

 

저장하고 나가기

 

.bash_profile 파일 실행시켜주기

source ~/.bash_profile

 

제대로 잘 연결되었는지 maven 버전 확인해보기

mvn –-version

 

protocol buffer 2.5 이상 설치

(ProtocalBuffer란? 데이터를 전송할 때 필요한 언어나 양식이 다른 문제를 해결해 주는 툴)

yum으로 protobuf 설치

yum install protobuf

 

yum으로 protobuf-compiler 설치

yum install protobuf-compiler

 

openssl devel 설치

(Openssl이란? 데이터 전송시 전송 내용을 안전하게 보호해주는 툴)

 

yum으로 openssl devel 설치

yum install openssl-devel

 

zlib devel 설치

(Zlib이란? 파일 압축 관련 툴)

 

아래 명령어로 zlib devel이 설치되어있는지 확인

yum list installed | grep zlib*

 

있으면 그냥 넘어가기

없으면 설치 (명령어 : yum install zlib-devel)

 

cmake 3.1 이상 설치

(Cmake란? 설치를 손쉽게 해주는 도구)

 

우선 cmake 설치에 필요한 gcc-c++ 이 설치되어있는지 명령어로 확인

(Gcc란? GNU Compiler Collection, 그누(리눅스) 컴파일러 모음)

 

yum list installed | grep gcc*

 

만약 없다면 설치 (명령어 :  yum install gcc-c++.x86_64 )

 

cmake 다운로드 사이트에서 링크 확인

(cmake 다운로드 사이트 : https://cmake.org/download/ )

 

cmake tar.gz 파일 다운로드

wget https://github.com/Kitware/CMake/releases/download/v3.20.1/cmake-3.20.1.tar.gz

 

Tar.gz 파일 압축 해제

tar -xvzf cmake-3.20.1.tar.gz

 

cmake 디렉토리로 이동

cd cmake-3.20.1

 

설치 파일 만들기(오래걸림 기다리기)

./bootstrap && make

 

설치 파일 실행

make install

 

cmake 경로 이동

mv cmake-3.20.1 /usr/local/cmake

 

cmake 환경 변수 설정하기

.bash_profile 파일을 수정해야 하는 데 우선 .bash_profile 열기

vi ~/.bash_profile

 

1번에 CMAKE_HOME추가하기 (다른 내용은 추후 추가될 것이기 때문에 신경 쓰지 말 것)

CMAKE _HOME=/usr/local/cmake

 

2번 PATH에 CMAKE_HOME 추가하기

:$CMAKE_HOME/bin

 

3번 export 목록에 CMAKE_HOME 추가하기

CMAKE_HOME

 

저장하고 나가기

 

.bash_profile 파일 실행시켜주기

source ~./bash_profile

 

제대로 잘 연결되었는지 cmake 버전 확인해보기

cmake –version

node.js 설치

(Node.js 란? 네트워크 애플리케이션 개발 플랫폼)

 

Epel 저장소 설치하기

(Epel 이란? Extra Package of Enterprise Linux, 리눅스 추가 패키지)

yum install epel-release

 

Node.js를 설치하기 위해 우선 yum 리스트의 nodejs 설치버전을 6에서 12로 업데이트

curl -sL http://rpm.nodesource.com/setup_12.x | bash -

 

Node.js 설치

(Bower랑 Ember-cli를 설치하기 위해 설치함)

yum install -y nodejs

 

BOwer 설치하기

(Bower란? 웹 개발을 위한 오픈 소스 패키지 관리 도구)

npm install -g bower

 

ember-cli 설치하기

(Ember-cli 란? 프레임워크인 Ember 개발을 위한 명령도구)

npm install -g ember-cli

 

hadoop 소스 빌드

 

hadoop을 깔아둔 디렉토리로 이동

cd ~/hadoop-3.2.2-src

 

빌드 하기 전에 elastic과 연동할 수 있는 dependency를 추가한다.

Dependecy는 아래 파일에 수정한다

vi pom.xml

 

Dependency를 검색해서 아래 부분을 찾는다

빨간색으로 표시한 부분에 추가할 예정이다

 

아래 내용을 붙여넣는다

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-hadoop</artifactId>
  <version>7.12.0</version>
</dependency>

참조 : 공홈 (https://www.elastic.co/guide/en/elasticsearch/hadoop/7.12/install.html )

 

저장하고 나간다

 

Maven 을 이용해서 hadoop 프로그램 빌드 (진짜 오래걸린다 기다리자)

mvn package -Pdist -Pnative -DskipTests -Dtar -Dmaven.javadoc.skip=true

설치된 파일은 hadoop-dist 디렉토리 안의 target 안에서 확인할 수 있다 이동해서 확인해보자

cd hadoop-dist/target

 

ls를 치면 hadoop-3.2.2 파일이 잘 설치된 것을 볼 수 있다

ls

 

이제 이 폴더를 응용 프로그램들을 모아두는 /usr/local로 옮겨보자

mv hadoop-3.2.2 /usr/local/hadoop

 

[참고] 왜 usr/local 폴더일까?

환경설정

 

hadoop 실행전에 환경설정 해줄 파일은 다음과 같다

core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
hadoop-env.sh

 

우선 폴더로 이동, 잘 옮겨졌는지 확인한다

cd /usr/local/hadoop

 

설정에 필요한 폴더들을 생성해준다

mkdir /usr/local/hadoop/dfs

 

mkdir /usr/local/hadoop/dfs/NameNode

 

mkdir /usr/local/hadoop/DataNode

 

mkdir /usr/local/hadoop/yarn

 

mkdir /usr/local/hadoop/yarn/logs

 

mkdir /usr/local/hadoop/yarn/local

 

이제 설정 파일들이 모여있는 폴더로 이동하자

cd etc/hadoop

(전체경로 /usr/local/hadoop/etc/hadoop)

core-site.xml

core-site.xml 은 HDFS와 MapReduce에서 공통으로 사용하는 로그파일, 네트워크 튜닝, I/O튜닝, 파일 시스템 튜닝, 압축 등과 같은 hadoop 코어를 위한 환경 설정이다.

여기서 해줄 일은 기본 파일 시스템 이름과 주소를 정해주는 것이다

(이름 fs.defaultFS, 주소 hdfs://localhost:9000)

파일을 연다

vi core-site.xml

 

아래 configuration 에 설정을 작성한다

위 위치에 아래 내용을 붙여넣는다

<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>

 

붙여넣은 모습

 

저장하고 나간다

 

hdfs-site.xml

 

hdfs-site.xml 파일은 네임노드, 보조 네임노드, 데이터노드 등과 같은 HDFS 데몬을 위한 환경 설정을 구성한다. dfs.namenode.name.dir은 파일의 디렉토리 정보와 파일 정보등을 저장하는 폴더이다. 해당 저장위치는 hdfs가 아닌 로컬에 저장을 한다. dfs.datanode.name.dir은 hadoop 파일 시스템에 저장되는 모든 파일이 저장되는 위치이다.

 

여기서 해줄 일은

첫번째로 데이터 복제 개수를 설정해 주는 것, 싱글노드 환경이므로 우선 replication factor는 1로 설정한다

두번째는 namespace와 트랙잭션 로그를 저장 할 네임노드와 데이터 노드의 저장 경로를 지정한다.

세번째는 core-site.xml과 fs.default 네임을 일치시켜 주는 것이다

 

파일을 연다

vi hdfs-site.xml

 

아래 configuration 에 설정을 작성한다

위에 표시된 곳에 아래 내용을 작성한다

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/NameNode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/DataNode</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>

 

설정 내용은 아래와 같다

dfs.replication : 파일 계수를 1로 설정

dfs.namenode.name.dir : 네임노드 로그 저장 경로

dfs.datanode.data.dir : 데이터노드 로그 저장 경로

fs.defaultFS : 디폴트 파일 시스템 이름 설정

 

설정하고 난 모습

저장하고 나간다

 

yarn-site.xml

 

이제 yarn-site.xml 파일을 수정해보자

yarn-site.xml 은 yarn과 관련된 데몬을 설정하는 파일이다.

여기서는 리소스매니저 Web-ui 주소, 노드매니저에서 중간단계 파일 및 로그를 저장할 경로를 정의해준다.

 

설정 파일을 연다

vi yarn-site.xml

 

아래 configuration 에 설정을 작성한다

위 위치에 아래 내용을 붙여넣는다

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>  
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/usr/local/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/usr/local/hadoop/yarn/logs</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value> $HADOOP_CONF_DIR,/usr/local/hadoop/share/hadoop/common/*,/usr/local/hadoop/share/hadoop/common/lib/*,/usr/local/hadoop/share/hadoop/hdfs/*,/usr/local/hadoop/share/hadoop/hdfs/lib/*,/usr/local/hadoop/share/hadoop/mapreduce/*,/usr/local/hadoop/share/hadoop/mapreduce/lib/*,/usr/local/hadoop/share/hadoop/yarn/*,/usr/local/hadoop/share/hadoop/yarn/lib/*
</value>
</property>
 

 

yarn.nodemanager.aux-services :  맵리듀스 어플리케이션을 위해 세팅될 필요가 있는 shuffle 서비스 (mapreduce_shuffle) 이름 지정

yarn.nodemanager.aux-services.mapreduce.shuffle.class : shuffle 서비스 클래스 지정

yarn.nodemanager.local-dirs : 맵리듀스 과정에서 중간 파일을 저장할 경로

yarn.nodemanager.log-dirs : 맵리듀스 과정에서 생기는 로그 파일을 저장할 경로

yarn.application.classpath : yarn이 사용할 클래스 패스

 

더 자세한 옵션은 링크 참조 : https://hajiz.tistory.com/entry/spark%EB%A5%BC-%EC%9C%84%ED%95%9C-hadoop-%EC%84%A4%EC%A0%95

 

다 작성한 모습

저장하고 나간다

 

mapred-site.xml

이제 mapred-site.xml 파일을 설정하자 맵리듀스를 위한 환경설정 파일이다.

기본 맵리듀스 프레임워크로 yarn을 설정해준다

 

mapred-site.xml 을 연다

vi mapred-site.xml

 

Configuration 영역에 설정을 적는다

위 영역에 아래 내용을 붙여넣는다

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/local/hadoop/share/hadoop/mapreduce/*,/usr/local/hadoop/share/hadoop/mapreduce/lib/*,/usr/local/hadoop/share/hadoop/common/*,/usr/local/hadoop/share/hadoop/common/lib/*,/usr/local/hadoop/share/hadoop/yarn/*,/usr/local/hadoop/share/hadoop/yarn/lib/*,/usr/local/hadoop/share/hadoop/hdfs/*,/usr/local/hadoop/share/hadoop/hdfs/lib/*</value>
</property>

 

완료된 모습

저장하고 나가주자

 

hadoop-env.sh

이번에는 hadoop-env.sh 파일을 수정해주자

Hadoop-env.sh는 hadoop이 실행하는 모든 프로세스에 적용 되는 시스템 환경값에 대한 스크립트 파일로 전체 클러스터 노드에 복사해 사용하는 설정 파일이다.

 

vi hadoop-env.sh

 

우선 JAVA_HOME을 검색하자

아래 위치를 찾는다(사실은 어디든 상관 없는데 여기서 export 되는게 많아서 우선 순위에 두려고 위쪽으로 배치함)

위 위치에 아래 내용을 붙여넣는다

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64
export HADOOP_HOME=/usr/local/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"

 

완료된 모습

저장하고 나간다

 

.bash_profile

 

hadoop 실행을 위해 .bash_profile을 설정해주자

파일을 연다

vi ~/.bash_profile

 

1번에 HADOOP_HOME 추가하기 (다른 내용은 추후 추가될 것이기 때문에 신경 쓰지 말 것)

HADOOP_HOME=/usr/local/hadoop

 

2번 PATH에 HADOOP_HOME 추가하기

:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

3번 export 목록에 HADOOP_HOME 추가하기

HADOOP_HOME

 

저장하고 나가기

 

설정을 저장해준다

source ~/.bash_profile

 

SSH 설정

Ssh 공개키를 만들어줘야 hadoop 실행이 가능하다 ssh를 설정해보자

 

Hadoop 폴더로 간다

cd /usr/local/hadoop

 

다음 명령어로 key를 생성한다

ssh-keygen -t rsa

 

아래 빨간색으로 v자로 체크한 곳에서 입력을 기다리는데그냥 아무것도 하지 않고 엔터를 쳐서 넘어간다

키가 생성된걸 확인한다

cd ~/.ssh

 

ls -l

 

공개키를 복사한다

cp ./id_rsa.pub ./authorized_keys

 

공개키의 권한을 수정한다

chmod 755 ~/.ssh

 

chmod 644 ~/.ssh/authorized_keys

 

ssh-add

 

만약 could not open a connection ~ 에러가 나면

아래 코드를 입력하고 다시 ssh-add를 해준다

 

eval $(ssh-agent)

 

ssh-add

 

hadoop 실행

최초로 접속할때는 Namenode를 포맷해준다

hdfs namenode -format

 

hadoop을 실행해준다

start-all.sh

(끄는 명령어 stop-all.sh)

Jps를 눌러 실행된걸 확인한다

jps

 

아래처럼 나오면 성공!

GUI에서 http://localhost:8088 하면 웹UI도 확인할 수 있다

hadoop 예제

hadoop이 제대로 설치되었는지 hadoop 공홈의 예제를 실습해보자

 

wordcount 예제

하둡은 자바 기반의 프로그램이기때문에 java로 컴파일한 jar 파일로 실행시킬 수 있다.

첫번째 예제는 하둡에 내장되어있는 예제 jar를 이용해서 파일의 글자 수를 세 볼 것이다

 

hadoop 설치된 경로로 이동한다

cd /usr/local/hadoop

 

맵리듀스 작업을 실행하기 위해 HDFS 디렉토리를 생성한다

hdfs dfs -mkdir /user

 

hdfs dfs -mkdir /user/root

 

hdfs dfs -mkdir /user/conf

 

테스트용 파일(README.txt)을 업로드해야한다.

우선 업로드할 input 폴더를 생성한다

hdfs dfs -mkdir /input

 

copyFromLocal 명령어를 이용하여 README.txt 파일을 input 폴더로 복사한다

hdfs dfs -copyFromLocal /usr/local/hadoop/README.txt /input

 

워드카운트 예제는 hadoop-mapreduce-examples-3.2.2.jar 파일을 사용한다.

Find 명령어로 해당 jar 파일의 위치를 찾는다.

find -name hadoop-mapreduce-examples-3.2.2.jar

Hadoop jar 명령어로 분석 프로그램을 실행한다

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar wordcount /input/README.txt ~/wordcount-output

 

실행 결과를 확인한다

hdfs dfs -cat ~/wordcount-output/part-r-00000

hadoop 입출력 예제

두번째 예제에서는 직접 jar를 생성해서 실습해 보도록 하자

 

Filezilla를 이용해서 다음 파일을 다운받는다.

/usr/local/hadoop/share/hadoop/common 디렉토리의 jar 파일 4개

/usr/local/hadoop/share/hadoop/mapreduce 디렉토리의 jar 파일 11개

이클립스에서 Java 프로젝트를 생성한다

프로젝트 이름을 HADOOP으로 하고 NEXT를 누른다

 

라이브러리 탭을 클릭한다

 

Classpath를 클릭하고 Add External JARs 버튼을 클릭한다

 

 

15개의 jar 파일을 모두 업로드한다.

 

 

추가된걸 확인하고 Finish를 누른다

 

모듈 생성창이 나오면 Don’t Create를 클릭한다.

프로젝트를 우클릭하고 Package를 생성한다.

 

 

 

패키지 이름은 hdfs로 하고 Finish 버튼을 누른다

생성한 hdfs 패키지를 우클릭하고 클래스를 새로 생성한다

(1) 클래스 이름은 HdfsFile 로 (2) public 클래스를 생성한다 (3) main 을 추가해준다. (4) finish를 눌러 생성한다

 

 

필요한 패키지들 임포트하기

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

 

Main 안에 아래 코드 붙여넣기 (무슨 코드가 적혀있는건지 한번씩 읽어보면 좋습니다)

//입력 파라미터 확인
    if(args.length != 2){
        //에러 메세지 출력
        System.err.println("사용 방법: HdfsFILE <filename> <contents>");
        //프로그램 강제종료
        System.exit(2);
    }
    try {
        // 파일 시스템 제어 객체 생성
        Configuration conf = new Configuration();
        // 하둡분산파일시스템 객체
        FileSystem hdfs = FileSystem.get(conf);
        // 경로 체크
        Path path = new Path(args[0]);
        //파일 경로 존재 여부 확인
        if (hdfs.exists(path)) {
            //파일삭제
            hdfs.delete(path,true);
        }
        //파일 저장
        FSDataOutputStream os = hdfs.create(path);
        os.writeUTF(args[1]);
        os.close();
 
        // 파일 내용 읽기
        FSDataInputStream is = hdfs.open(path);
        String inputString = is.readUTF();
        is.close();
        // 화면에 출력
        System.err.println("Input Data:"+inputString);
    } catch (Exception e) {
        e.printStackTrace();
    }

 

다 작성했으면 저장한다

 

근데 이대로 export를 해주게 되면 윈도우의 java버전은 11이고 리눅스의 자바 버전은 1.8이기 때문에 오류가 난다

프로젝트를 우클릭한 뒤 properties를 클릭한다

(1) Java Compiler 항목을 선택하고 Use compliance ~(현재 자바 환경에 따라 컴파일 하겠다)의 체크를 해제해준다

 

 

그리고 Compiler compliance level에서 1.8을 선택해준다.

아래쪽의 Apply and Close 버튼을 클릭한다

이제 File에서 Export를 클릭한다

Export wizard는 java의 JAR file을 선택한다 그리고 next를 누른다

(1) 리소스는 HADOOP을 선택하고 (2) Browse를 클릭해서 경로를 선택한다(경로는 자유롭게)

파일 이름은 Hadoop 으로 한다. 그리고 Finish 버튼을 누른다

경로에 Hadoop.jar 파일이 잘 생성되었는지 확인한다

이제 다시 리눅스로 돌아가자

/usr/local 경로로 이동한다

cd /usr/local

 

앞으로 만들 jar 파일들을 넣어 놓을 source 디렉토리를 만든다

mkdir source

 

잘 만들어졌는지 확인한다

ls

 

Filezilla를 이용해서 만든 Hadoop.jar 파일을 /usr/local/source 폴더에 업로드한다.

Source 디렉토리로 이동해서 잘 들어 왔는지 확인한다

cd source

 

ls

 

hadoop jar 명령어로 jar 파일을 실행시킨다

hadoop jar /usr/local/source/Hadoop.jar hdfs.HdfsFile input.txt "Hello Hadoop"

(만약 하둡이 꺼져있다면 start-all.sh로 실행시켜주기)

 

아래처럼 떴다면 제대로 실행된 것이다

하둡에 파일이 제대로 생성되었는지 확인해보자

hdfs dfs -ls input.txt

 

작성한 내용이 잘 들어갔는지 확인한다

hdfs dfs -cat input.txt

 

Hello Hadoop!

 

 

 

'각종 기술 삽질하며 익히기 - onpremise' 카테고리의 다른 글

주키퍼 & 카프카 설치하고 써보기  (0) 2022.02.22
스파크랑 ELASTICSEARCH 연동하기  (0) 2022.02.22
Spark 설치하고 사용해보기  (0) 2022.02.22
OPEN-JDK 1.8 설치 / ELK 설치 on centos7  (0) 2022.02.21
CENTOS7 install on Virtual Box  (0) 2022.02.21
    '각종 기술 삽질하며 익히기 - onpremise' 카테고리의 다른 글
    • 스파크랑 ELASTICSEARCH 연동하기
    • Spark 설치하고 사용해보기
    • OPEN-JDK 1.8 설치 / ELK 설치 on centos7
    • CENTOS7 install on Virtual Box
    목숨건데이터엔지니어
    목숨건데이터엔지니어

    티스토리툴바