Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÚVPCÖз¢²¼ºÍÔËÐÐÒ»¸öAmazon EMR¼¯Èº£¨Ò»£©
 
×÷ÕߣºDaniel Garrison À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-7-13
  2564  次浏览      27
 

ÎÒÃÇÒѾ­Íê³ÉÁ˶ÔHadoopÐèÇóµÄ̽Ë÷£¬²¢¿´µ½ÁËVPCÓëEC2´îÅäÆðÀ´ÈÃEMR·þÎñ¸ü¾ßЧÂʵIJÙ×÷¡£Í¨¹ý½¨Á¢Ò»¸öеÄVPC£¬ÎÒÃÇ¿´µ½Ä¬ÈÏÉèÖÃÈçºÎÌṩͨÐÅ£¬ÒÔ¼°¹¹³ÉHadoop¼¯ÈºµÄʵÀýÐèÇ󣬲¢Í¨¹ýÐÞ¸ÄÕâЩÐÐΪÀ´Ó°ÏìEMR¡£

ʱÏ£¬VPCÒѾ­³ÉΪ·¢²¼Amazon EC2ʵÀýµÄĬÈÏ»·¾³£¬Òò´ËÕÆÎÕAmazon VPC»·¾³ÖеÄAmazon EMR¼¯ÈºÔËÐÐÔ­ÀíÖÁ¹ØÖØÒª¡£ÔÚÕâÆª²©ÎÄÖУ¬ÎÒÃǽ«ÅªÇå³þΪʲôÐèÒªÔÚEC2 VPC»·¾³ÖÐÔËÐÐHadoop¼¯Èº¡£È»ºó£¬ÎÒÃǽ«½¨Á¢Ò»¸öеÄVPC»·¾³£¬²¢·¢²¼Ò»¸öEMR¼¯Èº¡£ÕâÊÇÕâϵÁв©ÎĵĵÚÒ»²¿·Ö£¬µÚ¶þ²¿·ÖÎÒÃǽ«Ïêϸ½éÉÜÈçºÎ¶¨ÖÆ»¯DNS¡£

HadoopͨÐÅÐèÇó£¨1£©

ͨ¹ý Hadoop wikiÎÒÃÇÁ˽⵽£º¡°ÎªÁËÈÃHadoopÕý³£¹¤×÷£¬ËùÓеĻúÆ÷±ØÐë¿ÉÒÔÏ໥¸ÐÖª£¬²¢Ï໥ͨÐÅ£»Òò´Ë£¬ËüÃÇÐèÒªÒ»¸öʶ±ð»úÖÆ£¬´Ó¶øÆäËüÖ÷»ú¿ÉÒÔ¿ìËÙÕÒµ½ËüÃÇ¡£¡±ÔÚEMRÖУ¬Ö÷»ú¼äµÄ¸ÐÖªºÍͨÐÅͨ¹ýÉèÖà VPCÖеÄDNS½â¾ö·½°¸ºÍDNSÖ÷»úÃû³ÆÍê³É¡£Í¨¹ýÆôÓÃÕâЩĬÈÏÉèÖã¬ÄãµÄʵÀý»á±»×Ô¶¯µØÖ¸ÅäÖ÷»úÃû³Æ¡ª¡ªÊ¹Óù«¹²ºÍ˽ÓÐIPµØÖ·£¨Í¬Ê±£¬Ê¹Óá°-¡±Ìæ»»¡°.¡±£¬±ÈÈçip-10-128-8-1.ec2.internal£©¡£´Ó¶ø£¬ÊµÀý¿ÉÒÔͨ¹ý EMR-managed security groupsʵÏÖͨÐÅ¡£

Hadoop ͨѶÐèÇó£¨2£©

ÔÚHadoop 1ÖУ¬Í¨ÐÅÐèÇóÊǷdz£¼òµ¥µÄ£¬Í¬Ê±´ó²¿·ÖÇé¿öÒ²ÊǷdz£¿íÈݵġ£¾Ù¸öÀý×Ó£¬Hadoop 1ÖУ¬Èç¹ûHDFS DataNodes²»¿ÉÒÔ±»NameNode½âÎö³ÉÒ»¸öÈ«³ÆÓòÃû£¬ÄÇôËü½«±»»Ø¹öµ½Ò»¸öIPµØÖ·£¬Í¨ÐżÌÐø¡£Òò´Ë£¬³ýÏ»·¾³ÖгöÏÖÎÊÌ⣬һ¸öÅäÖõõ±µÄHadoop 1»·¾³ºÜÉÙ±ÀÀ£¡£

