Публікації

Показано дописи з міткою "Search"

Исправляем ошибку "SolrException: org.apache.hadoop.ipc.RemoteException Requested replication factor of 3 exceeds maximum of 2 for /solr/collection"

Эта ошибка возникает потому, что Solr берёт фактор репликации(replication factor) с конфигов hdfs только для индекса. Для Tlog нужно фактор репликации устанавливать в локальном конфигурационном файле /var/lib/solr/solr_configs/conf/solrconfig.xml или /var/lib/solr_configs/conf/solrconfig.xml: <updatelog> <int name="tlogDfsReplication">2</int> ... </updatelog>

Real-time сохранение изменяющихся данных в Apache SOLR с помощью Kafka + Lily HBase Batch Indexer

   Apache Solr очень хороший инструмент как для поиска так и для аналитики. Но изменение данных является дорогой операцией и желательно это не делать вообще или делать это как можно реже.    Для этого был разработан подход на базе key-value базы HBase которая хорошо работает с обновлением данных. После сохранение обновлений в HBase, данные с помощью Lily HBase Batch Indexer считываются изменения с update log-a в HBase и заливают изменения в индекс Solr. Для начала создаём таблицу в HBase: hbase shell hbase(main):021:0> create 'table_for_index', {NAME => 'data', REPLICATION_SCOPE => 1} hbase(main):021:0> put 'table_for_index', 'row1', 'data', 'value' hbase(main):022:0> put 'table_for_index', 'row2', 'data', 'value2' Далее создаём индекс в Solr в который будут сохранятся изменения из HBase: solrctl instancedir --generate $HOME/hbase-index //Вносим необходимые поля из HBase таблички v...

solrctl - создание колекции для SOLR

Создадим директорию со всеми необходимыми файлами настройки для будующей колекции документов (schema.xml, solrconf.xml) solrctl instancedir --generate /var/lib/solr/collection3 -schemaless Далее можно внести нужные нужные изменения в конфигурационные файлы. Например описать нужные поля в документе в schema.xml: <field name="dt" type="date" indexed="true" stored="true"/> <field name="hash" type="string" indexed="true" stored="true"/> <field name="funnel_id" type="string" indexed="false" stored="true"/> Или изменить фактор репликации для лога транзакций в solrconf.xml: <updateLog> <str name="dir">${solr.ulog.dir:}</str> <int name="tlogDfsReplication">2</int> </updateLog> Далее загружаем созданную директорию с настройками для колекции в SolrCloud: solrctl instancedir --create coll...

Real-time cохранение данных в SOLR с помощью Kafka + Flume

   Для заливки данных в колекцию SOLR можно использовать сочетание Kafka  + Flume MorphlineSolrSink. Это позволяет быстро настроить добавление новых данных в SOLR даже без необходимости писать код.     Предварительно сохранённая в формате json информация в Kafka topic читается, преобразовывается и сохраняется в SOLR с помощью MorphlineSolrSink. При этом все нюансы предподготовки данных перед сохранением в документ SOLR можно описать в конфигурационном файле для morphline.conf. Файл конфигураций для flume: tier1.sources = source1 tier1.channels = channel1 tier1.sinks = solrSink1 tier1.sources.source1.channels = channel1 tier1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource tier1.sources.source1.zookeeperConnect = 127.0.0.1:2181 Zookeeper client port tier1.sources.source1.topic = test_topic tier1.sources.source1.kafka.auto.offset.reset = smallest tier1.sources.source1.groupId = flume_source_test_topic tier1.sources.source1.batch...