[HADOOP] HDFS에 다음 수로에 데이터를 작성하고
HADOOPHDFS에 다음 수로에 데이터를 작성하고
나는 수로 1.5.0.1 및 하둡 2.4.1 수로에 문자열을 넣어 HDFS에 저장하려고 사용하고 있습니다. 다음과 같은 수로 구성 파일은 다음과 같습니다
agentMe.channels = memory-channel
agentMe.sources = my-source AvroSource
agentMe.sinks = log-sink hdfs-sink
agentMe.sources.AvroSource.channels = memory-channel
agentMe.sources.AvroSource.type = avro
agentMe.sources.AvroSource.bind = 0.0.0.0 # i tried client ip as well
agentMe.sources.AvroSource.port = 41414
agentMe.channels.memory-channel.type = memory
agentMe.channels.memory-channel.capacity = 1000
agentMe.channels.memory-channel.transactionCapacity = 100
agentMe.sources.my-source.type = netcat
agentMe.sources.my-source.bind = 127.0.0.1 #If i use any other IP like the client from where the string is going to come from then i get unable to bind exception.
agentMe.sources.my-source.port = 9876
agentMe.sources.my-source.channels = memory-channel
# Define a sink that outputs to hdfs.
agentMe.sinks.hdfs-sink.channel = memory-channel
agentMe.sinks.hdfs-sink.type = hdfs
agentMe.sinks.hdfs-sink.hdfs.path = hdfs://localhost:54310/user/netlog/flume.txt
agentMe.sinks.hdfs-sink.hdfs.fileType = DataStream
agentMe.sinks.hdfs-sink.hdfs.batchSize = 2
agentMe.sinks.hdfs-sink.hdfs.rollCount = 0
agentMe.sinks.hdfs-sink.hdfs.inUsePrefix = tcptest-
agentMe.sinks.hdfs-sink.hdfs.inUseSuffix = .txt
agentMe.sinks.hdfs-sink.hdfs.rollSize = 0
agentMe.sinks.hdfs-sink.hdfs.rollInterval = 3
agentMe.sinks.hdfs-sink.hdfs.writeFormat = Text
agentMe.sinks.hdfs-sink.hdfs.path = /user/name/%y-%m-%d/%H%M/%S
난 이미 여기에 같은 질문을 뒀다
client.sendDataToFlume("hello world")
나는 수로가 실행중인 서버에 연결할 수 NettyAvroRpcClient이 수 없습니다 참조하십시오. 그러나 단순한 문자열 내가 무엇을 놓치고 보낸다.
전문가들은 친절 제안
해결법
-
==============================
1.내가보기 당신이 NettyAvroRpcClient와 연결하려는 경우, 당신은 실제로 브로 RPC 소스를 설정해야합니다. 다음과 같이 샘플 설정은 다음과 같습니다
내가보기 당신이 NettyAvroRpcClient와 연결하려는 경우, 당신은 실제로 브로 RPC 소스를 설정해야합니다. 다음과 같이 샘플 설정은 다음과 같습니다
# Define an Avro source called AvroSource on SpoolAgent and tell it # to bind to 0.0.0.0:41414. Connect it to channel MemChannel. agentMe.sources.AvroSource.channels = MemChannel agentMe.sources.AvroSource.type = avro agentMe.sources.AvroSource.bind = 0.0.0.0 agentMe.sources.AvroSource.port = 41414
이 포트 41414에 AvroRPC 소스를 만듭니다.
-
==============================
2.구성 그렇지 않으면 일이 밖으로 작동하지 않을 수 있습니다 정확해야합니다. 그래서 여기 수로로하고 HDFS에 데이터를 읽을 수있는 설정입니다.
구성 그렇지 않으면 일이 밖으로 작동하지 않을 수 있습니다 정확해야합니다. 그래서 여기 수로로하고 HDFS에 데이터를 읽을 수있는 설정입니다.
a1.sources = r1 a1.sinks = k2 a1.channels = c1 a1.channels.c1.type = memory a1.sources.r1.channels = c1 a1.sources.r1.type = avro a1.sources.r1.bind = 0.0.0.0 a1.sources.r1.port = 41414 a1.sources.r1.interceptors = a a1.sources.r1.interceptors.a.type = org.apache.flume.interceptor.TimestampInterceptor$Builder a1.sinks.k2.type = hdfs a1.sinks.k2.channel = c1 a1.sinks.k2.hdfs.fileType = DataStream a1.sinks.k2.hdfs.batchSize = 10 a1.sinks.k2.hdfs.rollCount = 10 a1.sinks.k2.hdfs.rollSize = 10 a1.sinks.k2.hdfs.rollInterval = 10 a1.sinks.k2.hdfs.writeFormat = Text a1.sinks.k2.hdfs.path = /user/flume/%y-%m-%d/%H%M/ # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k2.channel = c1
이 도움이 될 것입니다 :)
from https://stackoverflow.com/questions/26928225/writing-data-into-flume-and-then-to-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 돼지 스크립트에서 정규식 로그에서 문자열을 추출 (0) | 2019.10.02 |
---|---|
[HADOOP] 하이브 테이블에 새로 추가 된 레코드를 고유 ID 열을 업데이트 (0) | 2019.10.02 |
[HADOOP] org.apache.hadoop.hive.ql.metadata.Hive.loadDynamicPartitions 예외 스파크 하이브 분할 테이블을 작성 (2.11) dataframe (0) | 2019.10.02 |
[HADOOP] 하이브는 성능에 대한 쿼리를 조인 (0) | 2019.10.02 |
[HADOOP] Hadoop2에서 벤치마킹 정렬시 오류 - 파티션이 일치하지 않는 (0) | 2019.10.02 |