Oryginalny tytuł: Oprócz HDFS, jakie inne DFS obsługuje wsparcie (i czy jest rekomendowany)?Jak odczytujesz i piszesz z różnych klastrów ElasticSearch za pomocą isoop iskry i elastycznego wyszukiwania?
Z przyjemnością używam iskry i elastycznego wyszukiwania (z elastycznym wyszu- kiwaczem-maczkiem) z kilkoma gigantycznymi klastrami.
Od czasu do czasu chciałbym wyciągnąć cały zestaw danych, przetworzyć każdy dokument i umieścić wszystkie w innym klastrze Elasticsearch (ES) (tak, migracja danych również).
Obecnie nie ma sposobu, aby odczytać dane ES z klastra do RDD i zapisać RDD na inny z iskry + elastycznego przeszukiwania, ponieważ wymagałoby to zamiany SparkContext
z RDD. Chciałbym napisać RDD do plików obiektowych, a następnie odczytywać je z powrotem do RDD z różnymi SparkContext
s.
Jednak pojawia się problem: potrzebuję wtedy systemu plików DFS (Distributed File System), aby udostępnić duże pliki w całym klastrze. Najpopularniejszym rozwiązaniem jest HDFS, ale bardzo bym unikał wprowadzania Hadoop do mojego stosu. Czy jest jakiś inny zalecany DFS, który obsługuje iskry?
Aktualizacja Poniżej
Dzięki odpowiedź @Daniel DARABOS jest poniżej, mogę teraz odczytywać i zapisywać dane z/na różnych klastrach ElasticSearch stosując następujący kod Scala:
val conf = new SparkConf().setAppName("Spark Migrating ES Data")
conf.set("es.nodes", "from.escluster.com")
val sc = new SparkContext(conf)
val allDataRDD = sc.esRDD("some/lovelydata")
val cfg = Map("es.nodes" -> "to.escluster.com")
allDataRDD.saveToEsWithMeta("clone/lovelydata", cfg)
dzięki za odpowiedź. Używam nowych funkcji read (sc.esRDD) i write (rss.saveToEs) zaproponowanych przez elasticsearch-hadoop. W ten sposób nie można czytać i pisać z różnych klastrów. Dzięki za wniesienie pliku rdd.saveAsHadoopFile, patrzę na to, aby zobaczyć, czy mogę jakoś stamtąd wyjść. –
Ah, nie wiedziałem o tych metodach ('esRDD' i' saveToEs'). Widzę, że biorą argument "cfg: Map [String, String]". Czy nie można tego użyć do zapewnienia różnych konfiguracji czytania i pisania? –
dzięki za aktualizację. Byłem takim idiotą, aby ignorować cfg. To działa!! Zaktualizuję swój węzeł do pytania dla wszystkich. Dzięki jeszcze raz. –