±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜKudu
³£¼ûµÄ¼¸¸öÓ¦Óó¡¾°ÒÔ¼°ÈçºÎ°²×°Ç°ÌáºÍ×¼±¸£¬½øÐл·¾³ËµÃ÷ÓëÅäÖã¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
kudu½éÉܼ°°²×°ÅäÖÃ
Kudu ÊÇÒ»¸öÕë¶Ô Apache Hadoop ƽ̨¶ø¿ª·¢µÄÁÐʽ´æ´¢¹ÜÀíÆ÷¡£Kudu ¹²Ïí Hadoop
Éú̬ϵͳӦÓõij£¼û¼¼ÊõÌØÐÔ: ËüÔÚ commodity hardware£¨ÉÌÆ·Ó²¼þ£©ÉÏÔËÐУ¬horizontally
scalable£¨Ë®Æ½¿ÉÀ©Õ¹£©£¬²¢Ö§³Ö highly available£¨¸ß¿ÉÓã©ÐÔ²Ù×÷¡£´ËÍ⣬Kudu
»¹Óиü¶àÓÅ»¯µÄÌØµã£º
OLAP ¹¤×÷µÄ¿ìËÙ´¦Àí¡£
Óë MapReduce£¬Spark ºÍÆäËû Hadoop Éú̬ϵͳ×é¼þ¼¯³É¡£
Óë Apache Impala£¨incubating£©½ôÃܼ¯³É£¬Ê¹ÆäÓë Apache Parquet
Ò»ÆðʹÓà HDFS ³ÉΪһ¸öºÜºÃµÄ¿É±äµÄÌæ´ú·½°¸¡£
Ç¿´ó¶øÁé»îµÄÒ»ÖÂÐÔÄ£ÐÍ£¬ÔÊÐíÄú¸ù¾Ýÿ¸ö per-request£¨ÇëÇóÑ¡Ôñ£©Ò»ÖÂÐÔÒªÇ󣬰üÀ¨ strict--
serializable£¨Ñϸñ¿ÉÐòÁл¯£©Ò»ÖÂÐÔµÄÑ¡Ïî¡£
Õë¶ÔͬʱÔËÐÐ˳ÐòºÍËæ»ú¹¤×÷¸ºÔصÄÇé¿öÐÔÄܺܺá£
ʹÓà Cloudera Manager ÇáËÉά»¤ºÍ¹ÜÀí¡£
High availability£¨¸ß¿ÉÓÃÐÔ£©¡£Tablet server ºÍ Master ʹÓÃ
Raft Consensus Algorithm À´±£Ö¤½ÚµãµÄ -- ¸ß¿ÉÓã¬È·±£Ö»ÒªÓÐÒ»°ëÒÔÉϵĸ±±¾¿ÉÓ㬸Ã
tablet ±ã¿ÉÓÃÓÚ¶Áд¡£ÀýÈ磬Èç¹û 3 ¸ö¸±±¾ÖÐÓÐ 2 ¸ö»ò 5 ¸ö¸±±¾ÖÐµÄ 3 ¸ö¿ÉÓã¬Ôò¸Ã
tablet ¿ÉÓ᣼´Ê¹ÔÚ leader tablet ³öÏÖ¹ÊÕϵÄÇé¿öÏ£¬¶ÁÈ¡¹¦ÄÜÒ²¿ÉÒÔͨ¹ý read-only£¨Ö»¶ÁµÄ£©follower
tablets À´½øÐзþÎñ¡£
½á¹¹»¯Êý¾ÝÄ£ÐÍ¡£
ͨ¹ý½áºÏÕâЩËùÓеÄÌØÐÔ£¬Kudu µÄÄ¿±êÊÇÖ§³ÖÓ¦ÓüÒÍ¥ÖÐÄÇЩÄÑÒÔÔÚµ±Ç°Hadoop ´æ´¢¼¼ÊõÖÐʵÏÖµÄÓ¦Óá£Kudu
³£¼ûµÄ¼¸¸öÓ¦Óó¡¾°:
1.ʵʱ¸üеÄÓ¦Ó᣸ոյ½´ïµÄÊý¾Ý¾ÍÂíÉÏÒª±»ÖÕ¶ËÓû§Ê¹Ó÷ÃÎʵ½¡£
2.ʱ¼äÐòÁÐÏà¹ØµÄÓ¦Óã¬ÐèҪͬʱ֧³Ö£º
¸ù¾Ýº£Á¿ÀúÊ·Êý¾Ý²éѯ¡£
±ØÐë·Ç³£¿ìµØ·µ»Ø¹ØÓÚµ¥¸öʵÌåµÄϸÁ£¶È²éѯ¡£
3.ʵʱԤ²âÄ£Ð͵ÄÓ¦Óã¬Ö§³Ö¸ù¾ÝËùÓÐÀúÊ·Êý¾ÝÖÜÆÚµØ¸üÐÂÄ£ÐÍ¡£
4.ÓйØÕâЩºÍÆäËû·½°¸µÄ¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄ Example Use
Cases¡£
Kudu-Impala ¼¯³ÉÌØÐÔ
CREATE/ALTER/DROP TABLE
Impala Ö§³ÖʹÓà Kudu ×÷Ϊ³Ö¾Ã²ãÀ´ creating£¨´´½¨£©£¬altering£¨Ð޸ģ©ºÍ
dropping£¨É¾³ý£©±í¡£ÕâЩ±í×ñÑÓë Impala ÖÐÆäËû±í¸ñÏàͬµÄ Internal / external£¨ÄÚ²¿
/ Íⲿ£©·½·¨£¬ÔÊÐíÁé»îµÄÊý¾Ý²É¼¯ºÍ²éѯ¡£
INSERT
Êý¾Ý¿ÉÒÔʹÓÃÓëÄÇЩʹÓà HDFS »ò HBase ³Ö¾ÃÐÔµÄÈÎºÎÆäËû Impala ±íÏàͬµÄÓï·¨²åÈë
Impala ÖÐµÄ Kudu ±í¡£
UPDATE / DELETE
Impala Ö§³Ö UPDATE ºÍ DELETE SQL ÃüÁîÖðÐлòÅú´¦ÀíÐÞ¸Ä Kudu ±íÖеÄÒÑÓеÄÊý¾Ý¡£Ñ¡Ôñ
SQL ÃüÁîµÄÓï·¨ÓëÏÖÓбê×¼¾¡¿ÉÄܼæÈÝ¡£³ýÁ˼òµ¥ DELETE »ò UPDATE ÃüÁîÖ®Í⣬»¹¿ÉÒÔ
FROM ÔÚ×Ó²éѯÖÐÖ¸¶¨´øÓÐ×Ó¾äµÄ¸´ÔÓÁ¬½Ó¡£
Flexible Partitioning£¨Áé»î·ÖÇø£©
Óë Hive Öеıí·ÖÇøÀàËÆ£¬Kudu ÔÊÐíÄúͨ¹ý hash »ò·¶Î§¶¯Ì¬Ô¤·Ö¸î³ÉÔ¤¶¨ÒåÊýÁ¿µÄ tablets£¬ÒÔ±ãÔÚ¼¯ÈºÖоùÔÈ·Ö²¼Ð´ÈëºÍ²éѯ¡£Äú¿ÉÒÔͨ¹ýÈÎÒâÊýÁ¿µÄ
primary key£¨Ö÷¼ü£©ÁУ¬ÈÎÒâÊýÁ¿µÄ hashes ºÍ¿ÉÑ¡µÄ list of split rows
À´½øÐзÖÇø¡£²Î¼ûģʽÉè¼Æ¡£
Parallel Scan£¨²¢ÐÐɨÃ裩
ΪÁËÔÚÏÖ´úÓ²¼þÉÏʵÏÖ×î¸ßµÄÐÔÄÜ£¬Impala ʹÓÃµÄ Kudu ¿Í»§¶Ë¿ÉÒÔ¿ç¶à¸ö tablets
ɨÃè¡£
High-efficiency queries£¨¸ßЧ²éѯ£©
ÔÚ¿ÉÄܵÄÇé¿öÏ£¬Impala ½«Î½´ÊÆÀ¹ÀÏÂÍÆµ½ Kudu£¬ÒÔ±ãʹν´ÊÆÀ¹ÀΪ¾¡¿ÉÄܽӽüÊý¾Ý¡£ÔÚÐí¶àÈÎÎñÖУ¬²éѯÐÔÄÜÓë
Parquet Ï൱¡£
ÓйØÊ¹Óà Impala ²éѯ´æ´¢ÔÚ Kudu ÖеÄÊý¾ÝµÄ¸ü¶àÏêϸÐÅÏ¢£¬Çë²ÎÔÄ Impala Îĵµ¡£
¸ÅÄîºÍÊõÓï
Columnar Data Store£¨ÁÐʽÊý¾Ý´æ´¢£©
Kudu ÊÇÒ»¸ö columnar data store£¨ÁÐʽÊý¾Ý´æ´¢£©¡£ÁÐʽÊý¾Ý´æ´¢ÔÚÇ¿ÀàÐÍÁÐÖС£ÓÉÓÚ¼¸¸öÔÒò£¬Í¨¹ýÊʵ±µÄÉè¼Æ£¬Kudu
¶Ô analytical£¨·ÖÎö£©»ò warehousing£¨Êý¾Ý²Ö¿â£©¹¤×÷»á·Ç³£³öÉ«¡£
Read Efficiency£¨¸ßЧ¶ÁÈ¡£©
¶ÔÓÚ·ÖÎö²éѯ£¬ÔÊÐí¶ÁÈ¡µ¥¸öÁлò¸ÃÁеÄÒ»²¿·ÖͬʱºöÂÔÆäËûÁУ¬ÕâÒâζ×ÅÄú¿ÉÒÔÔÚ´ÅÅÌÉ϶ÁÈ¡¸üÉÙ¿éÀ´Íê³É²éѯ¡£Óë»ùÓÚÐеĴ洢Ïà±È£¬¼´Ê¹Ö»·µ»Ø¼¸ÁеÄÖµ£¬ÈÔÐèÒª¶ÁÈ¡ÕûÐÐÊý¾Ý¡£
Data Compression£¨Êý¾ÝѹËõ£©
ÓÉÓÚ¸ø¶¨µÄÁÐÖ»°üº¬Ò»ÖÖÀàÐ͵ÄÊý¾Ý£¬»ùÓÚģʽµÄѹËõ±ÈѹËõ»ìºÏÊý¾ÝÀàÐÍ£¨ÔÚ»ùÓÚÐеĽâ¾ö·½°¸ÖÐʹÓã©Ê±¸üÓÐЧ¼¸¸öÊýÁ¿¼¶¡£½áºÏ´ÓÁжÁÈ¡Êý¾ÝµÄЧÂÊ£¬Ñ¹ËõÔÊÐíÄúÔÚ´Ó´ÅÅ̶ÁÈ¡¸üÉٵĿéʱÍê³É²éѯ¡£Çë²ÎÔÄ
Êý¾ÝѹËõ
Table£¨±í£©
Ò»ÕÅ table ÊÇÊý¾Ý´æ´¢ÔÚ Kudu µÄλÖᣱí¾ßÓÐ schema ºÍÈ«¾ÖÓÐÐòµÄ primary
key£¨Ö÷¼ü£©¡£table ±»·Ö³É³ÆÎª tablets µÄ segments¡£
Tablet
Ò»¸ö tablet ÊÇÒ»ÕÅ table Á¬ÐøµÄ segment£¬ÓëÆäËüÊý¾Ý´æ´¢ÒýÇæ»ò¹ØÏµÐÍÊý¾Ý¿âÖеÄ
partition£¨·ÖÇø£©ÏàËÆ¡£¸ø¶¨µÄ tablet ÈßÓൽ¶à¸ö tablet ·þÎñÆ÷ÉÏ£¬²¢ÇÒÔÚÈκθø¶¨µÄʱ¼äµã£¬ÆäÖÐÒ»¸ö¸±±¾±»ÈÏΪÊÇ
leader tablet¡£Èκθ±±¾¶¼¿ÉÒÔ¶Ô¶ÁÈ¡½øÐзþÎñ£¬²¢ÇÒдÈëʱÐèÒªÔÚΪ tablet ·þÎñµÄÒ»×é
tablet serverÖ®¼ä´ï³ÉÒ»ÖÂÐÔ¡£
Tablet Server
Ò»¸ö tablet server ´æ´¢ tablet ºÍΪ tablet Ïò client Ìṩ·þÎñ¡£¶ÔÓÚ¸ø¶¨µÄ
tablet£¬Ò»¸ö tablet server ³äµ± leader£¬ÆäËû tablet server
³äµ±¸Ã tablet µÄ follower ¸±±¾¡£Ö»ÓÐ leader ·þÎñдÇëÇó£¬È»¶ø leader
»ò followers Ϊÿ¸ö·þÎñÌṩ¶ÁÇëÇó¡£leader ʹÓà Raft Consensus Algorithm
À´½øÐÐÑ¡¾Ù ¡£Ò»¸ö tablet server ¿ÉÒÔ·þÎñ¶à¸ö tablets £¬²¢ÇÒÒ»¸ö tablet
¿ÉÒÔ±»¶à¸ö tablet servers ·þÎñ×Å¡£
Master
¸Ã master ±£³Ö¸ú×ÙËùÓÐµÄ tablets£¬tablet servers£¬Catalog Table
ºÍÆäËüÓ뼯ȺÏà¹ØµÄ metadata¡£ÔÚ¸ø¶¨µÄʱ¼äµã£¬Ö»ÄÜÓÐÒ»¸öÆð×÷ÓÃµÄ master£¨Ò²¾ÍÊÇ leader£©¡£Èç¹ûµ±Ç°µÄ
leader Ïûʧ£¬ÔòÑ¡¾Ù³öÒ»¸öÐ嵀 master£¬Ê¹Óà Raft Consensus Algorithm
À´½øÐÐÑ¡¾Ù¡£master »¹Ðµ÷¿Í»§¶ËµÄ metadata operations£¨ÔªÊý¾Ý²Ù×÷£©¡£ÀýÈ磬µ±´´½¨Ð±íʱ£¬¿Í»§¶ËÄÚ²¿½«ÇëÇó·¢Ë͸ø
master¡£ master ½«Ð±íµÄÔªÊý¾ÝдÈë catalog table£¬²¢Ðµ÷ÔÚ tablet
server ÉÏ´´½¨ tablet µÄ¹ý³Ì¡£ËùÓÐ master µÄÊý¾Ý¶¼´æ´¢ÔÚÒ»¸ö tablet ÖУ¬¿ÉÒÔ¸´ÖƵ½ËùÓÐÆäËûºòÑ¡µÄ
master¡£tablet server ÒÔÉ趨µÄ¼ä¸ôÏò master ·¢³öÐÄÌø£¨Ä¬ÈÏֵΪÿÃëÒ»´Î£©¡£
Raft Consensus Algorithm
Kudu ʹÓà Raft consensus algorithm ×÷Ϊȷ±£³£¹æ tablet ºÍ
master Êý¾ÝµÄÈÝ´íÐÔºÍÒ»ÖÂÐÔµÄÊֶΡ£Í¨¹ý Raft£¬tablet µÄ¶à¸ö¸±±¾Ñ¡¾Ù³ö leader£¬Ëü¸ºÔð½ÓÊÜÒÔ¼°¸´ÖƵ½
follower ¸±±¾µÄдÈë¡£Ò»µ©Ð´ÈëµÄÊý¾ÝÔÚ´ó¶àÊý¸±±¾Öг־û¯ºó£¬¾Í»áÏò¿Í»§È·ÈÏ¡£¸ø¶¨µÄÒ»×é N
¸±±¾£¨Í¨³£Îª 3 »ò 5 ¸ö£©Äܹ»½ÓÊÜ×î¶à(N - 1)/2 ´íÎóµÄ¸±±¾µÄдÈë¡£
Catalog Table£¨Ä¿Â¼±í£©
catalog table ÊÇ Kudu µÄ metadata£¨ÔªÊý¾ÝÖУ©µÄÖÐÐÄλÖá£Ëü´æ´¢ÓйØ
tables ºÍ tablets µÄÐÅÏ¢¡£¸Ã catalog table£¨Ä¿Â¼±í£©¿ÉÄܲ»»á±»Ö±½Ó¶ÁÈ¡»òдÈë¡£Ïà·´£¬ËüÖ»ÄÜͨ¹ý¿Í»§¶Ë
API Öй«¿ªµÄÔªÊý¾Ý²Ù×÷·ÃÎÊ¡£catalog table ´æ´¢Á½ÀàÔªÊý¾Ý:
Tables
table schemas, locations, and states£¨±í½á¹¹£¬Î»Öà ºÍ״̬£©
Tablets
ÏÖÓÐ tablet µÄÁÐ±í£¬Ã¿¸ö tablet µÄ¸±±¾ËùÔÚÄÄЩ tablet server£¬tablet
µÄµ±Ç°×´Ì¬ÒÔ¼°¿ªÊ¼ºÍ½áÊøµÄ keys£¨¼ü£©¡£
Logical Replication£¨Âß¼¸´ÖÆ£©
Kudu ¸´ÖƲÙ×÷£¬²»ÊÇ´ÅÅÌÉϵÄÊý¾Ý¡£Õâ±»³ÆÎª logical replication£¨Âß¼¸´ÖÆ£©£¬¶ø²»ÊÇ
physical replication£¨ÎïÀí¸´ÖÆ£©¡£ÕâÓм¸¸öÓŵã :
ËäÈ» insert£¨²åÈ룩ºÍ update£¨¸üУ©È·ÊµÍ¨¹ýÍøÂç´«ÊäÊý¾Ý£¬deletes£¨É¾³ý£©²»ÐèÒªÒÆ¶¯ÈκÎÊý¾Ý¡£delete£¨É¾³ý£©²Ù×÷±»·¢Ë͵½Ã¿¸ö
tablet server£¬ËüÔÚ±¾µØÖ´ÐÐɾ³ý¡£
ÎïÀí²Ù×÷£¬Èç compaction£¬²»ÐèҪͨ¹ý Kudu µÄÍøÂç´«ÊäÊý¾Ý¡£ÕâÓëʹÓà HDFS µÄ´æ´¢ÏµÍ³²»Í¬£¬ÆäÖÐ
blocks £¨¿é£©ÐèҪͨ¹ýÍøÂç´«ÊäÒÔÂú×ãËùÐèÊýÁ¿µÄ¸±±¾¡£
tablet ²»ÐèÒªÔÚͬһʱ¼ä»òÏàͬµÄʱ¼ä±íÉÏÖ´ÐÐѹËõ£¬»òÕßÔÚÎïÀí´æ´¢²ãÉϱ£³Öͬ²½¡£Õâ»á¼õÉÙÓÉÓÚѹËõ»ò´óÁ¿Ð´Èë¸ºÔØ¶øµ¼ÖÂËùÓÐ
tablet server ͬʱÓöµ½¸ßÑӳٵĻú»á¡£
¼Ü¹¹¸ÅÊö
ÏÂͼÏÔʾÁËÒ»¸ö¾ßÓÐÈý¸ö master ºÍ¶à¸ö tablet server µÄ Kudu ¼¯Èº£¬Ã¿¸ö·þÎñÆ÷¶¼Ö§³Ö¶à¸ö
tablet¡£Ëü˵Ã÷ÁËÈçºÎʹÓà Raft ¹²Ê¶À´ÔÊÐí master ºÍ tablet server
µÄ leader ºÍ follow¡£´ËÍ⣬tablet server ¿ÉÒÔ³ÉΪijЩ tablet µÄ
leader£¬Ò²¿ÉÒÔÊÇÆäËû tablet µÄ follower¡£leader ÒÔ½ðÉ«ÏÔʾ£¬¶ø follower
ÔòÏÔʾΪÀ¶É«¡£

