A3. Если вам нужно отсортировать данные по некоторому столбцу (не по ключу строки), вы не получите никакой выгоды от использования HBase. Это будет то же самое, что чтение необработанных файлов из кустов / hdfs и сортировка, но медленнее.
A1. Конечно, вы можете использовать SHC или любую другую библиотеку spark-hbase, но A3 все еще сохраняется. Он будет загружать все данные на каждый сервер региона как Spark RDD, только чтобы перетасовать их по всему кластеру.
A2. Как и любая другая проблема программирования / архитектуры, существует множество возможных решений в зависимости от ваших ресурсов и требований.
Будет ли спарк загружать все данные на одном узле и выполнять сортировку на одном узле или будет выполнять сортировку на разных узлах?
Это зависит от двух факторов:
- Сколько областей в вашей таблице: Это определяет степень параллелизма (количество разделов) для чтения из вашей таблицы.
spark.sql.shuffle.partitions
значение конфигурации: после загрузки данных из таблицы это значение определяет степень параллелизма для этапа сортировки.
есть ли лучшая [библиотека], чем SHC?
На сегодняшний день существует несколько библиотек для интеграции Spark с HBase, у каждой есть свои плюсы и минусы, и TMO ни одна из них не является полностью зрелой или не дает полного охвата (например, по сравнению с интеграцией Spark-Hive). Чтобы получить максимальную отдачу от Spark через HBase, вы должны очень хорошо понять ваш вариант использования и выбрать наиболее подходящую библиотеку.