Ëæ×ÅHadoopÏîÄ¿Öð½¥³ÉÊ죬¸ü½¡×³µÄ Hadoop°²È«Ä£ÐÍÐèÇóÒ²Öð½¥ÌáÉý¡£Kerberosʶ±ð¡¢ÍøÂç¼ÓÃܵȹ¦Äܱ»¼ÓÈëHadoopÒÔ°ïÖú×èÖ¹½Úµã±»Ìí¼Óµ½Ò»¸ö¼¯Èº£¬±ÈÈçÏÂÃæÕâ¸öHDFSÅäÖòÎÊý£º

dfs.namenode.datanode.registration.ip-hostname-check

ÔÚHadoop 2ÖУ¬²»¿ÉÒÔ±»NameNode½âÎöµÄDataNode½«»á±»¾Ü¾øÍ¨ÐÅ£º

org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode

±¾ÖÊÉÏ£¬Hadoop 1Éý¼¶µ½Hadoop 2ºó²¢Ã»ÓÐÒýÆð¼¼ÊõÒªÇóµÄ¸Ä±ä¡£ÎªÁ˱£Ö¤Õý³£ÔËÐУ¬½Úµã¼ä»¹ÊÇÐèÒªÏ໥¸ÐÖª²¢Í¨ÐÅ¡£µ«ÊÇÔÚHadoop 2ÖУ¬Éý¼¶ÒýÆðµÄ¸Ä±äºÜ¿ÉÄÜ»áÔì³É²»Êʵ±µÄ»·¾³ÅäÖ㬴ӶøÔì³ÉHDFSÒòΪUnknownHost¡¢ConnectionRefusedºÍNoRouteToHostÒì³£ÎÞ·¨¼ÓÔØÎļþ¡£

VPCÖеÄÉèÖÃ

EMRλÓÚVPCÖ®Í⣬ͬʱ»¹ÐèÒªÔÚÈκÎʱ¼ä¿ÉÒÔÓëËùÓнڵ㽻»¥¡£¼¯ÈºÖеÄʵÀýÐèÒª¶¨Î»£¨Í¨¹ýDNS£©ÒÔ¼°ÓëEMRºÍAmazon S3·þÎñ¶Ëµã½»»¥£¨Ê¹ÓÿíËɵݲȫ×éºÍÍøÂçACLs£©¡£ÒÔÉÏÕâЩ½«°ïÖúµ½¼¯ÈºµÄ´´½¨¡¢CloudWatch¼àÊÓ¡¢ÈÕ־ͬ²½ÒÔ¼°Ìá½»´¦Àí¡£Î¢ÁËÍê³ÉÕâЩ£¬EMR¼¯Èº»¹ÐèÒªÒ»¸ö InernetÍø¹Ø¡£

ĬÈÏ·ÓÉ»òÕß·ÇVGWsµÄÇé¿öÏ£¬NATʵÀý½«²»±»Ö§³Ö¡£ÔÚÕâÁ½ÖÖ³¡¾°³¢ÊÔ·¢²¼Ò»¸ö¼¯Èº½«µ¼Ö¼¯ÈºÖÕÖ¹»òÕß´íÎó£º

"The subnet configuration was invalid: Cannot find route to
InternetGateway in main RouteTable rtb-036bc666 for vpc vpc-a33690c6"

´ËÍ⣬ÔÚʹÓÃÍøÂçACL×ÓÍøÖз¢²¼µÄEMR¼¯Èº¿ÉÄÜ»á´ò¶ÏÕâ¸öͨÐÅ¡£ÕâÖ÷ÒªÒòΪ ACLsÊÇÎÞ״̬µÄ£¬ÊäÈëºÍÊä³ö¹æÔò±ØÐë±»Ã÷È·µÄ¹æ¶¨£¬²»Ïñ EMR-managed security groupsÖÐʹÓõÄÓÐ״̬¹æÔò¡£Èç¹ûEMR¼¯Èº·¢²¼ÔÚÒ»¸öʹÓÃÁËACLµÄ×ÓÍøÖУ¬²¢ÇÒûÓÐÌṩ×ã¹»µÄ·ÃÎÊ£¬ÄÇô¼¯Èº½«±»ÖÕÖ¹¡£Èç¹ûÄã±ØÐëʹÓÃACL£¬ÄÇôÇëʹÓà EMR-managed security groups×÷ΪIPµØÖ·ºÍ¶Ë¿Ú·¶Î§µ¼º½ÒÔÂú×ãʵÀýµÄͨÐÅ¡£

Àí½âDNS½â¾ö·½°¸ºÍDNSÖ÷»úÃû³Æ

