
ÕªÒª£ºÍ¨³£ÎÒÃǶÔÒ»¸öϵͳ½øÐÐÐÔÄÜÓÅ»¯ÎÞ¹ÖºõÁ½¸ö²½Ö衪¡ªÐÔÄÜ¼à¿ØºÍ²ÎÊýµ÷Õû£¬±¾ÎÄÖ÷Òª·ÖÏíµÄÒ²ÊÇÕâÁ½·½ÃæÄÚÈÝ¡£
ͨ³£ÎÒÃǶÔÒ»¸öϵͳ½øÐÐÐÔÄÜÓÅ»¯ÎÞ¹ÖºõÁ½¸ö²½Ö衪¡ªÐÔÄÜ¼à¿ØºÍ²ÎÊýµ÷Õû£¬±¾ÎÄÖ÷Òª·ÖÏíµÄÒ²ÊÇÕâÁ½·½ÃæÄÚÈÝ¡£
ÐÔÄÜ¼à¿Ø¹¤¾ß
¡¾Spark¼à¿Ø¹¤¾ß¡¿
SparkÌṩÁËһЩ»ù±¾µÄWeb¼à¿ØÒ³Ã棬¶ÔÓÚÈÕ³£¼à¿ØÊ®·ÖÓÐÓá£
1. Application Web UI
http://master:4040£¨Ä¬È϶˿ÚÊÇ4040£¬¿ÉÒÔͨ¹ýspark.ui.portÐ޸ģ©¿É»ñµÃÕâЩÐÅÏ¢£º£¨1£©stagesºÍtasksµ÷¶ÈÇé¿ö£»£¨2£©RDD´óС¼°ÄÚ´æÊ¹Ó㻣¨3£©ÏµÍ³»·¾³ÐÅÏ¢£»£¨4£©ÕýÔÚÖ´ÐеÄexecutorÐÅÏ¢¡£
2. history server
µ±SparkÓ¦ÓÃÍ˳öºó£¬ÈÔ¿ÉÒÔ»ñµÃÀúÊ·SparkÓ¦ÓõÄstagesºÍtasksÖ´ÐÐÐÅÏ¢£¬±ãÓÚ·ÖÎö³ÌÐò²»Ã÷ÔÒò¹ÒµôµÄÇé¿ö¡£ÅäÖ÷½·¨ÈçÏ£º
£¨1£©$SPARK_HOME/conf/spark-env.sh
export SPARK_HISTORY_OPTS="-Dspark.history.retainedApplications=50
Dspark.history.fs.logDirectory=hdfs://hadoop000:8020/directory"
˵Ã÷£ºspark.history.retainedApplica-tions½öÏÔʾ×î½ü50¸öÓ¦ÓÃspark.history.fs.logDirectory£ºSpark History ServerÒ³ÃæÖ»Õ¹Ê¾¸Ã·¾¶ÏµÄÐÅÏ¢¡£
£¨2£©$SPARK_HOME/conf/spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop000:8020/directory #Ó¦ÓÃÔÚÔËÐйý³ÌÖÐËùÓеÄÐÅÏ¢¾ù¼Ç¼ÔÚ¸ÃÊôÐÔÖ¸¶¨µÄ·¾¶ÏÂ
3. spark.eventLog.compress true
£¨1£©HistoryServerÆô¶¯
$SPARK_HOMR/bin/start-histrory-server.sh
£¨2£©HistoryServerÍ£Ö¹
$SPARK_HOMR/bin/stop-histrory-server.sh
4. ganglia
ͨ¹ýÅäÖÃganglia£¬¿ÉÒÔ·ÖÎö¼¯ÈºµÄʹÓÃ×´¿öºÍ×ÊÔ´Æ¿¾±£¬µ«ÊÇĬÈÏÇé¿öÏÂgangliaÊÇδ±»´ò°üµÄ£¬ÐèÒªÔÚmvn±àÒëʱÌí¼Ó-Pspark-ganglia-lgpl£¬²¢ÐÞ¸ÄÅäÖÃÎļþ$SPARK_HOME/conf/metrics.properties¡£
5. Executor logs
Standaloneģʽ£º$SPARK_HOME/logs
YARNģʽ£ºÔÚyarn-site.xmlÎļþÖÐÅäÖÃÁËYARNÈÕÖ¾µÄ´æ·ÅλÖãºyarn.nodemanager.log-dirs£¬»òʹÓÃÃüÁî»ñÈ¡yarn logs -applicationId¡£
¡¾ÆäËû¼à¿Ø¹¤¾ß¡¿
1. Nmon£¨http://www.ibm.com/developerworks/aix/library/au-analyze_aix/£©
Nmon ÊäÈ룺c£ºCPU n£ºÍøÂç m£ºÄÚ´æ d£º´ÅÅÌ

