Я не уверен, какую версию загрузить.
Данное соображение также будет руководствоваться тем, какой существующий код вы используете, какие функции вам требуются, и допустимость ошибок.
Я хочу запустить кластер искры в автономном режиме с использованием экземпляров AWS.
Считаете ли вы, что просто бежит Apache Spark on Amazon EMR? См. Также How can I run Spark on a cluster? из FAQ Spark и их ссылку на их EC2 scripts.
Это означает, что мне нужно получить доступ к S3, но не HDFS
Один не подразумевает другого. Вы можете запустить Spark-кластер на экземплярах EC2 отлично и никогда не иметь доступа к S3. Хотя многие примеры написаны с использованием доступа S3 через готовый код S3 "fs" drivers for the Hadoop library, обратите внимание, что в настоящее время существует 3 разных метода доступа. Настройте соответствующим образом.
Однако ваш выбор библиотек для загрузки будет зависеть от того, где находятся ваши данные. Spark может получить доступ к любой файловой системе, поддерживаемой Hadoop, from which there are several to choose.
Ваши данные даже в файлах? В зависимости от вашего приложения и где ваши данные, вам может потребоваться использовать только Data Frame над SQL, Cassandra или другими пользователями!
Однако всякий раз, когда я начинаю его, я получаю это сообщение
WARN NativeCodeLoader: Не удается загрузить библиотеку нативной Hadoop для платформы ... с помощью классов Java-встроенного, где это применимо Является ли это проблема? Нужен ли мне хаоп?
Не проблема. Он говорит вам, что он возвращается к неоптимальной реализации. Другие также имеют asked this question.
В общем, похоже, что сейчас у вас нет приложений, поэтому у вас нет никаких зависимостей. Зависимости - это то, что могло бы привести к различным конфигурациям, таким как доступ к S3, HDFS и т. Д.
Я могу запустить его в локальном режиме, например, пример wordcount.
Итак, вы хорошо?
UPDATE
Я редактировал оригинальный пост
Мои данные будут приходить из потока Кафки. ... Я понимаю, что .. моим постоянным работникам необходимо выполнить checkpoint()
.
Да, подход Direct Kafka доступен от Spark 1.3 on, и в этой статье используются контрольно-пропускные пункты. Для них требуется "fault-tolerant, reliable file system (e.g., HDFS, S3, etc.)". См. Spark Streaming + Kafka Integration Guide для вашей версии для конкретных оговорок.
Так почему [я вижу предупреждение Hadoop]?
В комплект поставки Spark входит только множество клиентских библиотек Hadoop. С полностью сконфигурированной установкой Hadoop для определенных пакетов существуют также определенные для платформы двоичные файлы. Они используются, если они доступны. Использовать их, augment Spark's classpath; В противном случае загрузчик будет отбрасываться до менее эффективных версий.
В зависимости от вашей конфигурации вы можете воспользоваться полностью сконфигурированной установкой Hadoop или HDFS. Вы упоминаете, что используете существующие, постоянные экземпляры EC2, вместо того, чтобы использовать что-то новое. Существует компромисс между S3 и HDFS: S3 - это новый ресурс (более дорогостоящий), но он сохраняется, когда ваш экземпляр отключен (можно выполнить вычисление и сохранить хранилище); однако S3 может страдать от латентности по сравнению с HDFS (у вас уже есть машины, почему бы не запустить файловую систему над ними?), а также не behave like a filesystem во всех случаях. Этот компромисс описывается Microsoft для choosing Azure storage vs. HDFS, например, при использовании HDInsight.
благодарит за комментарий. Я отредактировал оригинальный пост. очень ценю вашу помощь – user3240688