ÔÚVPCÖУ¬½ÚµãÖ®¼ä±ØÐëҪʹÓÃDNS²éÕÒÒÔ×öµ½Ï໥¶¨Î»¡£·ñÔò£¬ÀàËÆYarn ResourceManagerºÍHDFS NameNodeÕâÑùÖÁ¹Ø½ôÒªµÄÊØ»¤½ø³Ì½«³öÏÖÎÊÌâ¡£¼øÓÚ¼¯ÈºÖÐÃû³Æ½âÎöµÄÖØÒªÐÔ£¬Èκ௧öÊÓµÄDNSÎÊÌ⽫ºÄ·Ñ´óÁ¿µÄ¹ÜÀíʱ¼ä¡£

ÎÞÂÛÄãµÄʵÀýÊÇ·ñ×Ô¶¯ÊÕµ½Ò»¸öÍêÈ«ÃèÊöµÄDNSÃû³Æ£¬DNSÖ÷»úÃû³Æ¶¼¿ÉÒÔÔÚVPC¿ØÖÆÖÐÉèÖá£Èç¹ûÄãʹÓõÄÊÇAmazonProvidedDNS×÷ΪDNS·þÎñÆ÷µÄĬÈÏÅäÖ㬽ûÖ¹Õâ¸öÉèÖÃͬÑù×èÖ¹ÄãµÄʵÀý½âÎöÈκÎλÓÚVPC×ÓÍøCIDR·¶Î§µÄÖ÷»úÃû³Æ¡£

ÏÂÃæÕâЩ´úÂëչʾÁËÔÚ¿ªÆôDNSÖ÷»úÃû³ÆµÄʵÀýÉϲéÕÒÁíÒ»¸öVPCÖеÄʵÀý£º

[ec2-user@ip-192-168-128-5 ~]$ nslookup 192.168.128.6
Server: 192.168.0.2
Address: 192.168.0.2#53

Non-authoritative answer:
6.128.168.192.in-addr.arpa name = ip-192-168-128-6.us-west-2.compute.internal.

Authoritative answers can be found from:

[ec2-user@ip-192-168-128-5 ~]$ nslookup ip-192-168-128-6.us-west-2.compute.internal
Server: 192.168.0.2
Address: 192.168.0.2#53

Non-authoritative answer:
Name: ip-192-168-128-6.us-west-2.compute.internal
Address: 192.168.128.6

[ec2-user@ip-192-168-128-5 ~]$

ÔÚ½ûÓÃÁËDNSÖ÷»úÃû³ÆÖ§³Ö¡¢ÖØÆôºóÔËÐÐÏàͬµÄ²éÕÒ£º

aws ec2 modify-vpc-attribute --vpc-id vpc-a33690c6 --no-enable-dns-hostnames

[ec2-user@ip-192-168-128-5 ~]$ nslookup 192.168.128.6
Server: 192.168.0.2
Address: 192.168.0.2#53

** server can't find 6.128.168.192.in-addr.arpa.: NXDOMAIN

[ec2-user@ip-192-168-128-5 ~]$ nslookup ip-192-168-128-6.us-west-2.compute.internal
Server: 192.168.0.2
Address: 192.168.0.2#53

** server can't find ip-192-168-128-6.us-west-2.compute.internal: NXDOMAIN

ÔÚÕâ¸öÇé¿öÏ£¬Õý·´Ïò²éÕÒ¶¼ÎÞ·¨½øÐС£×¢Ò⣬ÍⲿµÄ²éÕÒÈÔÈ»¿ÉÒÔ½øÐС£

[ec2-user@ip-192-168-128-5 ~]$
[ec2-user@ip-192-168-128-5 ~]$ nslookup <a href="http://www.google.com">www.google.com</a>
Server: 192.168.0.2
Address: 192.168.0.2#53

Non-authoritative answer:
Name: <a href="http://www.google.com">www.google.com</a>
Address: 216.58.216.132

¹Ø±ÕDNS½âÎö»á×èÖ¹ÎÒÃǽâÎöÈκβéÕÒ¡£

aws ec2 modify-vpc-attribute --vpc-id vpc-a33690c6 --no-enable-dns-support

[ec2-user@ip-172-31-15-59 ~]$ nslookup google.com


;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

µ±¹Ø¼ü±£»¤½ø³ÌÓöµ½DNSÎÊÌâʱ£¬ËüÃǽ«ÎÞ·¨Æô¶¯¡£ÔÚÈ«²¿¹Ø¼üϵͳûÓÐÍêÈ«Õý³£ÔËÐеÄÇé¿öÏ£¬EMR²»ÔÊÐí¼¯Èº¹¤×÷¡£ÏÂÃæÕâ¸öÈÕ־˵Ã÷ÁËÕâ¸öÎÊÌ⣺

