Apache Kafka可以通过主题发送非字符串消息吗?

时间:2016-10-26 02:58:05

标签: scala apache-kafka spark-streaming

mllib模型在某处受过训练,我希望将它发送到其他地方。当我尝试通过像这样的kafka主题发送它时

// reducers/files.js
import { SET_FILE } from '../actions/files';

export const initialState = [];

export default function files(state = initialState, action = {}) {
  switch (action.type) {
    case SET_FILE:
      const newState = state.slice();
      const file = action.file;
      newState.push(file);
      return newState;
    default:
      return state;
  }
}

我会遇到这样的错误:

val model = LogisticRegressionModel.load(sc, "/PATH/To/Model")     
val producer=new Producer[String, LogisticRegressionModel](config)
val data=new KeyedMessage[String, LogisticRegressionModel(topic2,key,model) 
producer.send(data)
producer.close() 

那么,kafka是否可以通过主题发送非字符串消息?

1 个答案:

答案 0 :(得分:1)

您可以使用Kafka Producer将非字符串消息发送到Kafka主题。从0.9.0版本开始,最好使用Java Client而不是Scala Client。

您需要做的就是在Key, Value serializer中指定正确的Properties,如下所示。

props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
 props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");