목차
1. 설치 패키지의 압축을 푼다
네트워크 디스크 리소스가 여기에 제공됩니다.
링크: https://pan.baidu.com/s/1Z0aItCHMybYpXkt3_RUaVw?pwd=s6pg 추출 코드: s6pg
여기의 설치 패키지는 /opt/install 폴더에 있습니다.
/opt/soft 디렉터리에 압축을 푼다.
tar -zxf /opt/install/apache-flume-1.9.0-bin.tar.gz -C /opt/soft
추출된 폴더 이름 바꾸기
cd /opt/soft
mv apache-flume-1.9.0-bin/ flume190
두 가지 구성 배포
(1) 구성 수정
Hadoop 3.1.3과 호환되도록 lib 폴더에서 guava-11.0.2.jar을 삭제합니다.
cd ../lib
rm -rf ./guava-11.0.2.jar
cp /opt/soft/hadoop313/share/hadoop/common/lib/guava-27.0-jre.jar ./
/opt/soft/flume190/conf/ 디렉토리를 입력하십시오.
cd flume190/conf/
Flume-env.sh.template이 flume-env.sh에 복사됩니다.
cp flume-env.sh.template ./flume-env.sh
이 파일을 수정하세요
vim flume-env.sh
22행: jdk 경로를 원하는 대로 수정합니다.
22 export JAVA_HOME=/opt/soft/jdk180
JDK 메모리 25라인 더 커짐
25 export JAVA_OPTS="-Xms2000m -Xmx2000m -Dcom.sun.management.jmxremote"
(2) 도구 다운로드
yum install -y net-tools
넷캣 설치
yum install -y nc
텔넷 서비스 설치
yum install -y telnet-server
텔넷 클라이언트 설치
yum install -y telnet.*
텔넷 테스트
두 개의 창을 각각 클라이언트와 서버로 엽니다.
고객
telnet localhost 7777
서비스 터미널
nc -lk 7777
클라이언트가 전화를 걸어 명령문을 입력한 후 서버는 다음을 수신할 수 있습니다.
서버가 중단되면 클라이언트도 중단됩니다.
포트 7777이 사용 중인지 확인
netstat -lnp | grep 7777
(3) 구성 파일 생성
myconf2 폴더 생성
mkdir myconf2
conf 파일 생성
vim ./netcat-logger.conf
a1.sources=r1
a1.channels=c1
a1.sinks=k1
a1.sources.r1.type=netcat
a1.sources.r1.bind=localhost
a1.sources.r1.port=7777
a1.channels.c1.type=memory
a1.sinks.k1.type=logger
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
(4) 듣기 테스트 시작
이때 실행되는 경로는 /opt/soft/flume190이며, 이 명령의 일부 매개변수 경로는 상대 경로이므로 현재 경로에서 실행해야 한다.
./bin/flume-ng agent --name a1 --conf ./conf/ --conf-file ./conf/myconf2/netcat-logger.conf -Dflume.root.logger=INFO,console
이때 클라이언트에서 다시 컨텐츠를 다이얼하면 콘솔에서 볼 수 있습니다.
작성하는 첫 번째 방법:
[atguigu@hadoop102 flume]$ bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
두 번째 글쓰기 방법:
[atguigu@hadoop102 flume]$ bin/flume-ng agent -c conf/ -n a1 -f job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
매개변수 설명:
--conf/-c: 구성 파일이 conf/ 디렉터리에 저장되어 있음을 나타냅니다.
--name/-n: 에이전트 이름을 a1로 지정합니다.
--conf-file/-f: 이번에 flume이 읽은 구성 파일은 job 폴더에 있는 flume-telnet.conf 파일입니다.
-Dflume.root.logger=INFO,console: -D는 flume이 실행 중일 때 flume.root.logger 매개변수 속성 값을 동적으로 수정하고 콘솔 로그 인쇄 수준을 INFO 수준으로 설정한다는 의미입니다. 로그 수준에는 로그, 정보, 경고, 오류가 포함됩니다.
(5) 수로 모니터링 파일
myconf 폴더에서 새 구성 파일을 편집합니다.
vim ./flumelogger.econf
a2.sources=r1
a2.channels=c1
a2.sinks=k1
a2.sources.r1.type=exec
a2.sources.r1.command=tail -f /opt/kb23/flumefile.log
a2.channels.c1.type = memory
a2.channels.c1.capacity = 1000
a2.channels.c1.transactionCapacity = 100
a2.sinks.k1.type = logger
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1
모니터링되는 파일 만들기
내가 여기에 있는 것은 /opt/kb23/flumefile.log입니다.
이 명령의 의미는 이 파일에 무언가가 추가되는 한 Flume에서 모니터링한다는 것입니다.
달리다
./bin/flume-ng agent --name a2 --conf ./conf/ --conf-file ./conf/myconf2/filelogger.conf -Dflume.root.logger=INFO,console
flumefile.log 테스트에 뭔가를 쓰세요(다른 창)
echo "hello dio" >> /opt/kb23/flumefile.log
감지되면 성공한 것입니다.