Я пытаюсь преобразовать удаленную таблицу MySQL в файл паркета, используя искру 1.6.2.Исключение ошибки при преобразовании таблицы MySQL в паркет
Процесс проходит в течение 10 минут, заполняя память, чем начинается с этими сообщениями:
WARN NettyRpcEndpointRef: Error sending message [message = Heartbeat(driver,[Lscala.Tuple2;@dac44da,BlockManagerId(driver, localhost, 46158))] in 1 attempts
org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [10 seconds]. This timeout is controlled by spark.executor.heartbeatInterval
в конце терпит неудачу с этой ошибкой:
ERROR ActorSystemImpl: Uncaught fatal error from thread [sparkDriverActorSystem-scheduler-1] shutting down ActorSystem [sparkDriverActorSystem]
java.lang.OutOfMemoryError: GC overhead limit exceeded
Я бег его в искровой оболочки с этими командами:
spark-shell --packages mysql:mysql-connector-java:5.1.26 org.slf4j:slf4j-simple:1.7.21 --driver-memory 12G
val dataframe_mysql = sqlContext.read.format("jdbc").option("url", "jdbc:mysql://.../table").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "...").option("user", "...").option("password", "...").load()
dataframe_mysql.saveAsParquetFile("name.parquet")
У меня есть ограничения на максимальную память исполнителя до 12G. Есть ли способ заставить писать паркетный файл в «маленьких» кусках, освобождая память?
Можете ли вы уточнить конфигурацию вашего кластера? – eliasah
Это незаурядный несчастный –
И каков размер ваших данных? Любой столбец раздела? – eliasah