{"id":234049,"date":"2014-08-20T20:17:02","date_gmt":"2014-08-20T16:17:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=234049"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=234049","title":{"rendered":"<span class=\"post_title\">\u041a\u0430\u043a \u043f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0431\u0438\u0437\u043d\u0435\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 Hadoop (SolrCloud)<\/span>"},"content":{"rendered":"<div class=\"content html_format\">\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0423 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u043b\u043e\u0433\u0438 \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab\u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c\u00bb \u2014 \u0443\u0436 \u0431\u043e\u043b\u044c\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0438: \u0440\u0430\u0441\u0442\u0443\u0442 \u043a\u0430\u043a \u043d\u0430 \u0434\u0440\u043e\u0436\u0436\u0430\u0445, \u0447\u0438\u0441\u0442\u0438 \u0438\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0430 \u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0435\u0449\u0435 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043c\u043d\u043e\u0433\u0438\u0445 \u043b\u0435\u0442, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u043b\u043e\u0433\u0438 \u2013 \u044d\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u0446\u0435\u043b\u044c, \u0438 \u043f\u043e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 Hadoop, \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u0442 Cloudera (CDH 5).<\/p>\n<p>  \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438, \u0447\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (\u0438\u0437 \u043b\u043e\u0433\u043e\u0432) \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c, \u043f\u0440\u0438\u0447\u0435\u043c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0444\u043e\u0440\u043c\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043b\u043e\u0433\u043e\u0432 \u0441\u0442\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Hadoop \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0432\u043e\u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u041a\u0430\u043a \u043e\u0434\u043d\u043e \u0438\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c SolrCloud, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 Hadoop \u043e\u0442 Cloudera. \u0412 Cloudera \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u0432\u0445\u043e\u0434\u044f\u0442 \u0442\u0443\u043b\u0437\u044b \u0434\u043b\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043f\u0430\u0447\u043a\u043e\u0439 (\u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e). \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0445\u043e\u0442\u044c \u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u043c, \u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u0438\u043c \u0438 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435, \u0447\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c, \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 Impala \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u0438, \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u043c, \u043a\u0442\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. <\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u0435\u0442\u0430\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h5>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439<\/h5>\n<p>  <\/p>\n<ol>\n<li> \u0412\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Oracle \u0432 \u0444\u0430\u0439\u043b\u044b \u043d\u0430 HDFS. \u0424\u043e\u0440\u043c\u0430\u0442 \u0444\u0430\u0439\u043b\u0430 \u2014 avro. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442: <b>sqoop <\/b>(<a href=\"http:\/\/sqoop.apache.org\/docs\/1.4.2\/SqoopUserGuide.htm\">http:\/\/sqoop.apache.org\/docs\/1.4.2\/SqoopUserGuide.htm<\/a>).<br \/>\n<blockquote><p>\u0424\u043e\u0440\u043c\u0430\u0442 avro \u0438\u043c\u0435\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043f\u043b\u044e\u0441\u043e\u0432: \u043e\u043d \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439, \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u0436\u0438\u043c\u0430\u044e\u0442\u0441\u044f, \u0441 \u043d\u0438\u043c \u0432\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0430\u0440\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c\u0438 \u043a\u0430\u0440\u0435\u0442\u043a\u0438 \u0438 \u0441 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f\u0445, \u043a\u0430\u043a \u0441 CSV, \u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u0441\u0445\u0435\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 Schema Evolution. \u0412\u043e\u043e\u0431\u0449\u0435, \u0432 Hadoop\u2019\u0435 avro \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0443\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438, \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0418 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u043b\u044e\u0441 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0438\u0436\u0435.<\/p><\/blockquote>\n<\/li>\n<li> \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u00ab\u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e\u00bb \u0432 SolrCloud. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442: <b>solrctl <\/b> (<a href=\"http:\/\/www.cloudera.com\/content\/cloudera-content\/cloudera-docs\/CDH5\/latest\/Search\/Cloudera-Search-User-Guide\/csug_solrctl_ref.html\">http:\/\/www.cloudera.com\/content\/cloudera-content\/cloudera-docs\/CDH5\/latest\/Search\/Cloudera-Search-User-Guide\/csug_solrctl_ref.html<\/a>)<br \/>\n<blockquote><p>\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u2014 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 SolrCloud. \u041e\u043d\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0448\u0430\u0440\u0434\u043e\u0432 (shard), \u0441\u0447\u0438\u0442\u0430\u0439 \u043f\u0430\u043f\u043e\u043a \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0440\u0434\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u2014 \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441.<\/p><\/blockquote>\n<\/li>\n<li> \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c MapReduce-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 (<a href=\"https:\/\/developer.yahoo.com\/hadoop\/tutorial\/module4.html#driver\">https:\/\/developer.yahoo.com\/hadoop\/tutorial\/module4.html#driver<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439: <br \/> \n<ul>\n<li> \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u0437 avro-\u0444\u0430\u0439\u043b\u0430<\/li>\n<li> \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442 \u0438\u0445 \u0447\u0435\u0440\u0435\u0437 ETL-\u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u0432\u0438\u0434\u0435 morphline-\u0441\u043a\u0440\u0438\u043f\u0442\u0430; \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u2014 \u0448\u0430\u0440\u0434 \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 (\u0438\u043d\u0434\u0435\u043a\u0441 \u0444\u0430\u0439\u043b\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Solr\u2019\u0430, \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e HDFS)<\/li>\n<li> \u0441\u043e\u043b\u044c\u0435\u0442 (merge) \u0432\u044b\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0448\u0430\u0440\u0434 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e SolrCloud \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0435\u0433\u043e \u0432 offline, \u043f\u043e-\u0436\u0438\u0432\u043e\u043c\u0443 (go-live), \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c \ud83d\ude42<\/li>\n<\/ul>\n<p>  \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442: \u043a\u043e\u043c\u0430\u043d\u0434\u0430 hadoop, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0430\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <b>org.apache.solr.hadoop.MapReduceIndexerTool<\/b> (<a href=\"http:\/\/www.cloudera.com\/content\/cloudera-content\/cloudera-docs\/CDH5\/latest\/Search\/Cloudera-Search-User-Guide\/csug_mapreduceindexertool.html\">http:\/\/www.cloudera.com\/content\/cloudera-content\/cloudera-docs\/CDH5\/latest\/Search\/Cloudera-Search-User-Guide\/csug_mapreduceindexertool.html<\/a>), \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u0441\u0438\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.   <\/li>\n<\/ol>\n<p>  \u0412\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e NameNode\u2019\u0430, \u0445\u043e\u0442\u044f \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e \u0448\u0430\u0433\u0430\u043c\u2026<\/p>\n<h4>\u0412\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Oracle \u0432 avro \u0444\u0430\u0439\u043b\u044b<\/h4>\n<p>  <\/p>\n<pre><code class=\"bash\">sqoop import --connect jdbc:oracle:thin:@oraclehost:1521\/SERVICENAME \\  --username ausername --password apassword --table ASCHEMA.LOG_TABLE \\ --as-avrodatafile --compression-codec snappy \\ -m 16 --split-by NUM_BEG  \\ --map-column-java NUM_BEG=Integer,DTM_BEG=String,KEY_TYPE=String,OLD_VALUE=String,NEW_VALUE=String,NUM_PARENT=Integer,\\ NUM_END=Integer,EVENT=String,TRACELEVEL=String,KEY_USER=String,COMPUTER_NAME=String,PRM=String,OPERATION=Integer,\\ KEY_ENTITY=String,MODULE_NAME=String \\ --target-dir \/user\/$USER\/solrindir\/tmlogavro <\/code><\/pre>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445:  <\/p>\n<ul>\n<li><b>connect <\/b>\u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0431\u0430\u0437\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 Oracle. <\/li>\n<li><b>as-avrodatafile <\/b>\u0438 <b>compression-codec <\/b>\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432 \u0444\u0430\u0439\u043b(\u044b) \u0444\u043e\u0440\u043c\u0430\u0442\u0430 avro \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0441\u0436\u0438\u043c\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 10 \u0440\u0430\u0437.<\/li>\n<li><b>-m<\/b> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e map-\u0437\u0430\u0434\u0430\u0447 (tasks) \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0447 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e. \u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0440\u0435\u0442 \u0441\u0432\u043e\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b. \u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, sqoop \u0431\u0435\u0440\u0435\u0442 select min(&lt;split-by&gt;), max(&lt;split-by&gt;).<\/li>\n<li><b>from <\/b>\u0434\u0435\u043b\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0447\u0438\u0441\u0435\u043b \u043d\u0430 16 \u0447\u0430\u0441\u0442\u0435\u0439 (\u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435), \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043f\u043e\u0434\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0447\u0438\u0441\u0435\u043b \u043a\u0430\u043a \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0432 SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0435\u0439 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e split-by \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0432 Pk \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/li>\n<li><b>map-column-java <\/b>\u2014 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u043f\u043e\u043d\u044f\u0442\u0438\u044f\u0445 Sqoop\u2019\u0430. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, Sqoop \u0443\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0435\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e Oracle\u2019\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u044b \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u043c\u0443 \u0432 \u044d\u0442\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435.<\/li>\n<li><b>target-dir <\/b>\u2014 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 HDFS, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b\u044b.<\/li>\n<\/ul>\n<h4>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e<\/h4>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 solrctl \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u043c SolrCloud.<br \/>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0443\u044e Collection Instance Directory. \u0412 \u043d\u0435\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c\/\u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435 \u0438 \u0437\u0430\u0442\u0435\u043c \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0441\u0435\u0440\u0432\u0438\u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 zookeeper, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e SolrCloud \u0447\u0438\u0442\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:  <\/p>\n<pre><code class=\"bash\">solrctl instancedir --generate $HOME\/solr_configs_for_tm_log<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u044c \u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438.<\/p>\n<p>  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0444\u0430\u0439\u043b\u044b \u0443\u0436\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0434\u0435\u043c\u043e-\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043a \u043f\u043e\u0438\u0441\u043a\u0443, \u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043b\u0438\u0448\u043d\u0435\u0435. <br \/>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b conf\/schema.xml \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0442\u044d\u0433  \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c, \u0442\u044d\u0433  \u0438 \u0432\u0441\u0435 . \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:   <\/p>\n<pre><code class=\"xml\">&lt;fields&gt;         &lt;field name=&quot;num_beg&quot; type=&quot;int&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;dtm_beg&quot; type=&quot;date&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;key_type&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;old_value&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;new_value&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;num_parent&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;num_end&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;event&quot; type=&quot;text_general&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;tracelevel&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;key_user&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;computer_name&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;prm&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;operation&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;key_entity&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;         &lt;field name=&quot;module_name&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; \/&gt;             &lt;field name=&quot;_version_&quot; type=&quot;long&quot; indexed=&quot;true&quot; stored=&quot;true&quot; required=&quot;true&quot; \/&gt;               &lt;!-- catchall field, containing all other searchable text fields (implemented             via copyField further on in this schema  --&gt;         &lt;field name=&quot;text&quot; type=&quot;text_general&quot; indexed=&quot;true&quot; stored=&quot;false&quot; multiValued=&quot;true&quot;\/&gt;       &lt;\/fields&gt;     &lt;!-- Field to use to determine and enforce document uniqueness.       Unless this field is marked with required=&quot;false&quot;, it will be a required field    --&gt;     &lt;uniqueKey&gt;num_beg&lt;\/uniqueKey&gt;       &lt;copyField source=&quot;event&quot; dest=&quot;text&quot;\/&gt; <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043f\u043e\u043b\u0435 _version_ \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 Solr\u2019\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a, \u0434\u043b\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 Partial Update. \u041f\u0440\u043e\u0441\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 \u0432\u0430\u0448\u0435\u043c schema.xml \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e: Solr \u0441\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c. <br \/>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0435\u0442 \u0438 \u043f\u043e\u043b\u044f text. \u041c\u044b \u0435\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0435\u0439 copyField \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 HUE (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a Hadoop\u2019\u0443 \u043e\u0442 Clouder\u0430). \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043a HUE (\u0447\u0435\u0440\u0435\u0437 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u0447\u043d\u044b\u0435 UI-\u0444\u043e\u0440\u043c\u044b), \u0442\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u044d\u0442\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043f\u043e\u043b\u044e text. <\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0434\u043d\u043e \u043f\u0440\u0438\u0441\u0435\u0434\u0430\u043d\u0438\u0435. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445-\u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043e\u0434\u0438\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 \u2014 Elevator. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u043f\u0435\u0440\u0435\u0434 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c, \u0432\u0440\u043e\u0434\u0435 \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 Yandex. \u0422\u0430\u043a \u0432\u043e\u0442 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u043d \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0445\u0435\u043c\u0435 \u2014 \u0442\u0438\u043f\u0430 string (\u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0435\u043a\u043b\u0430\u043c\u043d\u044b\u0445 \u0444\u0440\u0430\u0437 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 conf\\elevate.xml). \u0423 \u043d\u0430\u0441 \u0436\u0435 \u0441\u0442\u043e\u0438\u0442 int. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u0441\u044c \u043d\u0430\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0432\u0430\u043b\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u043e \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0442\u0438\u043f\u043e\u0432. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0432\u044b\u0440\u0435\u0437\u0430\u0435\u043c \u0435\u0433\u043e, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e: \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b <code>conf\/solrconfig.xml<\/code> \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c (\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c) \u0442\u0435\u0433\u0438 \u0438 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 <code>&lt;searchComponent name=&quot;elevator&quot; ...&quot;&gt;, &lt;requestHandler name=&quot;\/elevate&quot; ...&gt;<\/code>. \u0410 \u0437\u0430\u043e\u0434\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b <code>conf\\elevate.xml<\/code> \u0438\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0447\u0442\u043e\u0431 \u043d\u0435 \u0431\u043e\u043b\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0434 \u043d\u043e\u0433\u0430\u043c\u0438.<\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c (\u043a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c) \u0432\u0441\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 SolrCloud, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435, \u0432 naming service ZooKeeper, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0441\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 SolrCloud\u2019\u0430 \u0447\u0438\u0442\u0430\u044e\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f):  <\/p>\n<pre><code class=\"bash\">solrctl instancedir --create tm_log_avro $HOME\/solr_configs_for_tm_log<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0438 \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041c\u044b \u0435\u0451 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432\u044b\u0448\u0435.<\/p>\n<p>  \u041d\u0443 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433 \u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u2014 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0448\u0430\u0440\u0434\u043e\u0432:  <\/p>\n<pre><code class=\"bash\">solrctl collection --create tm_log_avro -s 1<\/code><\/pre>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 ZooKeeper \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u2014 \u0438\u043c\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0440\u0434\u043e\u0432 (\u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b 1).<\/p>\n<h4>\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/h4>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c ETL-\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438. Cloudera \u0441 \u0443\u0432\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 Kite SDK, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a \u0435\u0451 \u0447\u0430\u0441\u0442\u0438 Morphline. \u041f\u043e \u0441\u0443\u0442\u0438, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 Morphline \u2014 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0435 (\u0432 \u0432\u0438\u0434\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434), \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432-\u00ab\u0437\u0430\u043f\u0438\u0441\u0435\u0439\u00bb), \u043a\u0430\u043a \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c, \u0438 \u0447\u0442\u043e \u043e\u0442\u0434\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f avro-\u0444\u0430\u0439\u043b\u0430. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u0432\u043e\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f, \u0432 \u044d\u0442\u043e\u043c \u0438 \u0444\u0438\u0448\u043a\u0430. \u0412\u043e\u0442 \u0438 Clouder\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Solr-\u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043f\u043e \u0432\u0441\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044f\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435.<\/p>\n<p>  \u0421\u0443\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430:   <\/p>\n<ul>\n<li> \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u044a\u0435\u043a\u0442-\u00ab\u0437\u0430\u043f\u0438\u0441\u044c\u00bb \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u0444\u0430\u0439\u043b\u0435<\/li>\n<li> \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0447\u0438\u0442\u0430\u044e\u0449\u0430\u044f \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0438 \u043e\u0442\u0434\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432-\u00ab\u0437\u0430\u043f\u0438\u0441\u0435\u0439\u00bb<\/li>\n<li> \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442\u0441\u044f, \u043a\u0430\u043a \u0432\u0430\u043c \u0443\u0434\u043e\u0431\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0441 \u0434\u0430\u0442\u043e\u0439-\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u0437 UTC \u0432 \u0440\u0435\u0433\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f)<\/li>\n<li> \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 Solr-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0438 \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0438\u0437 MapReduce Mapper-\u0430<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b <code>$HOME\/solr_configs_for_tm_log_morphlines\/morphlines.conf<\/code> \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c:  <\/p>\n<pre><code># Specify server locations in a SOLR_LOCATOR variable; used later in # variable substitutions: SOLR_LOCATOR : {   # Name of solr collection   collection :  tm_log_avro     # ZooKeeper ensemble   zkHost : &quot;hadoop-n1.custis.ru:2181,hadoop-n2.custis.ru:2181,hadoop-n3.custis.ru:2181\/solr&quot;  }   # Specify an array of one or more morphlines, each of which defines an ETL # transformation chain. A morphline consists of one or more potentially # nested commands. A morphline is a way to consume records such as Flume events, # HDFS files or blocks, turn them into a stream of records, and pipe the stream # of records through a set of easily configurable transformations on its way to # Solr. morphlines : [   {     # Name used to identify a morphline. For example, used if there are multiple     # morphlines in a morphline config file.     id : morphline1       # Import all morphline commands in these java packages and their subpackages.     # Other commands that may be present on the classpath are not visible to this     # morphline.     importCommands : [&quot;org.kitesdk.**&quot;, &quot;org.apache.solr.**&quot;]       commands : [                          {         # Parse Avro container file and emit a record for each Avro object         readAvroContainer {           # Optionally, require the input to match one of these MIME types:           # supportedMimeTypes : [avro\/binary]             # Optionally, use a custom Avro schema in JSON format inline:           # readerSchemaString : &quot;&quot;&quot;&lt;json can go here&gt;&quot;&quot;&quot;             # Optionally, use a custom Avro schema file in JSON format:           # readerSchemaFile : \/path\/to\/syslog.avsc         }       }         {         # Consume the output record of the previous command and pipe another         # record downstream.         #         # extractAvroPaths is a command that uses zero or more Avro path         # excodeblockssions to extract values from an Avro object. Each excodeblockssion         # consists of a record output field name, which appears to the left of the         # colon ':' and zero or more path steps, which appear to the right.         # Each path step is separated by a '\/' slash. Avro arrays are         # traversed with the '[]' notation.         #         # The result of a path excodeblockssion is a list of objects, each of which         # is added to the given record output field.         #         # The path language supports all Avro concepts, including nested         # structures, records, arrays, maps, unions, and others, as well as a flatten         # option that collects the primitives in a subtree into a flat list. In the         # paths specification, entries on the left of the colon are the target Solr         # field and entries on the right specify the Avro source paths. Paths are read         # from the source that is named to the right of the colon and written to the         # field that is named on the left.         extractAvroPaths {           flatten : true           paths : {             computer_name :\/COMPUTER_NAME             dtm_beg :\/DTM_BEG             event :\/EVENT             key_entity :\/KEY_ENTITY             key_type :\/KEY_TYPE             key_user :\/KEY_USER             module_name :\/MODULE_NAME             new_value :\/NEW_VALUE             num_beg :\/NUM_BEG             num_end :\/NUM_END             num_parent :\/NUM_PARENT             old_value :\/OLD_VALUE             operation :\/OPERATION             prm :\/PRM             tracelevel :\/TRACELEVEL           }         }       }         # Consume the output record of the previous command and pipe another       # record downstream.       #       # convert timestamp field to native Solr timestamp format       # such as 2012-09-06 07:14:34 to 2012-09-06T07:14:34.000Z in UTC       {         convertTimestamp {           field : dtm_beg           inputFormats : [&quot;yyyy-MM-dd HH:mm:ss&quot;, &quot;yyyy-MM-dd&quot;]           inputTimezone : Europe\/Moscow           outputFormat : &quot;yyyy-MM-dd'T'HH:mm:ss.SSS'Z'&quot;                                           outputTimezone : UTC         }       }         # Consume the output record of the previous command and pipe another       # record downstream.       #       # This command deletes record fields that are unknown to Solr       # schema.xml.       #       # Recall that Solr throws an exception on any attempt to load a document       # that contains a field that is not specified in schema.xml.       {         sanitizeUnknownSolrFields {           # Location from which to fetch Solr schema           solrLocator : ${SOLR_LOCATOR}         }       }          # log the record at DEBUG level to SLF4J       { logDebug { format : &quot;output record: {}&quot;, args : [&quot;@{}&quot;] } }            # load the record into a Solr server or MapReduce Reducer       {         loadSolr {           solrLocator : ${SOLR_LOCATOR}         }       }     ]   } ] <\/code><\/pre>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:   <\/p>\n<ul>\n<li> <b>readAvroContainer <\/b>\u2014 \u0432\u043e\u0442 \u0442\u0443\u0442-\u0442\u043e \u043d\u0430\u043c \u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430\u0442 avro: \u0432 \u0441\u0430\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u044f \u043c\u0435\u0442\u0430\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432-\u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438 \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u0434\u0430\u043b\u044c\u0448\u0435. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0432\u0437\u044f\u043b\u0438, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, CSV, \u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0435\u0449\u0435 \u0440\u0430\u0437 \u0437\u0434\u0435\u0441\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u043c\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044f, \u0435\u0433\u043e \u0442\u0438\u043f, \u0434\u043b\u0438\u043d\u0443, \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0432 \u0444\u0430\u0439\u043b\u0435\u2026 \u0421\u0435\u0439\u0447\u0430\u0441 \u0436\u0435 \u044d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u0437 Oracle \u0447\u0435\u0440\u0435\u0437 Sqoop.<\/li>\n<li> <b>extractAvroPaths <\/b>\u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u044f \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0431\u0440\u0430\u0442\u044c \u0438 \u0432 \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043b\u0430\u0441\u0442\u044c. \u041c\u044b \u0437\u0434\u0435\u0441\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u043e\u043b\u0435\u0439, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u00ab\u0437\u043d\u0430\u0435\u0442\u00bb \u043d\u0430\u0448\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0432 SolrCloud. \u0418\u043c\u0435\u043d\u043d\u043e \u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430.<\/li>\n<li> <b>convertTimestamp <\/b>\u2014 \u0432\u044b\u0437\u044b\u0432\u0430\u044f\u0441\u044c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432 \u0434\u0430\u0442\u0443-\u0432\u0440\u0435\u043c\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 UTC.<\/li>\n<li> <b>loadSolr <\/b>\u2014 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442-\u00ab\u0437\u0430\u043f\u0438\u0441\u044c\u00bb \u0432 Solr-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442. \u041c\u0430\u0441\u0441\u0438\u0432 \u044d\u0442\u0438\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0432 MapReduce Reducer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0439\u043c\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.<\/li>\n<\/ul>\n<h4>\u0417\u0430\u043f\u0443\u0441\u043a<\/h4>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0434\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:  <\/p>\n<ul>\n<li> <b>org.apache.solr.hadoop.HdfsFindTool<\/b> \u2014 \u044d\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0430\u0441\u0442\u0438 linux-\u043a\u043e\u043c\u0430\u043d\u0434\u044b find (\u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0432 hdfs \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0445\u043e\u0442\u044f \u0431\u0430\u0433\u0438 \u0441\u0442\u043e\u044f\u0442 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e). \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0441\u043f\u0438\u0441\u043e\u043a) \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0442\u043e\u0440\u0443\u044e<\/li>\n<li> MapReduce \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <b>org.apache.solr.hadoop.MapReduceIndexerTool<\/b> \u0441 \u043a\u0443\u0447\u043a\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"bash\"> sudo -u hdfs hadoop jar \/usr\/lib\/solr\/contrib\/mr\/search-mr-*-job.jar org.apache.solr.hadoop.HdfsFindTool -find \\ hdfs:\/\/$NNHOST:8020\/user\/$USER\/solrindir\/tmlogavro -type f \\ -name 'part-m-000*.avro' |\\ sudo -u hdfs hadoop --config \/etc\/hadoop\/conf.cloudera.yarn \\ jar \/usr\/lib\/solr\/contrib\/mr\/search-mr-*-job.jar org.apache.solr.hadoop.MapReduceIndexerTool \\ --libjars \/usr\/lib\/solr\/contrib\/mr\/search-mr-1.0.0-cdh5.0.0.jar \\ --log4j $HOME\/solr_configs_for_tm_log_morphlines\/log4j.properties \\ --morphline-file $USER\/solr_configs_for_tm_log_morphlines\/morphlines.conf \\ --output-dir hdfs:\/\/$NNHOST:8020\/user\/$USER\/solroutdir \\ --verbose --go-live --zk-host $ZKHOST \\ --collection tm_log_avro \\ --input-list -; <\/code><\/pre>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:  <\/p>\n<ul>\n<li> <b>jar <\/b>\u2014 \u044d\u0442\u043e \u043f\u0443\u0442\u044c \u0434\u043e jar\u2019\u043d\u0438\u043a\u0430 \u0441 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c; \u043f\u0443\u0442\u044c \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043e\u0442 Cloudera<\/li>\n<li> <b>org.apache.solr.hadoop.MapReduceIndexerTool <\/b>\u2014 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0432 jar\u2019\u043d\u0438\u043a\u0435<\/li>\n<li> <b>libjars <\/b>\u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/li>\n<li> <b>log4j <\/b>\u2014 \u043f\u0443\u0442\u044c \u0434\u043e log4j \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432 \/usr\/lib\/hadoop-yarn\/etc\/hadoop<\/li>\n<li> <b>morphline-file<\/b> \u2014 \u043f\u0443\u0442\u044c \u0434\u043e \u0441\u043a\u0440\u0438\u043f\u0442-\u0444\u0430\u0439\u043b\u0430 morphline, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435<\/li>\n<li> <b>output-dir <\/b>\u2014 \u0438\u043c\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 hdfs, \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0434\u043e \u0441\u043b\u0438\u0432\u0430 (merge) \u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 SolrCloud<\/li>\n<li> <b>input-list <\/b>\u2014 \u0441\u043f\u0438\u0441\u043e\u043a \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438. \u0422\u0438\u0440\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u0437\u044f\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 standard input<\/li>\n<li> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <b>$ZKHOST<\/b> \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0443 \u043d\u0430\u0441 \u0432 hadoop-n1.custis.ru:2181,hadoop-n2.custis.ru:2181,hadoop-n3.custis.ru:2181\/solr<\/li>\n<\/ul>\n<p>  \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 MapReduce-\u0437\u0430\u0434\u0430\u0447\u0438:  <\/p>\n<ul>\n<li>\u0417\u0430\u0434\u0430\u0447\u0430 Map \u0431\u0435\u0440\u0435\u0442 \u0441\u0432\u043e\u0439 \u0444\u0430\u0439\u043b, \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 Morphline ETL, \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0432 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043b\u043e\u0433\u043e\u0432 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u044b-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b Solr, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0438\u0445 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0411\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0437\u0430\u0434\u0430\u0447, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b\u043e\u0432<\/li>\n<li>\u0417\u0430\u0434\u0430\u0447\u0430 Reduce \u0431\u0435\u0440\u0435\u0442 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 (\u0432 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e &lt;output-dir&gt;). \u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435<\/li>\n<li>\u0422\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 Reduce-Only \u0431\u0435\u0440\u0435\u0442 \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438\u0437 \u043f\u0430\u043f\u043e\u043a \u0438 \u0437\u0430\u043b\u0438\u0432\u0430\u0435\u0442 \u0438\u0445 (merge) \u0432 SolrCloud. \u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u0442\u044c \u0448\u0430\u0440\u0434\u043e\u0432 \u0443 \u0432\u0430\u0441 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 1<\/li>\n<\/ul>\n<h4>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0442\u043e\u0433\u043e\u0432<\/h4>\n<p>  MapReduceIndexerTool, \u0434\u0430 \u0438 \u0441\u0430\u043c Solr, \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u043a\u0430\u043f\u0440\u0438\u0437\u0435\u043d \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 Reduce, \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u0444\u0430\u0439\u043b \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430, \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0430, \u0447\u0442\u043e\u0431\u044b \u0435\u0439 \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (Java Heap Size) \u0432 \u043e\u0431\u044a\u0435\u043c\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 1\/2 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043d\u0435\u0441\u0436\u0430\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0438\u043d\u0430\u0447\u0435 \u2014 OutOfMemoryError. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 sqoop\u2019\u043e\u043c \u0432 \u0444\u0430\u0439\u043b\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0447\u0435\u0440\u0435\u0437, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 m (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e mapper\u2019\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u044b).<br \/>  \u0422\u0430\u043a\u0436\u0435, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 Map \u0438 Reduce, \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 Solr Server\u2019\u0435 \u0438 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0443\u0436\u0435 \u043f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438. \u041f\u043e \u043d\u0430\u0448\u0438\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f merge\u2019\u0430 30 \u0413\u0431 \u043d\u0430 \u043e\u0434\u0438\u043d \u0448\u0430\u0440\u0434 \u0445\u0432\u0430\u0442\u0430\u043b\u043e 6 \u0413\u0431 Java Heap Size, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u043e\u0434\u0438\u043d Solr instance.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c merge\u2019\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0434\u0443\u0431\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0415\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u2014 \u043e\u043d\u0438 \u0437\u0430\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u0444\u0438\u0447\u0435\u0439 sqoop\u2019\u0430 \u043f\u043e \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0447\u0435\u0440\u0435\u0437 sqoop job). \u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043f\u0430\u043f\u043a\u0438, \u0430 \u0442\u043e \u0432\u0435\u0434\u044c \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f.      \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/234049\/\"> http:\/\/habrahabr.ru\/post\/234049\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0423 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u043b\u043e\u0433\u0438 \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab\u043a\u0443\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c\u00bb \u2014 \u0443\u0436 \u0431\u043e\u043b\u044c\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043d\u0438: \u0440\u0430\u0441\u0442\u0443\u0442 \u043a\u0430\u043a \u043d\u0430 \u0434\u0440\u043e\u0436\u0436\u0430\u0445, \u0447\u0438\u0441\u0442\u0438 \u0438\u0445 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438, \u0430 \u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0435\u0449\u0435 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043c\u043d\u043e\u0433\u0438\u0445 \u043b\u0435\u0442, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u043b\u043e\u0433\u0438 \u2013 \u044d\u0442\u043e \u043d\u0435 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u0446\u0435\u043b\u044c, \u0438 \u043f\u043e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 Hadoop, \u0432\u0435\u0440\u0441\u0438\u044e \u043e\u0442 Cloudera (CDH 5).<\/p>\n<p>  \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438, \u0447\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (\u0438\u0437 \u043b\u043e\u0433\u043e\u0432) \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c, \u043f\u0440\u0438\u0447\u0435\u043c \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0444\u043e\u0440\u043c\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043b\u043e\u0433\u043e\u0432 \u0441\u0442\u0430\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Hadoop \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0432\u043e\u0438\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u041a\u0430\u043a \u043e\u0434\u043d\u043e \u0438\u0437 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c SolrCloud, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 Hadoop \u043e\u0442 Cloudera. \u0412 Cloudera \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u0432\u0445\u043e\u0434\u044f\u0442 \u0442\u0443\u043b\u0437\u044b \u0434\u043b\u044f \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0438\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u043f\u0430\u0447\u043a\u043e\u0439 (\u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e). \u041e\u0434\u043d\u0430\u043a\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0445\u043e\u0442\u044c \u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u043c, \u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u0438\u043c \u0438 \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435, \u0447\u0435\u043c, \u0441\u043a\u0430\u0436\u0435\u043c, \u0435\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 Impala \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u0438, \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u043c, \u043a\u0442\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. <\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u0435\u0442\u0430\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-234049","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/234049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=234049"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/234049\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=234049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=234049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=234049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}