SHUTDOWN_MSG: Shutting down ResourceManager at java.net.UnknownHostException: 
ip-192-168-128-13.hadoop.local: ip-192-168-128-13.hadoop.local: Name or service not known

SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException:

ip-192-168-128-13.hadoop.local: ip-192-168-128-13.hadoop.local

Õâ¸öÎÊÌâÖ÷ÒªÓÉÓÚDNS´íÎóµ¼Öµļ¯ÈºÖÕÖ¹£¬´íÎóÀàÐÍÈçÏ£º

"On the master instance (i-b3b1e3bf), after bootstrap actions were run Hadoop failed to launch"

ÁíÒ»¸öʾÀý£º

On 2 slave instances (including i-92f8aa9e and i-8cf8aa80), after bootstrap actions were run Hadoop failed to launch.

EMR¼Ù¶¨ÄãµÄEC2ʵÀý½«·ÖÅäĬÈϵÄÄÚ²¿Ö÷»úÃû³Æ£¨ec2.internal»òÕßregion.compute.internal£©»òÕßÒ»¸öIPµØÖ· £¨Èç¹ûÄãµÄVPCÅäÖÃÖÐÔÊÐíDNSÖ÷»úÃû³Æ£©¡£µ±Æô¶¯Ò»¸ö¶¨ÖÆÓòÃûʱ£¬Hadoop 1½«²»»á²úÉú´íÎó£¬ÒòΪÔÚHadoop 1ÖУ¬Ã»Óй涨Æô¶¯Ç°½Úµã±ØÐëʹÓÃÓòÃû½âÎö¡£

ÔÚHadoop 2ÖУ¬Ê¹Óö¨ÖÆ»¯ÓòÃû½«µ¼Ö¼¯ÈºÅäÖÃÖµ£¨Ö÷»úÃû³ÆÌî³ä£©²»ÄÜÕýÈ·µÄ½âÎö¡£·´¹ýÀ´£¬¼¯Èº»áÒòÊØ»¤½ø³ÌÆô¶¯Éèʧ°Ü¶øÖÕÖ¹¡£ÕâÒ²¾ÍÊÇ˵£¬Èç¹û×Ô¶¨ÒåÖµ¿ÉÒÔ±»½âÎö£¬Hadoop 2¼¯Èº¾Í¿ÉÒÔʹÓö¨ÖÆÓòÃû¡£Í¨¹ýʹÓÃDNS·þÎñÆ÷ºÍ VPC£¬ÎÒÃÇ¿ÉÒÔ±ã½ÝµØÊµÏÖÕâ¸ö²Ù×÷¡£

ΪEMR½¨Á¢Ò»¸öVPC

µ½´ËΪֹ£¬ÎÒÃǶÔHadoopºÍEMRµÄ¹²Í¬ÐèÇóÒѾ­ÓÐÁËÒ»¶¨µÄÀí½â£¬ÎÒÃÇ¿ÉÒÔ½¨Á¢Ò»¸öVPCÀ´·¢²¼¼¯Èº¡£Õâ¸ö²Ù×÷Äã¿ÉÒÔͨ¹ý¿ØÖÆÌ¨ÖеÄVPC wizardʵÏÖ£¬»òÕßÊÇͨ¹ýÏÂÃæµÄCLI²½Öè¡£

¿ªÆôÒ»¸ö/24µÄVPC£¬²¢Ê¹ÓÃÒ»¸ö/28µÄ×ÓÍø¡£

aws ec2 create-vpc --cidr-block 10.20.30.0/24 { "Vpc": { "InstanceTenancy": "default", "State": "pending",
 "VpcId": "vpc-055ef660", "CidrBlock": "10.20.30.0/24", "DhcpOptionsId": "dopt-a8c1c9ca" } } 

½¨Á¢Ò»¸öÓµÓÐ×ÓÍøµÄVPC£¬²¢ÎªÆäÖ¸¶¨Ò»¸öVPC IDºÍÒ»¸ö×ÓÍø·¶Î§¡£ÔÚÕâ¸öʾÀýÖУ¬ÎÒÃǽ«Ê¹ÓÃ10.20.30.0/28¡£

aws ec2 create-subnet --vpc-id vpc-055ef660 --cidr-block 10.20.30.0/28

×ÓÍøIDºÍIPµØÖ·ÊýÁ¿½«»á±»·µ»Ø£¬×¢ÒâÕâЩ¡£