2. Jmeter£¨http://jmeter. apache.org/£©
ͨ³£Ê¹ÓÃJmeter×öϵͳÐÔÄܲÎÊýµÄʵʱչʾ£¬JMeterµÄ°²×°·Ç³£¼òµ¥£¬´Ó¹Ù·½ÍøÕ¾ÉÏÏÂÔØ£¬½âѹ֮ºó¼´¿ÉʹÓá£ÔËÐÐÃüÁîÔÚ%JMETER_HOME%/binÏ£¬¶ÔÓÚ Windows Óû§£¬Ö±½ÓʹÓÃjmeter.bat¡£
Æô¶¯jmeter£º´´½¨²âÊԼƻ®£¬ÉèÖÃÏß³Ì×éÉèÖÃÑ»·´ÎÊý¡£
Ìí¼Ó¼àÌýÆ÷£ºjp@gc - PerfMon Metrics Collector¡£

ÉèÖüàÌýÆ÷£º¼àÌýÖ÷»ú¶Ë¿Ú¼°¼àÌýÄÚÈÝ£¬ÀýÈçCPU¡£

Æô¶¯¼àÌý£º¿ÉÒÔʵʱ»ñµÃ½ÚµãµÄCPU״̬ÐÅÏ¢£¬´Óͼ4¿É¿´³öCPUÒѳöÏÖÆ¿¾±¡£

3. Jprofiler£¨http://www.ej-technologies.com/products/jprofiler/overview.html£©
JProfilerÊÇÒ»¸öÈ«¹¦ÄܵÄJavaÆÊÎö¹¤¾ß£¨profiler£©£¬×¨ÓÃÓÚ·ÖÎöJ2SEºÍJ2EEÓ¦ÓóÌʽ¡£Ëü°ÑCPU¡¢Ï̺߳ÍÄÚ´æµÄÆÊÎö×éºÏÔÚÒ»¸öÇ¿´óµÄÓ¦ÓÃÖС£JProfilerµÄGUI¿ÉÒÔ¸ü·½±ãµØÕÒµ½ÐÔÄÜÆ¿¾±¡¢×¥×¡ÄÚ´æÐ¹Â©£¨memory leaks£©£¬²¢½â¾ö¶àÏ̵߳ÄÎÊÌâ¡£ÀýÈç·ÖÎöÄĸö¶ÔÏóÕ¼ÓõÄÄÚ´æ±È½Ï¶à£»Äĸö·½·¨Õ¼ÓýϴóµÄCPU×ÊÔ´µÈ£»ÎÒÃÇͨ³£Ê¹ÓÃJprofilerÀ´¼à¿ØSparkÓ¦ÓÃÔÚlocalģʽÏÂÔËÐÐʱµÄÐÔÄÜÆ¿¾±ºÍÄÚ´æÐ¹Â©Çé¿ö¡£