ʹÓó¡¾°
Streaming Input with Near Real Time Availability£¨¾ßÓнüʵʱ¿ÉÓÃÐÔµÄÁ÷ÊäÈ룩
Êý¾Ý·ÖÎöÖеÄÒ»¸ö¹²Í¬ÌôÕ½¾ÍÊÇÐÂÊý¾Ý¿ìËÙ¶ø²»¶ÏµØµ½´ï£¬Í¬ÑùµÄÊý¾ÝÐèÒª¿¿½üʵʱµÄ¶ÁÈ¡£¬É¨ÃèºÍ¸üС£Kudu
ͨ¹ý¸ßЧµÄÁÐʽɨÃèÌṩÁË¿ìËÙ²åÈëºÍ¸üеÄÇ¿´ó×éºÏ£¬´Ó¶øÔÚµ¥¸ö´æ´¢²ãÉÏʵÏÖÁËʵʱ·ÖÎöÓÃÀý¡£
Time-series application with widely varying access
patterns£¨¾ßÓй㷺±ä»¯µÄ·ÃÎÊģʽµÄʱ¼äÐòÁÐÓ¦Óã©
time-series£¨Ê±¼äÐòÁУ©Ä£Ê½ÊǸù¾ÝÆä·¢Éúʱ¼ä×éÖ¯ºÍ¼üÈëÊý¾ÝµãµÄģʽ¡£Õâ¿ÉÒÔÓÃÓÚËæ×Åʱ¼äµÄÍÆÒÆµ÷²éÖ¸±êµÄÐÔÄÜ£¬»òÕ߸ù¾Ý¹ýÈ¥µÄÊý¾Ý³¢ÊÔÔ¤²âδÀ´µÄÐÐΪ¡£ÀýÈ磬ʱ¼äÐòÁеĿͻ§Êý¾Ý¿ÉÒÔÓÃÓÚ´æ´¢¹ºÂòµã»÷Á÷ÀúÊ·²¢Ô¤²âδÀ´µÄ¹ºÂò£¬»òÓɿͻ§Ö§³Ö´ú±íʹÓá£ËäÈ»ÕâЩ²»Í¬ÀàÐ͵ķÖÎöÕýÔÚ·¢Éú£¬²åÈëºÍ¸ü»»Ò²¿ÉÄܵ¥¶ÀºÍÅúÁ¿µØ·¢Éú£¬²¢ÇÒÁ¢¼´¿ÉÓÃÓÚ¶ÁÈ¡¹¤×÷¸ºÔØ¡£Kudu
¿ÉÒÔÓà scalable £¨¿ÉÀ©Õ¹£©ºÍ efficient £¨¸ßЧµÄ£©·½Ê½Í¬Ê±´¦ÀíËùÓÐÕâЩ·ÃÎÊģʽ¡£ÓÉÓÚһЩÔÒò£¬Kudu
·Ç³£ÊʺÏʱ¼äÐòÁеŤ×÷¸ºÔØ¡£Ëæ×Å Kudu ¶Ô»ùÓÚ hash µÄ·ÖÇøµÄÖ§³Ö£¬½áºÏÆä¶Ô¸´ºÏ row keys£¨Ðмü£©µÄ±¾µØÖ§³Ö£¬½«Ðí¶à·þÎñÆ÷ÉϵıíÉèÖóɺܼòµ¥£¬¶ø²»»áÔÚʹÓ÷¶Î§·ÖÇøÊ±Í¨³£¹Û²ìµ½¡°hotspotting£¨Èȵ㣩¡±µÄ·çÏÕ¡£Kudu
µÄÁÐʽ´æ´¢ÒýÇæÔÚÕâÖÖÇé¿öÏÂÒ²ÊÇÓÐÒæµÄ£¬ÒòΪÐí¶àʱ¼äÐòÁй¤×÷¸ºÔØÖ»¶ÁÈ¡Á˼¸ÁУ¬¶ø²»ÊÇÕûÐС£ ¹ýÈ¥£¬Äú¿ÉÄÜÐèҪʹÓöà¸öÊý¾Ý´æ´¢À´´¦Àí²»Í¬µÄÊý¾Ý·ÃÎÊģʽ¡£ÕâÖÖ×ö·¨Ôö¼ÓÁËÓ¦ÓóÌÐòºÍ²Ù×÷µÄ¸´ÔÓÐÔ£¬²¢Öظ´ÁËÊý¾Ý£¬Ê¹ËùÐè´æ´¢Á¿Ôö¼ÓÁËÒ»±¶£¨»ò¸üÔ㣩¡£Kudu
¿ÉÒÔ±¾µØºÍ¸ßЧµØ´¦ÀíËùÓÐÕâЩ·ÃÎÊģʽ£¬¶øÎÞÐ轫¹¤×÷Ð¶ÔØµ½ÆäËûÊý¾Ý´æ´¢¡£
Predictive Modeling£¨Ô¤²â½¨Ä££©
Êý¾Ý¿ÆÑ§¼Ò¾³£´Ó´óÁ¿Êý¾ÝÖпª·¢Ô¤²âѧϰģÐÍ¡£Ä£ÐͺÍÊý¾Ý¿ÉÄÜÐèÒªÔÚѧϰ·¢Éúʱ»òËæ×Ž¨Ä£Çé¿öµÄ±ä»¯¶ø¾³£¸üлòÐ޸ġ£´ËÍ⣬¿ÆÑ§¼Ò¿ÉÄÜÏë¸Ä±äÄ£ÐÍÖеÄÒ»¸ö»ò¶à¸öÒòËØ£¬¿´¿´Ëæ×Åʱ¼äµÄÍÆÒÆ»á·¢Éúʲô¡£ÔÚ
HDFS Öиüд洢ÔÚÎļþÖеĴóÁ¿Êý¾ÝÊÇ×ÊÔ´Ãܼ¯Ð͵ģ¬ÒòΪÿ¸öÎļþÐèÒª±»ÍêÈ«ÖØÐ´¡£ÔÚ Kudu£¬¸üз¢ÉúÔÚ½üºõʵʱ¡£¿ÆÑ§¼Ò¿ÉÒÔµ÷ÕûÖµ£¬ÖØÐÂÔËÐвéѯ£¬²¢ÒÔÃë»ò·ÖÖÓ¶ø²»ÊǼ¸Ð¡Ê±»ò¼¸ÌìË¢ÐÂͼÐΡ£´ËÍ⣬Åú´¦Àí»òÔöÁ¿Ëã·¨¿ÉÒÔËæÊ±ÔÚÊý¾ÝÉÏÔËÐУ¬¾ßÓнӽüʵʱµÄ½á¹û¡£
Combining Data In Kudu With Legacy Systems£¨½áºÏ Kudu
ÓëÒÅÁôϵͳµÄÊý¾Ý£©
¹«Ë¾´Ó¶à¸öÀ´Ô´Éú³ÉÊý¾Ý²¢½«Æä´æ´¢ÔÚ¸÷ÖÖϵͳºÍ¸ñʽÖС£ÀýÈ磬ÄúµÄһЩÊý¾Ý¿ÉÄÜ´æ´¢ÔÚ Kudu£¬Ò»Ð©ÔÚ´«Í³µÄ
RDBMS ÖУ¬Ò»Ð©ÔÚ HDFS ÖеÄÎļþÖС£Äú¿ÉÒÔʹÓà Impala ·ÃÎʺͲéѯËùÓÐÕâЩԴºÍ¸ñʽ£¬¶øÎÞÐè¸ü¸Ä¾É°æÏµÍ³¡£
°²×°Ç°ÌáºÍ×¼±¸
Ó²¼þ£º
һ̨»òÕß¶ą̀»úÆ÷ÅÜkudu-master¡£½¨ÒéÅÜÒ»¸ömaster(ÎÞÈÝ´í»úÖÆ)¡¢Èý¸ömaster(ÔÊÐíÒ»¸ö½ÚµãÔËÐгö´í)»òÕßÎå¸ömaster(ÔÊÐíÁ½¸ö½Úµã³ö´í)¡£
һ̨»òÕß¶ą̀»úÆ÷ÅÜkudu-tserver¡£µ±ÐèҪʹÓø±±¾£¬ÖÁÉÙÐèÒªÈý¸ö½ÚµãÔËÐÐkudu-tserver·þÎñ¡£
²Ù×÷ϵͳ(Ö÷ÒªÊÇlinuxϵͳ£¬windowsϵͳ²»Ö§³Ö)£º
RHEL 6, RHEL 7, CentOS 6, CentOS 7, Ubuntu 14.04
(Trusty), Ubuntu 16.04 (Xenial), Debian 8 (Jessie),
or SLES 12.
Äں˺ÍÎļþϵͳ֧³Ö hole punching Ñ¡Ïî¡£
ntp·þÎñ¡£
xfs or ext4 formatted drives
´æ´¢£º
¾¡Á¿Ê¹ÓùÌ̬´æ´¢£¬½«ÏÔÖøÌá¸ßkuduÐÔÄÜ¡£
¹ÜÀí
Èç¹ûÄãʹÓõÄÊÇCDH£¬ÐèÒªCloudera Manager 5.4.3¼°ÒÔÉϵİ汾¡£
»·¾³ËµÃ÷
os£ºcentos 6.7
kudu°æ±¾£ºkudu-1.2.0+cdh5.10.0(ÕâÀïʹÓõÄÊÇcdh5.10µÄkudu£¬¶ÔÓ¦°æ±¾Îª1.2£¬ÏÂÔØµØÖ·£ºhttp://archive.cloudera.com/kudu/redhat/6/x86_64/kudu/5.10.0/RPMS/x86_64/)
×é¼þ°²ÅÅÈçÏ£º

°²×°ntp·þÎñ
# cat /etc/ntp.conf
restrict default kod nomodify notrap nopeer
noquery¡¡¡¡#¾Ü¾øIPV4Óû§¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
restrict -6 default kod nomodify notrap nopeer
noquery #¾Ü¾øipV6Óû§
restrict 127.0.0.1¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
restrict -6 ::1¡¡
restrict 172.31.217.0 mask 255.255.255.0 nomodify
notrap¡¡#±¾µØÍø¶ÎÊÚȨ·ÃÎÊ
server 172.31.217.173 #Ö¸¶¨Éϼ¶¸üзþÎñÆ÷
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
server 2.centos.pool.ntp.org ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
server 172.31.217.173 # local clock ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
fudge 172.31.217.173 stratum 10
# /etc/init.d/ntpd start ¸÷¸ö½Úµã¼ì²éÆô¶¯³É¹¦£¬·ñÔòÆô¶¯kuduÏà¹Ø·þÎñ»á±¨´í |
°²×°kudu
°²×°kudu-master
°²×°
# yum install
kudu kudu-master kudu-client0 kudu-client-devel
-y |
»ù±¾ÅäÖÃ
# cat /etc/kudu/conf/master.gflagfile
# Do not modify these two lines. If you wish to
change these variables,
# modify them in /etc/default/kudu-master.
--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/opt/kudu/master
--fs_data_dirs=/opt/kudu/ma |
ÉèÖÃȨÏÞ
# mkdir /opt/kudu
&& chown kudu:kudu /opt/kudu |
Æô¶¯
# /etc/init.d/kudu-master
start |
°²×°kudu-tserver
°²×°
# yum install
kudu kudu-tserver kudu-client0 kudu-client-devel
-y |
»ù±¾ÅäÖÃ
# cat /etc/kudu/conf/tserver.gflagfile
# Do not modify these two lines. If you wish to
change these variables,
# modify them in /etc/default/kudu-tserver.
--fromenv=rpc_bind_addresses
--fromenv=log_dir |
ÉèÖÃȨÏÞ
# mkdir /opt/kudu
&& chown kudu:kudu /opt/kudu |
Æô¶¯
# /etc/init.d/kudu-tserver
start |
ͼÐνçÃæ
ͨ¹ýmaster¶ËµÄweb½çÃæ¹Û²ìÔËÐÐÇé¿ö£ºhttp://172.31.217.173:8051


¿ÉÒÔ¿´µ½ËùÓÐ×é¼þ¶¼ÒѰ²×°Íê±ÏÁË¡£
|