Couchbase для экспорта локальных файлов
Мне нужно перенести данные couchbase в HDFS, но кластеры db и Hadoop не доступны друг другу. Поэтому я не могу использовать sqoop рекомендованным способом. Есть ли способ импортировать данные couchbase в локальные файлы (вместо HDFS) с помощью sqoop. Если это возможно, я могу сделать это, а затем передать локальные файлы с помощью ftp, а затем снова использовать sqoop для передачи их в HDFS.
Если это плохое решение, то есть ли другой способ передать все данные cb в локальные файлы. Создание представлений в этом кластере cb - сложная задача, и я хотел бы избежать ее использования.
3 ответа
Вы можете использовать утилиту cbbackup, которая поставляется с установкой Couchbase, чтобы экспортировать все данные в файлы резервных копий. По умолчанию резервные копии на самом деле хранятся в формате SQLite, поэтому вы можете переместить их в кластер Hadoop, а затем использовать любой драйвер JDBC SQLite для импорта данных из каждого файла *.cbb по отдельности с помощью Sqoop. Я действительно написал блог об этом некоторое время назад, вы можете проверить это.
Для начала, вот один из многих драйверов JDBC SQLite.
Вы можете использовать адаптер couchbase kafka для потоковой передачи данных из couchbase в kafka, а из kafka вы можете хранить их в любой файловой системе. Адаптер CouchbaseKafka использует протокол TAP для передачи данных в kafka.
Альтернативное решение (возможно, не такое элегантное, но оно работает):
- Используйте утилиту резервного копирования Couchbase: cbbackup и сохраните локально все данные.
- Перенос файлов резервных копий на доступный сетевой хост HDFS.
- Установите Couchbase в сегменте сети, где доступна HDFS, и используйте процедуру восстановления Couchbase из процедуры резервного копирования для заполнения этого экземпляра.
- Используйте Scoop (рекомендованным способом) для того экземпляра Couchbase, который имеет доступ к HDFS.