ÉÏÊö¼¸¸ö¹¤¾ß¿ÉÒÔÖ±½Óͨ¹ýÌṩµÄÁ´½ÓÁ˽âÏêϸµÄʹÓ÷½·¨¡£
Sparkµ÷ÓÅ
¡¾Spark¼¯Èº²¢Ðжȡ¿
ÔÚSpark¼¯Èº»·¾³Ï£¬Ö»ÓÐ×ã¹»¸ßµÄ²¢ÐжȲÅÄÜʹϵͳ×ÊÔ´µÃµ½³ä·ÖµÄÀûÓ㬿ÉÒÔͨ¹ýÐÞ¸Äspark-env.shÀ´µ÷ÕûExecutorµÄÊýÁ¿ºÍʹÓÃ×ÊÔ´£¬StandaloneºÍYARN·½Ê½×ÊÔ´µÄµ÷¶È¹ÜÀíÊDz»Í¬µÄ¡£
ÔÚStandaloneģʽÏÂ:
1. ÿ¸ö½ÚµãʹÓõÄ×î´óÄÚ´æÊý£ºSPARK_WORKER_INSTANCES*SPARK_WORKER_MEMORY£»
2. ÿ¸ö½ÚµãµÄ×î´ó²¢·¢taskÊý£ºSPARK_WORKER_INSTANCES*SPARK_WORKER_CORES¡£
ÔÚYARNģʽÏ£º
1. ¼¯Èºtask²¢ÐжȣºSPARK_ EXECUTOR_INSTANCES* SPARK_EXECUTOR_CORES£»
2. ¼¯ÈºÄÚ´æ×ÜÁ¿£º(executor¸öÊý) * (SPARK_EXECUTOR_MEMORY+ spark.yarn.executor.memoryOverhead) +(SPARK_DRIVER_MEMORY+spark.yarn.driver.memoryOverhead)¡£
ÖØµãÇ¿µ÷£ºSpark¶ÔExecutorºÍDriver¶îÍâÌí¼Ó¶ÑÄÚ´æ´óС£¬Executor¶Ë£ºÓÉspark.yarn.executor.memoryOverheadÉèÖã¬Ä¬ÈÏÖµexecutorMemory * 0.07Óë384µÄ×î´óÖµ¡£Driver¶Ë£ºÓÉspark.yarn.driver.memoryOverheadÉèÖã¬Ä¬ÈÏÖµdriverMemory * 0.07Óë384µÄ×î´óÖµ¡£
ͨ¹ýµ÷ÕûÉÏÊö²ÎÊý£¬¿ÉÒÔÌá¸ß¼¯Èº²¢Ðжȣ¬ÈÃϵͳͬʱִÐеÄÈÎÎñ¸ü¶à£¬ÄÇô¶ÔÓÚÏàͬµÄÈÎÎñ£¬²¢ÐжȸßÁË£¬¿ÉÒÔ¼õÉÙÂÖѯ´ÎÊý¡£¾ÙÀý˵Ã÷£ºÈç¹ûÒ»¸östageÓÐ100task£¬²¢ÐжÈΪ50£¬ÄÇôִÐÐÍêÕâ´ÎÈÎÎñ£¬ÐèÒªÂÖѯÁ½´Î²ÅÄÜÍê³É£¬Èç¹û²¢ÐжÈΪ100£¬ÄÇôһ´Î¾Í¿ÉÒÔÁË¡£
µ«ÊÇÔÚ×ÊÔ´ÏàͬµÄÇé¿ö£¬²¢ÐжȸßÁË£¬ÏàÓ¦µÄExecutorÄÚ´æ¾Í»á¼õÉÙ£¬ËùÒÔÐèÒª¸ù¾Ýʵ¼Êʵ¿öе÷ÄÚ´æºÍcore¡£´ËÍ⣬SparkÄܹ»·Ç³£ÓÐЧµÄÖ§³Ö¶Ìʱ¼äÈÎÎñ£¨ÀýÈ磺200ms£©£¬ÒòΪ»á¶ÔËùÓеÄÈÎÎñ¸´ÓÃJVM£¬ÕâÑùÄܼõСÈÎÎñÆô¶¯µÄÏûºÄ£¬StandaloneģʽÏ£¬core¿ÉÒÔÔÊÐí1-2±¶ÓÚÎïÀícoreµÄÊýÁ¿½øÐг¬Åä¡£
¡¾SparkÈÎÎñÊýÁ¿µ÷Õû¡¿
SparkµÄÈÎÎñÊýÓÉstageÖÐµÄÆðʼµÄËùÓÐRDDµÄpartitionÖ®ºÍÊýÁ¿¾ö¶¨£¬ËùÒÔÐèÒªÁ˽âÿ¸öRDDµÄpartitionµÄ¼ÆËã·½·¨¡£ÒÔSparkÓ¦ÓôÓHDFS¶ÁÈ¡Êý¾ÝΪÀý£¬HadoopRDDµÄpartitionÇзַ½·¨ÍêÈ«¼Ì³ÐÓÚMapReduceÖеÄFileInputFormat£¬¾ßÌåµÄpartitionÊýÁ¿ÓÉHDFSµÄ¿é´óС¡¢mapred.min.split.sizeµÄ´óС¡¢ÎļþµÄѹËõ·½Ê½µÈ¶à¸öÒòËØ¾ö¶¨£¬ÏêÇéÐèÒª²Î¼ûFileInputFormatµÄ´úÂë¡£
¡¾SparkÄÚ´æµ÷ÓÅ¡¿
ÄÚ´æÓÅ»¯ÓÐÈý¸ö·½ÃæµÄ¿¼ÂÇ£º¶ÔÏóËùÕ¼ÓõÄÄڴ棬·ÃÎʶÔÏóµÄÏûºÄÒÔ¼°À¬»ø»ØÊÕËùÕ¼ÓõĿªÏú¡£
1. ¶ÔÏóËùÕ¼Äڴ棬ÓÅ»¯Êý¾Ý½á¹¹
Spark ĬÈÏʹÓÃJavaÐòÁл¯¶ÔÏó£¬ËäÈ»Java¶ÔÏóµÄ·ÃÎÊËٶȸü¿ì£¬µ«ÆäÕ¼ÓõĿռäͨ³£±ÈÆäÄÚ²¿µÄÊôÐÔÊý¾Ý´ó2-5±¶¡£ÎªÁ˼õÉÙÄÚ´æµÄʹÓ㬼õÉÙJavaÐòÁл¯ºóµÄ¶îÍ⿪Ïú£¬ÏÂÃæÁоÙһЩSpark¹ÙÍø£¨http://spark.apache.org/docs/latest/tuning.html#tuning-data-structures£©ÌṩµÄ·½·¨¡£
£¨1£©Ê¹ÓöÔÏóÊý×éÒÔ¼°ÔʼÀàÐÍ£¨primitive type£©Êý×éÒÔÌæ´úJava»òÕßScala¼¯ºÏÀࣨcollection class)¡£fastutil ¿âΪÔʼÊý¾ÝÀàÐÍÌṩÁ˷dz£·½±ãµÄ¼¯ºÏÀ࣬ÇÒ¼æÈÝJava±ê×¼Àà¿â¡£
£¨2£©¾¡¿ÉÄܵرÜÃâ²ÉÓú¬ÓÐÖ¸ÕëµÄǶÌ×Êý¾Ý½á¹¹À´±£´æÐ¡¶ÔÏó¡£
£¨3£©¿¼ÂDzÉÓÃÊý×ÖID»òÕßö¾ÙÀàÐÍÒÔ±ãÌæ´úStringÀàÐ͵ÄÖ÷¼ü¡£
£¨4£©Èç¹ûÄÚ´æÉÙÓÚ32GB£¬ÉèÖÃJVM²ÎÊý-XX:+UseCom-pressedOopsÒԱ㽫8×Ö½ÚÖ¸ÕëÐ޸ijÉ4×Ö½Ú¡£Óë´Ëͬʱ£¬ÔÚJava 7»òÕ߸ü¸ß°æ±¾£¬ÉèÖÃJVM²ÎÊý-XX:+UseC-----ompressedStringsÒÔ±ã²ÉÓÃ8±ÈÌØÀ´±àÂëÿһ¸öASCII×Ö·û¡£
2. ÄÚ´æ»ØÊÕ
£¨1£©»ñÈ¡ÄÚ´æÍ³¼ÆÐÅÏ¢£ºÓÅ»¯ÄÚ´æÇ°ÐèÒªÁ˽⼯ȺµÄÄÚ´æ»ØÊÕÆµÂÊ¡¢ÄÚ´æ»ØÊպķÑʱ¼äµÈÐÅÏ¢£¬¿ÉÒÔÔÚspark-env.shÖÐÉèÖÃSPARK_JAVA_OPTS=¡°-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps $ SPARK_JAVA_OPTS¡±À´»ñȡÿһ´ÎÄÚ´æ»ØÊÕµÄÐÅÏ¢¡£
£¨2£©ÓÅ»¯»º´æ´óС£ºÄ¬ÈÏÇé¿öSpark²ÉÓÃÔËÐÐÄڴ棨spark.executor.memory£©µÄ60%À´½øÐÐRDD»º´æ¡£Õâ±íÃ÷ÔÚÈÎÎñÖ´ÐÐÆÚ¼ä£¬ÓÐ40%µÄÄÚ´æ¿ÉÒÔÓÃÀ´½øÐжÔÏó´´½¨¡£Èç¹ûÈÎÎñÔËÐÐËٶȱäÂýÇÒJVMƵ·±½øÐÐÄÚ´æ»ØÊÕ£¬»òÕßÄÚ´æ¿Õ¼ä²»×㣬ÄÇô½µµÍ»º´æ´óСÉèÖÿÉÒÔ¼õÉÙÄÚ´æÏûºÄ£¬¿ÉÒÔ½µµÍspark.storage.memoryFractionµÄ´óС¡£
3. Ƶ·±GC»òÕßOOM
Õë¶ÔÕâÖÖÇé¿ö£¬Ê×ÏÈҪȷ¶¨ÏÖÏóÊÇ·¢ÉúÔÚDriver¶Ë»¹ÊÇÔÚExecutor¶Ë£¬È»ºóÔÚ·Ö±ð´¦Àí¡£
Driver¶Ë£ºÍ¨³£ÓÉÓÚ¼ÆËã¹ý´óµÄ½á¹û¼¯±»»ØÊÕµ½Driver¶Ëµ¼Ö£¬ÐèÒªµ÷´óDriver¶ËµÄÄÚ´æ½â¾ö£¬»òÕß½øÒ»²½¼õÉÙ½á¹û¼¯µÄÊýÁ¿¡£
Executor¶Ë£º
£¨1£©ÒÔÍⲿÊý¾Ý×÷ΪÊäÈëµÄStage£ºÕâÀàStageÖгöÏÖGCͨ³£ÊÇÒòΪÔÚMap²à½øÐÐmap-side-combineʱ£¬ÓÉÓÚgroup¹ý¶àÒýÆðµÄ¡£½â¾ö·½·¨¿ÉÒÔÔö¼ÓpartitionµÄÊýÁ¿£¨¼´taskµÄÊýÁ¿£©À´¼õÉÙÿ¸ötaskÒª´¦ÀíµÄÊý¾Ý£¬À´¼õÉÙGCµÄ¿ÉÄÜÐÔ¡£
£¨2£©ÒÔshuffle×÷ΪÊäÈëµÄStage£ºÕâÀàStageÖгöÏÖGCµÄͨ³£ÔÒòÒ²ÊǺÍshuffleÓйأ¬³£¼ûÔÒòÊÇijһ¸ö»ò¶à¸ögroupµÄÊý¾Ý¹ý¶à£¬Ò²¾ÍÊÇËùνµÄÊý¾ÝÇãб£¬×î¼òµ¥µÄ°ì·¨¾ÍÊÇÔö¼ÓshuffleµÄtaskÊýÁ¿£¬±ÈÈçÔÚSparkSQLÖÐÉèÖÃSET spark.sql.shuffle.partitions=400£¬Èç¹ûµ÷´óshuffleµÄtaskÎÞ·¨½â¾öÎÊÌ⣬˵Ã÷ÄãµÄÊý¾ÝÇãбºÜÑÏÖØ£¬Ä³Ò»¸ögroupµÄÊý¾ÝÔ¶Ô¶´óÓÚÆäËûµÄgroup£¬ÐèÒªÄãÔÚÒµÎñÂß¼ÉϽøÐе÷Õû£¬Ô¤ÏÈÕë¶Ô½Ï´óµÄgroup×öµ¥¶À´¦Àí¡£
¡¾ÐÞ¸ÄÐòÁл¯¡¿
ʹÓÃKryoÐòÁл¯£¬ÒòΪKryoÐòÁл¯½á¹û±ÈJava±ê×¼ÐòÁл¯¸üС£¬¸ü¿ìËÙ¡£¾ßÌå·½·¨£ºspark-default.conf ÀïÉèÖÃspark.serializerΪorg.apache.spark.serializer.KryoSerializer ¡£
²Î¿¼¹Ù·½Îĵµ£¨http://spark.apache.org/docs/latest/tuning.html#summary£©£º¶ÔÓÚ´ó¶àÊý³ÌÐò¶øÑÔ£¬²ÉÓÃKryo¿ò¼ÜÒÔ¼°ÐòÁл¯Äܹ»½â¾öÐÔÄÜÏà¹ØµÄ´ó²¿·ÖÎÊÌâ¡£
¡¾Spark ´ÅÅ̵÷ÓÅ¡¿
ÔÚ¼¯Èº»·¾³Ï£¬Èç¹ûÊý¾Ý·Ö²¼²»¾ùÔÈ£¬Ôì³É½Úµã¼äÈÎÎñ·Ö²¼²»¾ùÔÈ£¬Ò²»áµ¼Ö½ڵã¼äÔ´Êý¾Ý²»±ØÒªµÄÍøÂç´«Ê䣬´Ó¶ø´ó´óÓ°ÏìϵͳÐÔÄÜ£¬ÄÇô¶ÔÓÚ´ÅÅ̵÷ÓÅ×îºÃÏȽ«Êý¾Ý×ÊÔ´·Ö²¼¾ùÔÈ¡£³ý´ËÖ®Í⣬»¹¿ÉÒÔ¶ÔÔ´Êý¾Ý×öÒ»¶¨µÄ´¦Àí£º
1. ÔÚÄÚ´æÔÊÐí·¶Î§ÄÚ£¬½«Æµ·±·ÃÎʵÄÎļþ»òÊý¾ÝÖÃÓÚÄÚ´æÖУ»
2. Èç¹û´ÅÅ̳äÔ££¬¿ÉÒÔÊʵ±Ôö¼ÓÔ´Êý¾ÝÔÚHDFSÉϵı¸·ÝÊýÒÔ¼õÉÙÍøÂç´«Ê䣻
3. SparkÖ§³Ö¶àÖÖÎļþ¸ñʽ¼°Ñ¹Ëõ·½Ê½£¬¸ù¾Ý²»Í¬µÄÓ¦Óû·¾³½øÐкÏÀíµÄÑ¡Ôñ¡£Èç¹ûÿ´Î¼ÆËãÖ»ÐèÒªÆäÖеÄij¼¸ÁУ¬¿ÉÒÔʹÓÃÁÐʽÎļþ¸ñʽ£¬ÒÔ¼õÉÙ´ÅÅÌI/O£¬³£ÓõÄÁÐʽÓÐparquet¡¢rcfile¡£Èç¹ûÎļþ¹ý´ó£¬½«ÔÎļþѹËõ¿ÉÒÔ¼õÉÙ´ÅÅÌI/O£¬ÀýÈ磺gzip¡¢snappy¡¢lzo¡£
¡¾ÆäËû¡¿
¹ã²¥±äÁ¿£¨broadcast£©
µ±taskÖÐÐèÒª·ÃÎÊÒ»¸öDriver¶Ë½Ï´óµÄÊý¾Ýʱ£¬¿ÉÒÔͨ¹ýʹÓÃSparkContextµÄ¹ã²¥±äÁ¿À´¼õСÿһ¸öÈÎÎñµÄ´óСÒÔ¼°ÔÚ¼¯ÈºÖÐÆô¶¯×÷ÒµµÄÏûºÄ¡£²Î¿¼¹Ù·½Îĵµhttp://spark.apache.org/docs/latest/tuning.html#broadcasting-large-variables¡£
¿ªÆôÍÆ²â»úÖÆ
ÍÆ²â»úÖÆºó£¬Èç¹û¼¯ÈºÖУ¬Ä³Ò»Ì¨»úÆ÷µÄ¼¸¸ötaskÌØ±ðÂý£¬ÍƲâ»úÖÆ»á½«ÈÎÎñ·ÖÅäµ½ÆäËû»úÆ÷Ö´ÐУ¬×îºóSpark»áѡȡ×î¿ìµÄ×÷Ϊ×îÖÕ½á¹û¡£
ÔÚspark-default.conf ÖÐÌí¼Ó£ºspark.speculation true
ÍÆ²â»úÖÆÓëÒÔϼ¸¸ö²ÎÊýÓйأº
1. spark.speculation.interval 100£º¼ì²âÖÜÆÚ£¬µ¥Î»ºÁÃ룻
2. spark.speculation.quantile 0.75£ºÍê³ÉtaskµÄ°Ù·Ö±ÈʱÆô¶¯ÍƲ⣻
3. spark.speculation.multiplier 1.5£º±ÈÆäËûµÄÂý¶àÉÙ±¶Ê±Æô¶¯ÍƲ⡣
×ܽá
SparkϵͳµÄÐÔÄܵ÷ÓÅÊÇÒ»¸öºÜ¸´ÔӵĹý³Ì£¬ÐèÒª¶ÔSparkÒÔ¼°HadoopÓÐ×ã¹»µÄ֪ʶ´¢±¸¡£´ÓÒµÎñÓ¦ÓÃÆ½Ì¨£¨Spark£©¡¢´æ´¢£¨HDFS£©¡¢²Ù×÷ϵͳ¡¢Ó²¼þµÈ¶à¸ö²ãÃæ¶¼»á¶ÔÐÔÄܲúÉúºÜ´óµÄÓ°Ïì¡£½èÖúÓÚ¶àÖÖÐÔÄÜ¼à¿Ø¹¤¾ß£¬ÎÒÃÇ¿ÉÒԺܺõØÁ˽âϵͳµÄÐÔÄܱíÏÖ£¬²¢¸ù¾ÝÉÏÃæ½éÉܵľÑé½øÐе÷Õû¡£ |