flume錯誤FlumeException: Unable to load sink type: 8888, class: 8888

錯誤信息

Failed to load configuration data. Exception follows.
org.apache.flume.FlumeException: Unable to load sink type: 8888, class: 8888
        at org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:70)
        at org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:43)
        at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:450)
        at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:106)
        at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:145)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
		
		
		
		
		
2019-12-28 10:51:47,944 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:147)] Failed to load configuration data. Exception follows.
org.apache.flume.FlumeException: Unable to load sink type: 8888, class: 8888
        at org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:70)
        at org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:43)
        at org.apache.flume.node.AbstractConfigurationProvider.loadSinks(AbstractConfigurationProvider.java:450)
        at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:106)
        at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:145)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: 8888
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at org.apache.flume.sink.DefaultSinkFactory.getClass(DefaultSinkFactory.java:68)
        ... 11 more
		

配置文件

# 五大步驟 主機1 通過選擇器 發送到2個channel中 兩個channel下沉到不同的另外兩臺主機中
#本腳本運行在t1主機中

#1. 定義這個agent中各組件的名字
a1.sources = s1
a1.channels = c1 c2
a1.sinks = k1 k2

# 2. 描述和配置source組件:s1
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /root/app/flumeData/a.log

#關鍵步驟 複製數據選擇器
a1.sources.s1.selector.type = replicating


# 3. 描述和配置channel組件,此處使用是內存緩存的方式
a1.channels.c1.type = memory
a1.channels.c2.type = memory

# 4. 描述和配置sink組件:向哪裏發送 指明主機和端口 
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = t2
#a1.sinks.k1.type = 8888 導致重大錯誤
#a1.sinks.k1.port = 8888


a1.sinks.k2.type = avro
a1.sinks.k2.hostname = t3
#a1.sinks.k2.type = 8888 導致重大錯誤
#a1.sinks.k2.port = 8888


#5.組件關聯
a1.sources.s1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c2

錯誤原因 VC 高手 最致命的bug

#a1.sinks.k1.type = 8888 導致重大錯誤 端口寫成了 類型

解決方案

# 五大步驟 主機1 通過選擇器 發送到2個channel中 兩個channel下沉到不同的另外兩臺主機中
#本腳本運行在t1主機中

#1. 定義這個agent中各組件的名字
a1.sources = s1
a1.channels = c1 c2
a1.sinks = k1 k2

# 2. 描述和配置source組件:s1
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /root/app/flumeData/a.log

#關鍵步驟 複製數據選擇器
a1.sources.s1.selector.type = replicating


# 3. 描述和配置channel組件,此處使用是內存緩存的方式
a1.channels.c1.type = memory
a1.channels.c2.type = memory

# 4. 描述和配置sink組件:向哪裏發送 指明主機和端口 
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = t2
#a1.sinks.k1.type = 8888 導致重大錯誤
a1.sinks.k1.port = 8888


a1.sinks.k2.type = avro
a1.sinks.k2.hostname = t3
#a1.sinks.k2.type = 8888 導致重大錯誤
a1.sinks.k2.port = 8888


#5.組件關聯
a1.sources.s1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c2

如果覺得我的文章對您有用,請隨意點贊。您的支持將鼓勵我繼續創作!
聽說,點讚我的人最後都找到了真愛!

聽說點讚我的人,都進了福布斯排行榜!

點讚的都是天使!

點讚了的人都會變美!

點讚的人最後都成了IT技術大牛!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章