我们有使用 Avro 的 Kafka 流。我需要将其连接到Spark Stream。 我按照 Lev G 的建议使用下面的代码。
kvs = KafkaUtils.createDirectStream(ssc, [topic], {"metadata.broker.list": brokers}, valueDecoder=MessageSerializer.decode_message)
当我通过火花提交执行它时,我遇到了以下错误。
2018-10-09 10:49:27 警告 YarnScheduler后端$YarnScheduler端点:66 - 请求驱动程序删除执行程序 12 的原因 标记为失败的容器:主机上的container_1537396420651_0008_01_000013:server_name。退出状态: 1. 诊断: [2018-10-09 10:49:25.810]容器启动异常。 容器 ID:container_1537396420651_0008_01_000013 退出代码:1
[2018-10-09 10:49:25.810]
[2018-10-09 10:49:25.811]容器退出,退出代码为非零。错误文件:预启动.err。 预启动的最后 4096 字节
:最后 4096 字节的 stderr :
Java HotSpot(TM( 64 位服务器虚拟机警告: 信息: os::commit_memory(0x00000000d5580000, 702545920, 0( 失败;错误='无法分配内存' (errno=12(
[2018-10-09 10:49:25.822]
[2018-10-09 10:49:25.822]容器退出,退出代码为非零。错误文件:预启动.err。
预启动的最后 4096 字节: 最后 4096 字节的 stderr :
Java HotSpot(TM( 64 位服务器虚拟机警告: 信息: os::commit_memory(0x00000000d5580000, 702545920, 0( 失败;错误='无法分配内存' (errno=12(
我使用了下面的命令。
spark-submit --master yarn --py-files ${BIG_DATA_LIBS}v3io-py.zip --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.2.0 --jars ${BIG_DATA_LIBS}v3io-hcfs_2.11.jar,${BIG_DATA_LIBS}v3io-spark2-object-dataframe_2.11.jar,${BIG_DATA_LIBS}v3io-spark2-streaming_2.11.jar ${APP_PATH}/${SCRIPT_PATH}/kafka_to_spark_stream.py
所有变量都正确导出。这个错误是什么?
可能是您没有在驱动程序/执行程序上分配足够的内存来处理流吗?