{"id":281515,"date":"2016-11-24T23:50:04","date_gmt":"2016-11-24T20:50:04","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=281515"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=281515","title":{"rendered":"\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 Spark \u0437\u0430 3 \u0434\u043d\u044f"},"content":{"rendered":"<p><i>\u041f\u0443\u0441\u0442\u044c \u0416\u0438\u0440\u0430\u0444 \u0431\u044b\u043b \u043d\u0435 \u043f\u0440\u0430\u0432,<br \/>  \u041d\u043e \u0432\u0438\u043d\u043e\u0432\u0435\u043d \u043d\u0435 \u0416\u0438\u0440\u0430\u0444,<br \/>  \u0410 \u0442\u043e\u0442, \u043a\u0442\u043e \u043a\u0440\u0438\u043a\u043d\u0443\u043b \u0438\u0437 \u0432\u0435\u0442\u0432\u0435\u0439:<br \/>  \u00ab\u0416\u0438\u0440\u0430\u0444 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u2014 \u0435\u043c\u0443 \u0432\u0438\u0434\u043d\u0435\u0439!\u00bb (\u0441) <\/i><\/p>\n<p>  \u041f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 Spark \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Big Data. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b habrahabr, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0434\u043e\u043b\u0436\u043e\u043a, \u043f\u043e\u0434\u0435\u043b\u0438\u0432\u0448\u0438\u0441\u044c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c. <\/p>\n<p>  \u0410 \u0438\u043c\u0435\u043d\u043d\u043e: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043d\u0443\u043b\u044f, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0434\u0430 \u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u043d\u043a\u0440\u043e\u0442\u0441\u0442\u0432\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0431\u0430\u043d\u043a\u0430 \u043f\u043e \u043d\u0430\u0431\u043e\u0440\u0443 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430, \u0441\u0442\u0430\u0432\u043a\u0430 \u0438 \u0442.\u0434.<\/p>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u043e\u0434\u0435 \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e \u0437\u043b\u0430\u0447\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0438\u0445 \u0432\u0441\u0435 \u0449\u0443\u043f\u0430\u044e\u0442. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 <a href=\"http:\/\/ihorbobak.com\/index.php\/2015\/05\/06\/installing-hadoop-using-ambari-server\">ambari<\/a>, \u043d\u043e \u043d\u0430 \u043c\u043e\u0435\u0439 Window7 \u0432\u0430\u043b\u0438\u043b\u0438\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043c\u043e\u0441\u0442\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u043e\u0442 Cloudera (<a href=\"http:\/\/www.cloudera.com\/downloads\/quickstart_vms\/5-8.html\">CDH<\/a>). \u041f\u0440\u043e\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c VirtualBox, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (\u043f\u0430\u043c\u044f\u0442\u044c, \u043c\u0435\u0441\u0442\u043e) \u0438 \u0447\u0435\u0440\u0435\u0437 5 \u043c\u0438\u043d\u0443\u0442 \u0434\u043e\u0441\u0442\u043e\u043f\u043e\u0447\u0442\u0435\u043d\u043d\u044b\u0439 <s>\u0434\u0436\u0438\u043d<\/s> Hadoop \u0436\u0430\u0436\u0434\u0435\u0442 \u0432\u0430\u0448\u0438\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0439.<\/p>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e Spark. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 MapReduce \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0431\u0440\u043e\u0441\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a, \u0447\u0442\u043e \u0434\u0430\u0435\u0442 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437. \u041d\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0435\u043b\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u0434 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0415\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u0438\u0431\u043e \u0440\u0443\u043a\u0430 \u043e\u0447\u0435\u043d\u044c \u0443\u0441\u0442\u0430\u0435\u0442 \u0441\u043a\u0440\u043e\u043b\u0438\u0442\u044c \u044d\u0442\u0438 2000 \u0441\u0442\u0440\u043e\u043a) \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f7e\/f1c\/7cf\/f7ef1c7cf2b64f928f3db61c85091e44.png\"\/><\/p>\n<p>  \u0415\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u0435\u0444\u043e\u043b\u0442 \u043a\u0430\u043a-\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 (\u043a\u0440\u043e\u043c\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u043a \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u043c \u0418\u0432\u0430\u043d\u043e\u0432\u044b\u043c1\u2026N \u043f\u0440\u0435\u0442\u0435\u043d\u0437\u0438\u0439 \u043d\u0435\u0442) \u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c, \u0441\u0442\u043e\u0438\u0442 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 Java, \u0441\u0430\u043c \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u044d\u0442\u043e \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a Eclipse, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Maven \u0438 \u0442.\u0434. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0436\u0434\u0430\u0442\u044c \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u043d\u044b\u0445 \u0447\u0443\u0434\u0435\u0441, \u043d\u0438\u0436\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043b\u043e\u0431 \u0442\u0435\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b. <br \/>  \u041f\u043e\u0435\u0445\u0430\u043b\u0438:<\/p>\n<p>  <a name=\"habracut\"><\/a>1. \u0421\u043e\u0437\u0434\u0430\u0435\u043c Spark \u0441\u0435\u0441\u0441\u0438\u044e. \u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2013 \u044d\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 2.0.0, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 CDH \u0438\u0434\u0435\u0442 1.6. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043f\u0433\u0440\u0435\u0439\u0434, \u0438\u043d\u0430\u0447\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435.<\/p>\n<pre><code class=\"java\">SparkSession ss = SparkSession \t.builder() \t.appName(&quot;Bankrupticy analyser&quot;) \t.getOrCreate();<\/code><\/pre>\n<p>  2. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f JavaRDD. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a List \u0432 C#, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u044f \u0442\u0430\u043a \u044d\u0442\u043e \u0441\u0435\u0431\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u043c\u0435\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0447\u0435\u0433\u043e, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0439\u0434\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 csv \u0444\u0430\u0439\u043b.<\/p>\n<pre><code class=\"java\">JavaRDD&lt;Client&gt; peopleRDD = ss.read() \t.textFile(filename) \t.javaRDD() \t.map(new Function&lt;String, Client&gt;()  \t{ \t\tpublic Client call(String line) throws Exception \t\t{ \t\t \tString[] parts = line.split(&quot;,&quot;);\t\/\/ \u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \t\t\tClient client = new Client();\t \t\t\tclient.setName(parts[0]);\t\/\/ \u041f\u0430\u0440\u0441\u0438\u043c \u043f\u043e\u043b\u044f (\u0424\u0418\u041e \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0435) \t\t\tclient.setYearOfBirth(Double.parseDouble(parts[1]));   \t\t\tclient.setAmount(Double.parseDouble(parts[2])); \t\t\tclient.setTerm(Double.parseDouble(parts[3])); \t\t\tclient.setRate(Double.parseDouble(parts[4])); \t\t\tclient.setPaid(Double.parseDouble(parts[5])); \t\t\tclient.setStatus(Double.parseDouble(parts[6]));\t\/\/ \u0422\u0443\u0442 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0431\u0430\u043d\u043a\u0440\u043e\u0442\u0441\u0442\u0432\u0430 (1 - \u0431\u0430\u043d\u043a\u0440\u043e\u0442, 0 \u2013 \u043f\u043e\u043a\u0430 \u0435\u0449\u0435 \u043f\u043b\u0430\u0442\u0438\u0442) \t\t\t return client; \t\t} \t});<\/code><\/pre>\n<p>  \u0413\u0434\u0435 Client \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 (\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u0441\u0442\u0430). <\/p>\n<p>  3. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0411\u0435\u0437 \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u0447\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u0442. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c StandardScalerModel: fit -&gt; transform \u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u0438 \u0432\u0435\u0440\u0441\u0438\u0439. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u043e\u043a\u0430 \u043e\u0431\u043e\u0448\u0435\u043b\u0441\u044f \u043e\u0431\u0445\u043e\u0434\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u043b\u0435\u043a\u0442 \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u044f\u043c\u043e \u0432 \u043d\u0435\u043c. \u0421\u0443\u0434\u044f \u043f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 spark \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043c\u0435\u0442\u044c \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b:<\/p>\n<pre><code class=\"java\"> Dataset&lt;Row&gt; clientDF = ss.createDataFrame(peopleRDD, Client.class); clientDF.createOrReplaceTempView(&quot;client&quot;);   Dataset&lt;Row&gt; scaledData = ss.sql( \t&quot;SELECT name, (minYearOfBirth - yearOfBirth) \/ (minYearOfBirth - maxYearOfBirth),&quot; \t+ &quot;(minAmount - amount) \/ (minAmount - maxAmount),&quot; \t+ &quot;(minTerm - term) \/ (minTerm - maxTerm),&quot; \t+ &quot;(minRate - rate) \/ (minRate - maxRate),&quot; \t+ &quot;(minPaid - paid) \/ (minPaid - maxPaid),&quot; \t+ &quot;(minStatus - status) \/ (minStatus - maxStatus) &quot; \t+ &quot;FROM client CROSS JOIN &quot; \t+ &quot;(SELECT min(yearOfBirth) AS minYearOfBirth, max(yearOfBirth) AS maxYearOfBirth,&quot; \t+ &quot;min(amount) AS minAmount, max(amount) AS maxAmount,&quot; \t+ &quot;min(term) AS minTerm , max(term) AS maxTerm,&quot; \t+ &quot;min(rate) AS minRate, max(rate) AS maxRate,&quot; \t+ &quot;min(paid) AS minPaid, max(paid) AS maxPaid,&quot; \t+ &quot;min(status) AS minStatus, max(status) AS maxStatus &quot; \t+ &quot;FROM client)&quot;).cache();<\/code><\/pre>\n<p>  4. \u041c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JavaRDD \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u0438\u0445\u043d\u0435\u043c \u0424\u0418\u041e \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u042d\u0442\u043e \u043d\u043e\u0440\u043c \u0434\u043b\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430, \u0432 \u0436\u0438\u0437\u043d\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0442\u0430\u043a \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u043b\u0430\u0442\u044c, \u0445\u043e\u0442\u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0446\u0435\u043b\u0435\u0439.<\/p>\n<pre><code class=\"java\">JavaRDD&lt;Row&gt; rowData =  scaledData.javaRDD(); \/\/ Dataset to JavaRDD    \t    JavaRDD&lt;Tuple2&lt;String,LabeledPoint&gt;&gt; parsedData = rowData.map( \tnew Function&lt;Row, Tuple2&lt;String,LabeledPoint&gt;&gt;()  \t{ \t\tpublic Tuple2&lt;String,LabeledPoint&gt; call(Row row)  \t\t{ \t\t\tint last = row.length(); \t\t\t\t\t \t\t\tString cname = row.getString(0);\t\/\/ \u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 - \u0424\u0418\u041e \t\t\tdouble label = row.getDouble(last - 1);\t\/\/ \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u2013 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0434\u0435\u0444\u043e\u043b\u0442\u0430 \t\t\tdouble[] v = new double[last]; \t\t\t \t\t\tfor (int i = 1; i &lt; last - 1; i++)\t\/\/ \u041f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \t\t\t\tv[i] = row.getDouble(i); \t          \t\t\tv[last - 1] = 1; \/\/ +intercept \t\t\treturn new Tuple2&lt;String, LabeledPoint&gt; \t\t\t\t(cname, new LabeledPoint(label, Vectors.dense(v))); \t\t} \t});<\/code><\/pre>\n<p>  5. \u0412\u044b\u0434\u0435\u043b\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 LabeledPoint \u0434\u043b\u044f \u043c\u043e\u0434\u0435\u043b\u0438:<\/p>\n<pre><code class=\"java\">JavaRDD&lt;LabeledPoint&gt; parsedDataToTrain = parsedData.map( \tnew Function&lt;Tuple2&lt;String,LabeledPoint&gt;, LabeledPoint&gt;()  \t{ \t\tpublic LabeledPoint call(Tuple2&lt;String,LabeledPoint&gt; namedTuple)  \t\t{ \t\t\treturn namedTuple._2();  \/\/ 2 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 &lt;String,LabeledPoint&gt; \t\t} \t});\t parsedData.cache();<\/code><\/pre>\n<p>  6. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c:<\/p>\n<pre><code class=\"java\">int numIterations = 200;\t double stepSize = 2;\t\t  final LinearRegressionModel model  \t= LinearRegressionWithSGD.train(JavaRDD.toRDD(parsedDataToTrain), numIterations, stepSize);\t<\/code><\/pre>\n<p>  7. \u0418 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 + \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<pre><code class=\"java\">final NumberFormat nf = NumberFormat.getInstance(); \/\/ \u0414\u043b\u044f \u043a\u0440\u0430\u0441\u043e\u0442\u044b \u0432\u044b\u0432\u043e\u0434\u0430 \u0447\u0438\u0441\u0435\u043b nf.setMaximumFractionDigits(2);         JavaRDD&lt;Tuple2&lt;Double, Double&gt;&gt; valuesAndPreds = parsedData.map( \tnew Function&lt;Tuple2&lt;String,LabeledPoint&gt;, Tuple2&lt;Double, Double&gt;&gt;()  \t{ \t\tpublic Tuple2&lt;Double, Double&gt; call(Tuple2&lt;String,LabeledPoint&gt; namedTuple)  \t\t{ \t\t\tdouble prediction = model.predict(namedTuple._2().features()); \/\/ \u0420\u0430\u0441\u0447\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430          \t\tSystem.out.println(namedTuple._1() + &quot; got the score &quot; + nf.format(prediction)  \t       \t\t\t+ &quot;. The real status is &quot; + nf.format(namedTuple._2().label())); \t                  \t\treturn new Tuple2&lt;Double, Double&gt;(prediction, namedTuple._2().label()); \t       } \t }); <\/code><\/pre>\n<p>  8. \u0418 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 (\u0438\u0437 \u043f. 7):<\/p>\n<pre><code class=\"java\">double MSE = new JavaDoubleRDD(valuesAndPreds.map( \tnew Function&lt;Tuple2&lt;Double, Double&gt;, Object&gt;()  \t{ \t\tpublic Object call(Tuple2&lt;Double, Double&gt; pair)  \t\t{ \t\t\treturn Math.pow(pair._1() - pair._2(), 2.0); \t\t} \t}).rdd()).mean(); <\/code><\/pre>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0432\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  \u0418\u0432\u0430\u043d\u043e\u04321983 got the score 0.57. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321984 got the score 0.54. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321985 got the score -0.08. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321986 got the score 0.33. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321987 got the score 0.78. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321988 got the score 0.63. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321989 got the score 0.63. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321990 got the score 0.03. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321991 got the score 0.57. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321992 got the score 0.26. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321993 got the score 0.07. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321994 got the score 0.17. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321995 got the score 0.83. The real status is 1<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321996 got the score 0.31. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321997 got the score 0.48. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321998 got the score 0.16. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04321999 got the score 0.36. The real status is 0<br \/>  \u0418\u0432\u0430\u043d\u043e\u04322000 got the score -0.04. The real status is 0<br \/>  16\/11\/21 21:36:40 INFO Executor: Finished task 0.0 in stage 176.0 (TID 176). 3194 bytes result sent to driver<br \/>  16\/11\/21 21:36:40 INFO TaskSetManager: Finished task 0.0 in stage 176.0 (TID 176) in 432 ms on localhost (1\/1)<br \/>  16\/11\/21 21:36:40 INFO TaskSchedulerImpl: Removed TaskSet 176.0, whose tasks have all completed, from pool <br \/>  16\/11\/21 21:36:40 INFO DAGScheduler: ResultStage 176 (mean at App.java:242) finished in 0.433 s<br \/>  16\/11\/21 21:36:40 INFO DAGScheduler: Job 175 finished: mean at App.java:242, took 0.452851 s<br \/>  Training Error = 0.11655428630639536<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432 \u044d\u043a\u0441\u0435\u043b\u044c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4fb\/252\/702\/4fb252702dee4c4a93bf27db2359189c.png\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0431\u043b\u0438\u0437\u043a\u0438\u0439, \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0433\u043e\u0434\u043d\u0430\u044f, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0442\u0440\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0432\u044b\u0431\u043e\u0440\u043a\u0443. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c <a href=\"https:\/\/drive.google.com\/open?id=0ByybUCqM917jSzJMZmd6emstRlE\">\u0442\u0443\u0442<\/a>. <\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0430\u0436\u0438\u043e\u0442\u0430\u0436 \u0432\u043e\u043a\u0440\u0443\u0433 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u044b\u043c (\u0431\u043e\u043e\u043e\u043b\u044c\u0448\u0438\u043c \u0442\u0430\u043a\u0438\u043c). \u0411\u043e\u043b\u0435\u0435 \u0446\u0435\u043d\u043d\u044b\u043c \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0435 \u043e\u0431\u044a\u0435\u043c, \u0430 \u0442\u043e, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0422.\u0435. \u043a\u0430\u043a\u0430\u044f-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f TF-IDF \u2014 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u2014 ALS \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0442\u044c \u0438\u0437\u0443\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0431\u0438\u0432\u0430\u0442\u044c \u0431\u044e\u0434\u0436\u0435\u0442\u044b \u043f\u043e\u0434 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043b\u043e\u0432\u0430 Big Data, \u0430 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0446\u0435\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u044b\u0439 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043c\u044b\u0441\u043b\u0438 \u0443\u0442\u043e\u0447\u043d\u044e, \u0437\u043e\u043e\u043f\u0430\u0440\u043a \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Hadoop (Hive, Pig, Impala \u0438 \u0442.\u0434.) \u0448\u0438\u043a\u0430\u0440\u0435\u043d. \u042f \u0441\u0430\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044f\u0445 (\u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0438 \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0435\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432) \u0434\u043b\u044f \u043c\u0430\u043a\u0440\u043e\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0430\u0431\u043b\u0435\u0439 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438. \u0414\u0430, \u0435\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438, \u0433\u0434\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432 \u044d\u0442\u0438\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c \u043d\u0435\u0442 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0430\u044f, \u043d\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0438\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u0430\u043d\u0430\u043b\u0438\u0437 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u043e\u0442\u043e\u0432\u044b\u0445 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u041c\u043e\u0441\u043a\u0432\u044b). \u0422\u0443\u0442 Storm \u0438\u043b\u0438 Spark Streaming \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0447\u0443\u0434\u043e.<\/p>\n<p>  \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0437\u0430 \u0433\u043e\u0434, \u0442\u043e \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e 10-\u0433\u043e (\u0438\u043b\u0438 \u0434\u0430\u0436\u0435 100-\u0433\u043e) \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u043a\u043e\u0440\u0438\u043d\u0433\u0430 \u0434\u0430\u0441\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u043e\u0442 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0447\u0442\u043e \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432. \u0418\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u0440\u043e\u043b\u0435\u0432\u044b \u0431\u0430\u043b\u0430 Data mining \u0441\u0442\u0430\u043b\u0430 \u043f\u0430\u0434\u0447\u0435\u0440\u0438\u0446\u0435\u0439, \u0445\u043e\u0442\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u0410\u0436\u0438\u043e\u0442\u0430\u0436 \u0441\u043f\u0430\u0434\u0435\u0442, \u043d\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043e\u0431\u043a\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430 Hadoop-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0438 \u0442\u0435 \u043a\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u043e\u0441\u043e\u0437\u043d\u0430\u0435\u0442 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u00ab\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445\u00bb \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432 \u0434\u0430\u043c\u043a\u0430\u0445.<br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/316088\/\"> https:\/\/habrahabr.ru\/post\/316088\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><i>\u041f\u0443\u0441\u0442\u044c \u0416\u0438\u0440\u0430\u0444 \u0431\u044b\u043b \u043d\u0435 \u043f\u0440\u0430\u0432,<br \/>  \u041d\u043e \u0432\u0438\u043d\u043e\u0432\u0435\u043d \u043d\u0435 \u0416\u0438\u0440\u0430\u0444,<br \/>  \u0410 \u0442\u043e\u0442, \u043a\u0442\u043e \u043a\u0440\u0438\u043a\u043d\u0443\u043b \u0438\u0437 \u0432\u0435\u0442\u0432\u0435\u0439:<br \/>  \u00ab\u0416\u0438\u0440\u0430\u0444 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u2014 \u0435\u043c\u0443 \u0432\u0438\u0434\u043d\u0435\u0439!\u00bb (\u0441) <\/i><\/p>\n<p>  \u041f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 Spark \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Big Data. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b habrahabr, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0434\u043e\u043b\u0436\u043e\u043a, \u043f\u043e\u0434\u0435\u043b\u0438\u0432\u0448\u0438\u0441\u044c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c. <\/p>\n<p>  \u0410 \u0438\u043c\u0435\u043d\u043d\u043e: \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u043d\u0443\u043b\u044f, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u0434\u0430 \u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u043d\u043a\u0440\u043e\u0442\u0441\u0442\u0432\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0431\u0430\u043d\u043a\u0430 \u043f\u043e \u043d\u0430\u0431\u043e\u0440\u0443 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432 \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0430 \u043a\u0440\u0435\u0434\u0438\u0442\u0430, \u0441\u0442\u0430\u0432\u043a\u0430 \u0438 \u0442.\u0434.<\/p>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u043e\u0434\u0435 \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0439\u0442\u0438 \u0442\u043e \u0437\u043b\u0430\u0447\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u0438\u0445 \u0432\u0441\u0435 \u0449\u0443\u043f\u0430\u044e\u0442. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 <a href=\"http:\/\/ihorbobak.com\/index.php\/2015\/05\/06\/installing-hadoop-using-ambari-server\">ambari<\/a>, \u043d\u043e \u043d\u0430 \u043c\u043e\u0435\u0439 Window7 \u0432\u0430\u043b\u0438\u043b\u0438\u0441\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043c\u043e\u0441\u0442\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u043f\u0440\u0435\u0434\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043e\u0439 \u043e\u0442 Cloudera (<a href=\"http:\/\/www.cloudera.com\/downloads\/quickstart_vms\/5-8.html\">CDH<\/a>). \u041f\u0440\u043e\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c VirtualBox, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b (\u043f\u0430\u043c\u044f\u0442\u044c, \u043c\u0435\u0441\u0442\u043e) \u0438 \u0447\u0435\u0440\u0435\u0437 5 \u043c\u0438\u043d\u0443\u0442 \u0434\u043e\u0441\u0442\u043e\u043f\u043e\u0447\u0442\u0435\u043d\u043d\u044b\u0439 <s>\u0434\u0436\u0438\u043d<\/s> Hadoop \u0436\u0430\u0436\u0434\u0435\u0442 \u0432\u0430\u0448\u0438\u0445 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0439.<\/p>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0432, \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e Spark. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f \u043e\u0442 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 MapReduce \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0431\u0440\u043e\u0441\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a, \u0447\u0442\u043e \u0434\u0430\u0435\u0442 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u0432\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437. \u041d\u043e, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0446\u0435\u043b\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u0434 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0415\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u0438\u0431\u043e \u0440\u0443\u043a\u0430 \u043e\u0447\u0435\u043d\u044c \u0443\u0441\u0442\u0430\u0435\u0442 \u0441\u043a\u0440\u043e\u043b\u0438\u0442\u044c \u044d\u0442\u0438 2000 \u0441\u0442\u0440\u043e\u043a) \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f7e\/f1c\/7cf\/f7ef1c7cf2b64f928f3db61c85091e44.png\"\/><\/p>\n<p>  \u0415\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u0435\u0444\u043e\u043b\u0442 \u043a\u0430\u043a-\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 (\u043a\u0440\u043e\u043c\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e, \u043a \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u043c \u0418\u0432\u0430\u043d\u043e\u0432\u044b\u043c1\u2026N \u043f\u0440\u0435\u0442\u0435\u043d\u0437\u0438\u0439 \u043d\u0435\u0442) \u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u0438. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c, \u0441\u0442\u043e\u0438\u0442 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u0434 \u043d\u0430 Java, \u0441\u0430\u043c \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u043e\u043c \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u044d\u0442\u043e \u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a Eclipse, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Maven \u0438 \u0442.\u0434. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0436\u0434\u0430\u0442\u044c \u0438\u0437\u044b\u0441\u043a\u0430\u043d\u043d\u044b\u0445 \u0447\u0443\u0434\u0435\u0441, \u043d\u0438\u0436\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043b\u043e\u0431 \u0442\u0435\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b. <br \/>  \u041f\u043e\u0435\u0445\u0430\u043b\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-281515","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/281515","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=281515"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/281515\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=281515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=281515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=281515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}