Изображение Spark 1.4 для Google Cloud?
С bdutil последняя версия tarball, которую я могу найти, находится на spark 1.3.1:
гс://spark-dist/spark-1.3.1-bin-hadoop2.6.tgz
В Spark 1.4 есть несколько новых функций DataFrame, которые я хочу использовать. Есть ли шанс, что образ Spark 1.4 будет доступен для bdutil, или какой-нибудь обходной путь?
ОБНОВИТЬ:
Следуя предложению Ангуса Дэвиса, я скачал и указал на spark-1.4.1-bin-hadoop2.6.tgz, развертывание прошло хорошо; однако при вызове SqlContext.parquetFile() возникает ошибка. Я не могу объяснить, почему это исключение возможно, GoogleHadoopFileSystem должен быть подклассом org.apache.hadoop.fs.FileSystem. Будем продолжать расследование по этому вопросу.
Caused by: java.lang.ClassCastException: com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem cannot be cast to org.apache.hadoop.fs.FileSystem
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2595)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:169)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:354)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
at org.apache.hadoop.hive.metastore.Warehouse.getFs(Warehouse.java:112)
at org.apache.hadoop.hive.metastore.Warehouse.getDnsPath(Warehouse.java:144)
at org.apache.hadoop.hive.metastore.Warehouse.getWhRoot(Warehouse.java:159)
at org.apache.hadoop.hive.metastore.Warehouse.getDefaultDatabasePath(Warehouse.java:177)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB_core(HiveMetaStore.java:504)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:523)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:397)
at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.<init>(HiveMetaStore.java:356)
at org.apache.hadoop.hive.metastore.RetryingHMSHandler.<init>(RetryingHMSHandler.java:54)
at org.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:59)
at org.apache.hadoop.hive.metastore.HiveMetaStore.newHMSHandler(HiveMetaStore.java:4944)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:171)
Задал отдельный вопрос об исключении здесь
ОБНОВИТЬ:
Ошибка оказалась дефектом искры; Решение / обходной путь, представленный в вышеуказанном вопросе.
Спасибо!
Haiying
1 ответ
Если локальный обходной путь приемлем, вы можете скопировать spark-1.4.1-bin-hadoop2.6.tgz из зеркала apache в корзину, которой вы управляете. Затем вы можете отредактировать extensions/spark/spark-env.sh и изменить SPARK_HADOOP2_TARBALL_URI = '<ваша копия spark 1.4.1>' (убедитесь, что учетная запись службы, на которой запущены ваши виртуальные машины, имеет разрешение на чтение архива).
Обратите внимание, что я не проводил никакого тестирования, чтобы увидеть, работает ли Spark 1.4.1 прямо из коробки прямо сейчас, но мне было бы интересно услышать ваш опыт, если вы решите попробовать.