{
"Subnet": {
"VpcId": "vpc-055ef660",
"CidrBlock": "10.20.30.0/28",
"State": "pending",
"AvailabilityZone": "us-west-2a",
"SubnetId": "subnet-907af9f5",
"AvailableIpAddressCount": 11
}
}

ÐèÒªÒ»¸ö¹«¹²InternetÍø¹ØºÍÒ»¸ö·ÓÉ±í¡£ÔÚÕâ֮ǰ£¬ÎÒÃÇÐèÒª·¢ËÍÒ»¸ö´øÓÐVPC IDµÄcreate-route-tableÃüÁî¡£ÏÂÒ»²½£¬ÎÒÃǽ«Í¨¹ýcreate-route½¨Á¢Ä¬ÈÏ·ÓÉ¡£

aws ec2 create-route-table --vpc-id vpc-055ef660

ÕâÀïÐèҪעÒâ·µ»ØµÄ·ÓɱíID¡£

{
"RouteTable": {
"Associations": [],
"RouteTableId": "rtb-4640f623",
"VpcId": "vpc-055ef660",
"PropagatingVgws": [],
"Tags": [],
"Routes": [
{
"GatewayId": "local",
"DestinationCidrBlock": "10.20.30.0/24",
"State": "active",
"Origin": "CreateRouteTable"
}
]
}
}

ÒòΪEMRµÄÐèÇó£¬ÕâÀïÐèÒª½¨Á¢Ò»¸öÐµĻ¥ÁªÍøÍø¹Ø¡£

aws ec2 create-internet-gateway

{ 
"InternetGateway": {
"Tags": [],
"InternetGatewayId": "igw-24469141",
"Attachments": []
}
}

×¢ÒâÕâÀï·µ»ØµÄ»¥ÁªÍøÍø¹ØID¡£ÏÂÒ»²½£¬ÎÒÃǽ«»¥ÁªÍøÍø¹Ø¼Óµ½VPCÉÏ£º

{ 
"InternetGateway": {
"Tags": [],
"InternetGatewayId": "igw-24469141",
"Attachments": []
}
}

aws ec2 attach-internet-gateway --internet-gateway-id igw-24469141 --vpc-id vpc-055ef660

ͨ¹ý֮ǰ»ñµÃµÄÎïÁªÍøÍø¹ØIDºÍ·ÓɱíID£¬ÎÒÃǽ«»¥ÁªÍøÍø¹Ø×÷ΪĬÈÏ·ÓÉʹÓá£

aws ec2 create-route --route-table-id rtb-e743f582 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-24469141

ÎÒÃÇÐèÒª¼ì²éDNSÖ÷»úÃû³ÆÊÇ·ñ±»ÔÊÐí¡£Èç¹û²»ÔÊÐí£¬ÄÇô´ò¿ª¡£

aws ec2 describe-vpc-attribute  --vpc-id vpc-055ef660 --attribute  enableDnsHostnames
{
"VpcId": "vpc-055ef660",
"EnableDnsHostnames": {
"Value": false
}
}

aws ec2 modify-vpc-attribute --vpc-id vpc-055ef660 --enable-dns-hostnames

×îÖÕ£¬ÎÒÃÇÒѾ­×öºÃÁËÔÚVPCÖз¢²¼¼¯ÈºµÄËùÓÐÏȾö×¼±¸¡£ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏÂÃüÁîÀ´·¢²¼Ò»¸ö²âÊÔ¼¯Èº£¬²¢Ê¹ÓÃËü×öword-cout¡£ÌáÐÑ£º²âÊÔʱ¼ÇµÃ½«ÏÂÃæ´úÂëÖеÄÊä³öµØÖ·»»³ÉÄã×Ô¼ºµÄS3 bucket¡£

aws emr create-cluster --steps Type=STREAMING,Name='Streaming Program&',
ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,
-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,
-output,s3://<mybucket>/wordcount/output] --ec2-attributes 
SubnetId=subnet-907af9f5 --ami-version 3.3.2 --instance-groups
 InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge 
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge --auto-terminate

¼¯Èº±»·µ»Ø¡£

{
ClusterId": "j-2TEFHMDR3LXWD"
}

¼¸·ÖÖӺ󣬼ì²éÄãµÄ¼¯ÈºÊÇ·ñÒѾ­Íê³ÉÁËword cout×÷Òµ¡£

aws emr describe-cluster --cluster-id j-2TEFHMDR3LXWD --query Cluster.Status.StateChangeReason.Message
"Steps completed"
   
2564 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