2012幎ã«ã Apache Sparkãã¬ãŒã ã¯ãŒã¯ãéçºãããScalaã§éçºãããããã°ããŒã¿ãæäœããã¿ã¹ã¯ã®ç¹å®ã®ã¯ã©ã¹ã®ããã©ãŒãã³ã¹ãæ¹åããããã«èšèšãããŸããã 4幎éããããžã§ã¯ãã¯æçããããŒãžã§ã³2.0ã«æé·ããŸããïŒå®éã«ã¯ãããŒãžã§ã³1.3-1.5ããæ¢ã«éå§ãããŠããŸãïŒãJavaãæäœããããã®åŒ·åã§äŸ¿å©ãªAPIãåããŠããŸãã ããã誰ã«å¿ èŠãªã®ããSparkã®å©ããåããŠã©ã®ã¿ã¹ã¯ã解決ããå¿ èŠãããã®ãââããããŠäŸ¡å€ããªãã®ããç解ããããã«ããµã³ã¯ãããã«ãã«ã¯ã§10æ12ã13æ¥ã«éå¬ããããã¬ãŒãã³ã°ãWelcome to Sparkãã®èè ã§ããEvgeny EvgenyBorisov Borisovãšè©±ããŸããã
JUG.RUïŒãŠãŒãžãŒã³ãããããïŒ æåããæ¥ãŠãã ããã Sparkã®æŠèŠãšãSparkã®äœ¿çšæ¹æ³ãç°¡åã«æããŠãã ããã
EugeneïŒãŸã第äžã«ãApache Sparkã¯ãã¬ãŒã ã¯ãŒã¯ã§ããããã°ããŒã¿ãç¡å¶éã®æ°ã®ãªãœãŒã¹ããã·ã³ã§åŠçã§ããç¹å®ã®APIã§ãããç¬ç«ããŠã¹ã±ãŒãªã³ã°ã§ããŸãã Javaéçºè ãå®å šã«ç解ã§ããããã«ããããã«ãããŒã¿ããŒã¹ãšéä¿¡ã§ããå€ã
ãããŠãããã§åççãªçåãçããŸãïŒã©ãã§æžãããšãã§ããã©ãã§æžãããšãã§ããŸããïŒ Apache Hadoopã§èšè¿°ã§ããHDFSã§äœæ¥ã§ããAmazon S3ã䜿çšã§ããŸãã äžè¬çã«ãå€ãã®åæ£ã¹ãã¬ãŒãžããããå€ãã®å ŽåãSparkã®APIã¯ãã§ã«äœæãããŠããŸãããä»ã®APIã«ã€ããŠã¯äœæãããŠããŸãã ããšãã°ã Apache Cassandraã«ã¯ãã®ããã®ç¬èªã®ã³ãã¯ã¿ãŒãããïŒDataStax Enterpriseå ïŒãCassandraã§Sparkãæžãããšãã§ããŸãã æçµçã«ã¯ãããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ã§å¯èœã§ããããã¯ããã§è¡ãå¿ èŠã¯ãããŸãããïŒã¹ã±ãŒãªã³ã°ããå Žæã¯ãããŸããïŒããã®æ©èœã¯éåžžãã¹ãã«äœ¿çšãããŸãã
æ å ±ã¯æ¯å¹ŽãŸããŸãèç©ãããŠãããããç¡å¶éã®ãªãœãŒã¹ã§åŠçããããšããèŠæããããŸãã
JUG.RUïŒããã§ãSparkã¯åæ£ã€ã³ãã©ã¹ãã©ã¯ãã£äžã§å転ããŠããŸãã ããã¯ããããžã§ã¯ããçŽç²ã«ããšã³ã¿ãŒãã©ã€ãºãã§ããããšãæå³ããŸããããããšãååãšããŠããã€ãã®å人ãããžã§ã¯ãã§äœ¿çšã§ããŸããïŒ
ãŠãŒãžãŒã³ïŒä»æ¥ã¯ãšã³ã¿ãŒãã©ã€ãºãã¬ãŒã ã¯ãŒã¯ã§ããå¯èœæ§ãé«ãã§ãããããã°ããŒã¿ã¯çŸåšããããªãã§ã¯ã©ãã«ãååšããªãã»ã©ã®é床ã§åºãã£ãŠããŸããæ¯å¹Žãããå€ãã®æ å ±ãèç©ããããããããç¡å¶éã®éã®ãªãœãŒã¹ã§åŠçããããšããèŠæããããŸãã ä»æ¥ãæ å ±ã¯ã»ãšãã©ãªãããããåŠçããã ãã®ã³ãŒãããããããã«æ å ±ãèç©ããããšããã¹ãŠãæžãçŽãå¿ èŠããããŸãã ã ããïŒ ãŸãããã¹ãŠãæåã«Sparkã§åŠçãããå Žåãã¯ã©ã¹ã¿ãŒãè€æ°ã®ãã·ã³ã§åçŽã«å¢ããããšãã§ããã³ãŒãããŸã£ããå€æŽããå¿ èŠã¯ãããŸããã
JUG.RUïŒSparkã¯ãŸã ãšã³ã¿ãŒãã©ã€ãºã¯ã©ã¹ã ãšèšããŸãã ããã¯éèŠãªè³ªåã§ãããå®å®æ§ãšäžäœäºææ§ã«ã€ããŠã¯ã©ãã§ããïŒ
EugeneïŒ Sparkã¯Scalaã§æžãããŠããã®ã§ãåŸæ¹äºææ§ã®ããScalaã¯ååã«æªãã®ã§ãããSparkãããã«å°ãèŠããã§ããŸãã ããªããæŽæ°ããããšããããããçš®ã®æ©èœãçªç¶èœã¡ãŸããããããã¯Scalaãããã¯ããã«å°ãªãç¯å²ã§èµ·ãããŸãã ããã§ããããã®APIã¯ã¯ããã«å®å®ããŠããããã¹ãŠãããã»ã©éèŠã§ã¯ãããŸãããéåžžãããã¬ãŒã¯ããŠã³ãã¯ããŒã«ã«ã§ããã€ã³ãããšã«è§£æ±ºãããŸãã
Sparkã®2çªç®ã®ããŒãžã§ã³ããªãªãŒã¹ãããéåžžã«ã¯ãŒã«ã«èŠããŸããããããŸã§ã®ãšããããã¹ãŠã厩å£ããŠãããšã¯èšããŸããã ãã¬ãŒãã³ã°ã®ããã«ããçš®ã®ã¬ãã¥ãŒãããã¯ãæºåããäœãå€æŽãããæŽæ°ããããã瀺ãæéããããŸãã
SparkèªäœãScalaã§æžãããŠãããšããäºå®ã«ãããããããããã«è¿œå ãã䟡å€ããããç§ã¯ãããç¥ããªã人ã Scalaã§æžãããšãæ¯æããŠããŸã ã ç§ã¯ãã°ãã°ãããã§ã圌ãã¯ããªããScalaã«åºäŒããšèšããŸãããšéé£ãããŸãã ç§ã¯Scalaã«ééããŸããïŒ ãã誰ããScalaãç¥ããªãããSparkã§æžããããšæããªããããã¯ScalaãåŠã¶çç±ã§ã¯ãªããšæãã
JUG.RUïŒããŠãååãšããŠãScalaã®äžã§Spalaãæžãæ¹ãè¯ããšå€æããŸããããScalaã«æžã蟌ããªãå Žåã¯ãJaã«æžãããšãã§ããŸã...
ãŠãŒãžã³ïŒããããããïŒ Scalaã§æžãæ¹ãè¯ããšã¯èšããŸããã§ããã ç§ã¯ãSkalaãããç¥ã£ãŠããŠããã®äžã§Sparkã®äžã§æžã人ã¯å®å šã«æ®éã ãšèšããŸããã
ãããããã人ã次ã®ããã«èšã£ãå ŽåããScalaã®ããšã¯ç¥ããŸããããSparkãæžãå¿ èŠãããã®ã¯ããããããã«ã¯ãŒã«ããç解ããããã§ãã ä»ãRockã«æããã«ã¯äœãå¿ èŠã§ããïŒãããã¯ãŸã£ããæå³ããªããšèšããŸãïŒ ãããŠãç§ãScalaãç¥ããªãã£ãã®ã§ãããã§Javaã§èšè¿°ããããšããŸããããJavaãç¥ã£ãŠããŸãããããã¹ãŠãã²ã©ãæªããªããæçµçã«Scalaã«åãæ¿ããå¿ èŠããããŸãããããããç§ãã¡ã¯å¹žãã§ããã
ä»æ¥ãããã¯ãŸã£ãããã®ãããªãã®ã§ã¯ãããŸãããJava7ã«ã€ããŠè©±ããŠããŠãSparkããŸã ââRDDã§å€ãã£ãã®ã¯äºå®ã§ãã
ä»æ¥ãJavaã¯8çªç®ã§ãããããŒã¿ãã¬ãŒã ãSparkïŒããŒãžã§ã³1.3ããïŒã«ç»å Žããå®è¡å¯Ÿè±¡ã«é¢ä¿ãªãAPIãæäŸããŸããScalaãJavaã§ã¯ãScalaããªããŠãå®å šã«çããããšãã§ããŸãã
JUG.RUïŒJava 8ã§èšè¿°ã§ããå ŽåãSparkã®ãšã³ããªãããå€ã¯ãããã§ããïŒ ã¹ããŒããªæ¬ãèªãã§ãããããåŠã¶å¿ èŠããããŸããïŒ
Eugene ïŒç¹ã«Java 8ã®å®è·µçãªçµéšãããå Žåã¯éåžžã«äœãã§ãã8çªç®ã®Javaã®ã¹ããªãŒã ãèŠãŠã¿ãŸããããã€ããªãã®ãŒã¯éåžžã«äŒŒãŠãããã»ãšãã©ã®ã¡ãœãããåããšåŒã°ããŠããŸãã èªåã§å§ããŠç解ããããšãã§ããŸãã
ããããçš®é¡ã®åŸ®åŠããããªãã¯ããã¥ã¢ã³ã¹ã«å¯ŸåŠããããã«ã ãã¬ãŒãã³ã°ãå¿ èŠã«ãªãå¯èœæ§ãé«ããªããŸãã ããã«ããã¬ãŒãã³ã°ã¯Javaéçºè åãã§ãããããSpringã§ãã¹ãŠãã«ã¹ã¿ãã€ãºããæ¹æ³ãã€ã³ãã©ã¹ãã©ã¯ãã£ãèšè¿°ããŠããã¹ãŠãæ©èœãããããã«ã¢ãããŒã·ã§ã³ã䜿çšããŠSparkã®ããã©ãŒãã³ã¹ããªãã¯ãå®è¡ããæ¹æ³ã瀺ããŸããç®±ããåºããŠããã«ã
JUG.RUïŒåœŒããæžããŠããã©ãã§ããSparkã¯ããã°ããŒã¿ãæ±ãã®ã«æé©ã§ãããšèšã£ãŠããŸãããããã¯ç解ã§ããŸãã ããããããã»ã©é »ç¹ã«èãããªã質åã¯ãSparkãé©åã§ã¯ãªãçç±ã§ãã ã©ã®ãããªå¶éããããã©ã®ã¿ã¹ã¯ã®ããã«ãããåãããšã¯çµ¶å¯Ÿã«äŸ¡å€ããªãã®ã§ããïŒ
EugeneïŒã¿ã¹ã¯ããã®ã€ããªãã®ãŒã«åŸã£ãŠã¹ã±ãŒãªã³ã°ããªãå ŽåãSparkã圹ã«ç«ããªããšããæå³ã§ãã¹ã±ãŒãªã³ã°ããªãã¿ã¹ã¯ã«Sparkã䜿çšããããšã¯çµ¶å¯Ÿã«æå³ããããŸããã
äŸãšããŠããŠã£ã³ããŠé¢æ°ã¯ãSparkeã«ãããšããäºå®ã«ããããããïŒäžè¬ã«ãSparkã§ãã¹ãŠãè¡ãããšãã§ããŸãïŒãéåžžã«ãã£ãããšåäœããŸãã æéãçµã€ã«ã€ããŠãããã§ã¯è¯ããªãã¯ãã§ãã圌ãã¯ãã®æ¹åã«åããŠããŸãã
JUG.RUïŒãšããã§ãããã¯ãã話ã§ããSparkã¯ã©ããžè¡ãã®ã§ããïŒ ããã€ãã®ããŒã¿ãè¿ éãã€é©åã«åŠçããããšããã§ã«å¯èœã§ããããšã¯æããã§ãã
EugeneïŒæåã®Sparkã«ã¯RDDïŒResilient Distributed DatasetïŒããã ãã³ãŒãã䜿çšããŠããŒã¿ãåŠçã§ããããã«ãªããŸããã ããŒã¿ã¯éåžžåããŒã¹ã®æ§é ãæã£ãŠããŸãããååãåç §ã§ããªãããšãå€æããŠãããããRDD APIã®å Žåã¯ããã§ã¯ãããŸããã ãŸããèšå€§ãªæ°ã®åãšèšå€§ãªæ°ã®è¡ãå«ããã¡ã€ã«ããããããããã¹ãŠãåŠçããããžãã¯ãäœæãããšãéåžžã«èªã¿ã«ããã³ãŒããåŸãããŸãã
ããŒã¿ãã¬ãŒã ã䜿çšãããšãååã䜿çšããŠæ§é ãç¶æããªããããŒã¿ãåŠçã§ããŸããã³ãŒããã¯ããã«èªã¿ããããªããSQLã«ç²Ÿéãã人ã ããã®äžçã§éåžžã«è¯ããªããŸããã äžæ¹ãããžãã¯ã埮調æŽããæ©èœãæ¬ ããŠããŸããã
ãã®çµæãRDDã®å©ããåããŠãããŒã¿ãã¬ãŒã ã®å©ããåããŠç¹å®ã®ããšãè¡ãã®ã䟿å©ã«ãªã£ãããšãå€æããŸããã 2çªç®ã®Sparkã¯ããã®ãã¹ãŠãDataSetãšåŒã°ããæ§é ã«çµ±åãã1ã€ã®APIãé¢ããããšãªãã ãšã«ããäœæ¥ããããšãã§ããŸãã ããã«ããã¹ãŠãããéãåäœãå§ããŸããã ãããã£ãŠãSparkãã©ãã«åãã£ãŠããã®ããèšããšãããŸããŸãªæé©åãè¡ãããŠããããã¬ãŒã ã¯ãŒã¯ã¯ãŸããŸãé«éã«åäœããŠãããšèšããŸãã
ãã¬ãŒã ã¯ãŒã¯ã¯ãŸããŸãé«éã«ãªã£ãŠããŸãã
JUG.RUïŒæããã«ãåãã¯ã¹ããŒããšæè»æ§ã«åãã£ãŠããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã€ããŠè³ªåããæãæ¥ãŸãããSparkã§åäœããããŒã«ã¯äœã§ããïŒ JPointã®ã¬ããŒãã§ã¯ãHadoopã䜿çšããŠäœæ¥ã§ããããšãHadoopã䜿çšããªãããšãªã©ãã§ããããšã詳ãã説æããŠããŸãã
ããããååã®èšäºãžã®ã³ã¡ã³ãã§ãã€ãŒã³ã®ãªãã¹ããŒã¯ã¯æªè ã§ãããããã§ã¯éåžžã®ãªãœãŒã¹ç®¡çã¯åŸãããªããšã®æèŠãè¡šæãããŸããã
ãŠãŒãžãŒã³ïŒç§ã¯ãã®æèŠã«åæããŸããã ãããã©ã®ããã«å§ãŸãããèŠãŠã¿ãŸããããã³ãŒããéä¿¡ãããã¯ãŒã«ãŒã®äœæ¥ã調æŽããäœãããããããã¯äžŠè¡ããŠå®è¡ãããŸãã Yarnã¯ãã¡ãããããããã¹ãŠãããè¿ éã«èª¿æŽããåŽåè ã®ç¶æ ãç£èŠããå¿ èŠã«å¿ããŠåèµ·åããæ¹æ³ãç¥ã£ãŠããŸãã ãã ããå¿ èŠã«å¿ããŠãYarnãªãã§äœæ¥ã§ããŸãã ãã¡ãããSpark StandaloneããããŸãããããã¯ãã¡ããäœéã§ããã»ã©åŒ·åã§ã¯ãããŸããããããã«å ããŠã代æ¿æ段ããããŸããããšãã°ãApache Mesosã¯ãä»ã§ãèŠãŠããŸãã 5幎åŸã«ã¯ãã¹ãŠãã€ãŒã³ã«çµã³ä»ããããã©ããããæºå¡ã«ãªããšç¢ºä¿¡ããŠããŸãã ããã«ãæåã«è¿°ã¹ãããã«ãåæ£ã¹ãã¬ãŒãžã«ã¯å€ãã®ããŒã«ããããŸãã
JUG.RUïŒåœŒãã¯çè«ãå€ããå°ãªããæŽçããŸããã Sparkãå¿ èŠãªãçç±ãç解ã§ããŸãã ãããŠãããªãèªèº«ã®çµéšããSparkã®äœ¿çšäŸã瀺ãããšãã§ããŸããïŒ ç¢ºãã«ãããã°ããŒã¿é åã«ã¯èå³æ·±ããã®ããããŸããã
ãŠãŒãžãŒã³ïŒ ãèå³æ·±ãããšããããšã¯ç¥ããŸãããçµå±ã®ãšãããç§ã¯äž»ã«ãšã³ã¿ãŒãã©ã€ãºãããžã§ã¯ããå®æœããŸããããããã»ã©é¢çœããããŸããã å¥ã®ããšã¯ãæžãããšãé¢çœããŠãéããŠäŸ¿å©ã ã£ãããšã§ãã
èå³æ·±ãäºäŸã®ãã¡ãé»è©±äŒç€Ÿåãã®ãµãŒãã¹ãæãåºãããšãã§ããŸããæ³åããŠã¿ãŠãã ãããããªãã¯å¥ã®åœã«é£ã³ãSIMã«ãŒããå€æŽããªãã£ãã®ã§ãããŒãã³ã°ãéžæããå¿ èŠããããŸãã äœã«åºã¥ããŠã圌ã¯ã©ã®ããã«éžã°ããŸããïŒ å®ããé«äŸ¡ã§ãå©çããããå©çãåºãªã-ãã®ãããªæ±ºå®ãäžãããã«ãé»è©±äŒç€Ÿã¯ãã¹ãŠã®ããŒã¿ãåæããå¿ èŠããããŸãïŒãã¹ãŠã®é»è©±ã誰ã誰ãã©ããããã©ãããé»è©±ããããããè¯ãã³ãã¥ãã±ãŒã·ã§ã³ããã£ããã©ãã-ãã¹ãŠãä¿®æ£ãããŸãã å ·äœçã«ã¯ããã®ãããžã§ã¯ãã§ã¯ãäžçäžã®ãã¹ãŠã®é話ã«ã€ããŠãã®ãããªããŒã¿ãèšç®ãããã¹ãŠãåæããŠãç°ãªãçµ±èšã衚瀺ããŸããã
2çªç®ã®äŸã¯ã¹ã©ã€ã¹ã§ãã ã¡ãŒã«ããã®è³Œå ¥ã泚æããã±ãããªã©ãåæããŠãåºåã®ã¿ãŒã²ãããçµãããªãã¡ãŒãåãåãããã«ãã¡ãŒã«ããã¯ã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãã人ãããŸãã ããã§ãã倧éã®æåã®åŠçãããããããã¯ãã¹ãŠAmazon'eã®Redshift'eã«ä¿åãããŸãïŒæ¢ã«ã©ã®é¡§å®¢ã«åºã¥ããŠçµ±èšãçºè¡ããããã«ãããã¹ãŠãæ§é åãèšç®ãäœããã®åœ¢ã§è¿ éã«åŠçããå¿ èŠããããŸãã¿ãŒã²ãããçµã£ãåºåãæšå¥šäºé ãæäŸããŸãã ããã§ã¯ãããã©ãŒãã³ã¹ãæ¹åããããã«Sparkããã蟌ã¿ãŸããã
JUG.RUïŒSparkã¯ããŒã¿ããªã¢ã«ã¿ã€ã ã§åŠçããŸããïŒ
ãŠãŒãžãŒã³ïŒãªã¢ã«ã¿ã€ã ã§ã§ããããšãbatch'amiã
JUG.RUïŒãªãã»ã©ãããŒã¿æ€èšŒã¯ã©ãã§ããïŒ æŽåæ§ãŸãã¯æ£ç¢ºæ§ã®ããã«ããŒã¿æ€èšŒãç°¡çŽ åããããŒã«ã¯ãããŸããïŒ
EugeneïŒããã¯ãã¹ãŠã³ãŒãã¬ãã«ã§è§£æ±ºãããŸãã100äžè¡ã®ã³ãŒããååŸããæåã«è¡ãããšã¯ç¡å¹ãªã³ãŒããç Žæ£ããããšã§ãã ãšããã§ãçµ±èšã¯éåžžãããã«ã€ããŠåéãããŸãïŒãã®ãããªããŒã¿ã®éããããééã£ãŠããçç±ããããSparkã«ãã£ãŠè¡ãããŸãã
JUG.RUïŒæåŸã«ããJava vs Scala in Sparkããšãã質åã«ããäžåºŠè§ŠããããåŸãŸããã 奜å¥å¿ããããã«ã ã©ã¡ãåŽã«ããŸããïŒ
ãŠãŒãžã³ïŒç§ã¯Javaã奜ãåŸåããããŸãããå€ãã®äººã¯ãããå«ããŸãã ç§ã¯ç解ã§ããŸã-ç§ã¯15幎éJavaãæžããGroovyãæ°å¹ŽéæžããŸãããããã¯ãã¡ããJavaãšæ¯èŒãã次ã®ã¹ãããã§ãããJavaã®8çªç®ã®ããŒãžã§ã³ã®ãªãªãŒã¹ã§ã¯ããã¹ãŠãããã»ã©æ確ã§ã¯ãããŸããã§ããã ä»ãæ°ãããããžã§ã¯ããéå§ããJava 8ãŸãã¯Groovyã§ãããžã§ã¯ããéå§ãããã³ã«èããŠããŸãã
ããããScalaã¯ãŸã£ããç°ãªãäžçã§ãïŒ ãããŠã楜åšã®ããã«ç解ããã®ã¯é£ããã§ãã äžéšã®ãã¯ããã¿ãŒã³ã¯ãããŸããã Scalaã§æžãå¿ èŠããã£ãææããããŸãã-ç§ã¯ã²ã©ãèŠãã¿ãŸããã åœç¶ãããªããèŠãããšããããªãã¯ä»ã®äººã«çžè«ã«è¡ããŸãã ã¢ãŒããã¯ãã£ãæ§ç¯ããæ¹æ³ãäžäººã«çžè«ãããšã圌ã¯äžã€ã®ããšãèšããŸãã å¥ã®è³ªåããããšããŸã£ããç°ãªãçããåŸãããŸãïŒ Javaã®äžçã§ã¯ããã¹ãŠãããåäžã§ãããå€ãã®çµéšãããå€ãã®äººã ãã³ãã¥ããã£ã§ããç§ã«ã¯ãµãŒãã¹ããããã¿ãªããããäŸåæ§æ³šå ¥ããããSpringããããŸããããã«ã¯Spring DataãããããSpring MVCããããŸã人ã ãåéãããã®èšå€§ãªæ å ±ããã¹ãŠScalaã«ç§»åããŠããã¹ãŠããŒãããåŠã³ãŸããïŒ ãªãã§ïŒ Javaã§ãã¹ãŠãæªããªããªãå Žåã Scalaã2ã3åéãåäœããå ŽåããŸãã¯APIã10å䟿å©ã§ããå Žåã1幎ååŠç¿ããããšã«åæããããšãç解ããŠããŸãã
é¢çœãåºæ¥äºãæãåºããŸããã å ±ååŸãããç·ããªãŽã£ãŠã§ç§ã®ãšããã«æ¥ãŠèšã£ãïŒ
-èããŠãã ãããããªãã¯Scalaã奜ããããªãã§ããïŒ
ãç§ã¯ãããèšããªãã£ãããšç§ã¯çããã
-ãŸããããã¯åãããã«æããŸãã
ããŸãããã§ã«Javaããã°ã©ããŒããããããžã§ã¯ãã§ã¯ãããããScalaã«ç¿»èš³ããã®ã«æéã浪費ããŠãæå³ããªããšæããŸããã
-ãããŠãããªãèªèº«ãããã¯ã«æžããïŒ
-ããŠãç§ã¯å°ãæžããŸããã
-ãããïŒ
-ã©ããã§6ã¶æã
-ããå幎...å幎ã¯Scalaãç解ã§ããŸããã§ããïŒ å°ãªããšã2ã3幎ã¯å¿ èŠã§ãã
ããããã®ç¬éã ç§ã¯èªåã絶察ã«æ£ããããšã«æ°ã¥ããŸããã å ¥åŠåºæºãé«ãã®ã¯2ã3幎ã®ã¬ãã«ã§ãã çµå±ã®ãšãããåé¡ã¯èšèªãè¯ããæªããã§ã¯ãããŸããã çå®ã¯ãããããªããJavaã§æžãããšãã§ããã°-Javaã§æžãã°ãSparkã§ããããã«ããŠããããã¯ç°¡åã§ç°¡åã§ãã ç§ã®ãããžã§ã¯ãã®éçºè ãGoogleã§ããã€ãã®ãœãªã¥ãŒã·ã§ã³ãæ¢ããŠãJavaã§ã¯ãªãScalaã§èŠã€ããç¶æ³ããŸããŸãå°ãªããªã£ãŠããŸãã 以åã¯ãããã¯ãããããããŸããããçŸåšã¯ã»ãšãã©ãããŸããã
å®éãScalaã®äœ¿åœã¯ããã»ã©å€ãã£ãŠããŸãããéçºè ãScalaã«ç§»ãã®ã§ã¯ãªãïŒ12幎ãçµã£ãŠããªãïŒã圌ãã®ç®æšã¯ãã¹ãŠã®Scala補åãJavaã§äœ¿çšããããšã§ãã -ããã¯ãã§ã«éåžžã«åŒ·ãæããããŠããŸããçŸåšãåãSparkã®æ°ããããŒãžã§ã³ããšã«ãJavaãå«ãããŸããŸãã·ã£ãŒãã«ãªããããŒãžã§ã³ããšã«å·®ã¯å°ãããªã£ãŠããŸãã
1幎åã«GitHubã§JavaãšScalaã®Sparkã®ãããžã§ã¯ãã®æ°ãæ¯èŒãããã£ã¹ããªãã¥ãŒã·ã§ã³ãçŽ3000ãš7000ã§ãã£ãå Žåããããã®æ°ã¯ããè¿ã
1幎åã«GitHubã§JavaãšScalaã®Sparkã®ãããžã§ã¯ãæ°ãæ¯èŒãããã£ã¹ããªãã¥ãŒã·ã§ã³ãçŽ3000ãš7000ã§ãã£ãå Žåããããã®æ°å€ã¯ããè¿ããªããŸããã ãããŠãããã§ãã®ã£ããã¯ããã»ã©åºããããŸããã§ãããããã¯Sparkã®äžã§Javaãæžãèšå€§ãªæ°ã®ããã°ã©ããŒã§ããããã¹ãŠãããŸãæ©èœããŸãã
JUG.RUïŒãŠãŒãžãŒã³ãããããšãããããŠãã¬ãŒãã³ã°ã§äŒããŸãããïŒ
äžè¬çã«ãSparkã®JavaããŒãã«èå³ãããå Žåã¯ããã¬ãŒãã³ã°ã§ãäŒãã§ããŠããããã§ãã å€ãã®ã¿ã¹ã¯ãã©ã€ãã³ãŒãã£ã³ã°ããããæçµçã«ã¯ãæ £ã芪ããã Javaã®äžçã§Spark-eã®ç¬ç«ããäœæ¥ãéå§ããã®ã«ååãªç¥èããã®ãã¬ãŒãã³ã°ã«æ®ããŸãã 察å¿ããããŒãžã§èªãããšãã§ãã詳现ã
ãã¬ãŒãã³ã°ãããªãã«ãšã£ãŠé¢çœããªãå Žåã¯ããžã§ãŒã«ãŒã®ã«ã³ãã¡ã¬ã³ã¹ã§ãŠãŒãžã³ãšäŒãããšãã§ããŸããããã§ãŠãŒãžã³ã¯2ã€ã®ã¬ããŒããæäŸããŸãã
-Sparkã«ã€ããŠã®ç¥è©±ããŸãã¯Sparkãéåžžã®Javaéçºè ã«ããããšã¯ã§ããŸããïŒãã¬ãŒãã³ã°ã®éåžžã«çãããŒãžã§ã³ïŒ ã
-Maven vs GradleïŒèªååã®å€æãïŒBaruch SadogurskyãšïŒ