기술나눔

Hadoop 플랫폼 기반 통신 고객 서비스 데이터 처리 및 분석 ③ 프로젝트 개발 : Flume 빅데이터 개발 환경 구축 --- 과제 14 : Flume 설치 및 배포

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

임무 세부정보

작업 내용은 Flume을 설치 및 구성하고 스트리밍 데이터를 테스트 및 수집하는 것입니다.

업무안내

Flume은 실시간 데이터 수집을 위한 도구로 자주 사용됩니다. 수집된 데이터는 HDFS 또는 Kafka와 같은 메시지 큐에 저장할 수 있습니다.

구체적인 설치 단계는 다음과 같습니다.

1. Flume 압축 패키지의 압축을 풉니다.

2. Flume의 환경 변수 구성

3. Flume 구성 파일을 수정합니다. Flume 구성 파일은 Flume 설치 디렉터리의 conf에 저장됩니다.

4. 원격 로그인을 통해 Flume에서 수집한 데이터를 가져옵니다.

5. Flume에서 수집한 데이터를 HDFS에 저장합니다.

임무 성취

1. 플룸 설치

/opt/software/ 디렉터리에서 설치 패키지를 찾아 설치 패키지의 압축을 풀고 설치 패키지를 /opt/app 디렉터리에 복사할 수 있습니다.

master1에서 실행:

[root@master1 ~]# cd /opt/software/
[root@master1 software]# tar -xzf apache-flume-1.9.0-bin.tar.gz -C /opt/app/

2. Flume의 환경 변수 설정

/etc/profile 파일을 편집하고 Flume의 홈 경로를 선언하고 bin 경로를 path에 추가합니다.

export FLUME_HOME=/opt/app/apache-flume-1.9.0-bin
export PATH=$PATH:$FLUME_HOME/bin

구성 파일 /etc/profile을 로드하고 적용되는지 확인합니다.

[root@master1 ~]# source /etc/profile
[root@master1 ~]# echo $FLUME_HOME

3. flume-env.sh 구성 파일 설정

flume-env.sh.template을 $FLUME_HOME/conf 아래의 flume-env.sh로 복사하고 이름을 바꾸고 conf/flume-env.sh 구성 파일을 수정합니다.

[root@master1 ~]# cd $FLUME_HOME/conf
[root@master1 conf]# cp flume-env.sh.template flume-env.sh
[root@master1 conf]# vi flume-env.sh

구성 파일 끝에 다음 내용을 추가합니다.

JAVA_HOME=/opt/app/jdk1.8.0_181
JAVA_OPTS="-Xms100m -Xmx200m -Dcom.sun.management.jmxremote"

4. 설치 확인(텔넷)

flume-conf 구성 파일 수정

$FLUME_HOME/conf 디렉터리에 있는 flume-conf.properties.template 파일을 수정하고 복사하여 flume-conf.properties로 이름을 바꿉니다.

[root@master1 ~]# cd $FLUME_HOME/conf
[root@master1 conf]# cp flume-conf.properties.template flume-conf.properties
[root@master1 conf]# vi flume-conf.properties

flume-conf 구성 파일의 내용을 다음과 같이 수정합니다.

# The configuration file needs to define the sources, the channels and the sinks.
# Sources, channels and sinks are defined per agent, in this case called 'a1'
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# For each one of the sources, the type is defined
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
#The channel can be defined as follows.
a1.sources.r1.channels = c1
# Each sink's type must be defined
a1.sinks.k1.type = logger
#Specify the channel the sink should use
a1.sinks.k1.channel = c1
# Each channel's type is defined.
a1.channels.c1.type = memory
# Other config values specific to each type of channel(sink or source)
# can be defined as well
# In this case, it specifies the capacity of the memory channel
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

Flume 설치 디렉터리에서 실행

[root@master1 conf]# cd $FLUME_HOME
[root@master1 apache-flume-1.9.0-bin]# flume-ng agent -c ./conf/ -f ./conf/flume-conf.properties -n a1 -Dflume.root.logger=INFO,console

다른 터미널을 열고 다음 명령을 입력하십시오.

[root@master1 ~]# telnet localhost 44444
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

터미널에 다음을 입력합니다.

Hello