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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Apache Eagle¡ªeBay¿ªÔ´·Ö²¼Ê½ÊµÊ±HadoopÊý¾Ý°²È«·½°¸
 
À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-12-10
  2024  次浏览      27
 

ÈÕǰ£¬eBay¹«Ë¾Â¡ÖØÐû²¼ÕýʽÏò¿ªÔ´Òµ½çÍÆ³ö·Ö²¼Ê½ÊµÊ±°²È«¼à¿ØÒý·½°¸¡ª¡ª Apache Eagle£¬¸ÃÏîÄ¿ÒÑÕýʽ¼ÓÈëApache ³ÆÎª·õ»¯Æ÷ÏîÄ¿¡£Apache EagleÌṩһÌ׸ßЧ·Ö²¼Ê½µÄÁ÷ʽ²ßÂÔÒýÇæ£¬¾ßÓиßʵʱ¡¢¿ÉÉìËõ¡¢Ò×À©Õ¹¡¢½»»¥ÓѺõÈÌØµã£¬Í¬Ê±¼¯³É»úÆ÷ѧϰ¶ÔÓû§ÐÐΪ½¨Á¢ProfileÒÔʵÏÖʵʱÖÇÄÜʵʱµØ±£»¤HadoopÉú̬ϵͳÖдóÊý¾ÝµÄ°²È«¡£

±³¾°

Ëæ×Å´óÊý¾ÝµÄ·¢Õ¹£¬Ô½À´Ô½¶àµÄ³É¹¦ÆóÒµ»òÕß×éÖ¯¿ªÊ¼²ÉÈ¡Êý¾ÝÇý¶¯ÉÌÒµµÄÔË×÷ģʽ¡£ÔÚeBay£¬ÎÒÃÇÓµÓÐÊýÍòÃû¹¤³Ìʦ¡¢·ÖÎöʦºÍÊý¾Ý¿ÆÑ§¼Ò£¬ËûÃÇÿÌì·ÃÎÊ·ÖÎöÊýPB¼¶µÄÊý¾Ý£¬ÒÔΪÎÒÃǵÄÓû§´øÀ´ÎÞÓëÂױȵÄÌåÑé¡£ÔÚÈ«ÇòÒµÎñÖУ¬ÎÒÃÇÒ²¹ã·ºµØÀûÓú£Á¿´óÊý¾ÝÀ´Á¬½ÓÎÒÃÇÊýÒÔÒڼƵÄÓû§¡£

½üÄêÀ´£¬HadoopÒѾ­Öð½¥³ÉΪ´óÊý¾Ý·ÖÎöÁìÓò×îÊÜ»¶Ó­µÄ½â¾ö·½°¸£¬eBayÒ²Ò»Ö±ÔÚʹÓÃHadoop¼¼Êõ´ÓÊý¾ÝÖÐÍÚ¾ò¼ÛÖµ£¬ÀýÈ磬ÎÒÃÇͨ¹ý´óÊý¾ÝÌá¸ßÓû§µÄËÑË÷ÌåÑ飬ʶ±ðºÍÓÅ»¯¾«×¼¹ã¸æÍ¶·Å£¬³äʵÎÒÃǵIJúƷĿ¼£¬ÒÔ¼°Í¨¹ýµã»÷Á÷·ÖÎöÒÔÀí½âÓû§ÈçºÎʹÓÃÎÒÃǵÄÔÚÏßÊг¡Æ½Ì¨µÈ¡£

Ŀǰ£¬eBayµÄHadoop¼¯Èº×ܽڵãÊý¾Ý³¬¹ý10000¶à¸ö£¬´æ´¢ÈÝÁ¿³¬¹ý170PB£¬»îÔ¾Óû§³¬¹ý2000¶à¡£ÏÖÔÚÏà¹Ø¹æÄ£»¹ÔÚ²»¶ÏÔö³¤ÖУ¬Í¬Ê±ÎªÁËÖ§³Ö¶àÔª»¯ÐèÇó£¬ÎÒÃÇÒýÈëÔ½À´Ô½¶àÑùµÄÊý¾Ý´æ´¢ºÍ·ÖÎö·½°¸£¬±ÈÈçHive¡¢MapReduec¡¢Spark ºÍHBaseµÈ£¬ËæÖ®´øÀ´µÄ¹ÜÀíºÍ¼à¿ØµÄÌôÕ½Ô½À´Ô½ÑϾþ£¬Êý¾Ý°²È«ÎÊÌâÒàÊÇÆäÖÐ×îÖØÒªµÄÖ®Ò»¡£

´óÊý¾Ýʱ´ú£¬°²È«ÎÊÌ⿪ʼ±äµÃ¿ÕǰµÄ¹Ø¼ü£¬ÌرðeBay×÷ΪȫÇòÁìÏȵĵç×ÓÉÌÎñ¹«Ë¾£¬ÎÒÃDZØÐë±£Ö¤HadoopÖÐÓû§Êý¾ÝµÄ¾ø¶Ô°²È«¡£Í¨³£ÎÒÃǵݲȫ´ëÊ©¸ù¾ÝÈçϼ¸µã £º·ÃÎÊ¿ØÖÆ¡¢°²È«¸ôÀë¡¢Êý¾Ý·ÖÀà¡¢Êý¾Ý¼ÓÃÜÒÔ¼°ÊµÊ±Êý¾ÝÐÐΪ¼à¿Ø£¬È»¶ø¾­¹ý¹ã·ºµÄ³¢ÊÔºÍÑо¿£¬ÎÒÃÇÒâʶµ½Ã»ÓÐÈκÎÒѾ­´æÔڵIJúÆ·»òÕß½â¾ö·½°¸Äܹ»³ä·ÖÂú×ãÎÒÃÇÃæÁÙº£Á¿ÊµÊ±Êý¾ÝÁ÷ºÍ¶àÔª»¯ÓÃÀý³¡¾°ÏÂÊý¾ÝÐÐΪ¼à¿ØµÄÐèÇó¡£ÎªÁËÓâÔ½ÕâµÀºè¹µ£¬eBay¾ö¶¨´ÓÍ·¿ªÊ¼¹¹½¨Eagle¡£

Eagle ÊÇ¿ªÔ´·Ö²¼Ê½ÊµÊ±HadoopÊý¾Ý°²È«·½°¸£¬Ö§³ÖÊý¾ÝÐÐΪʵʱ¼à¿Ø£¬ÄÜÁ¢¼´¼à²â³ö¶ÔÃô¸ÐÊý¾ÝµÄ·ÃÎÊ»ò¶ñÒâµÄ²Ù×÷£¬²¢Á¢¼´²ÉȡӦ¶ÔµÄ´ëÊ©

ÎÒÃÇÏàÐÅEagle½«³ÉΪHadoopÊý¾Ý°²È«ÁìÓòµÄºËÐÄ×é¼þÖ®Ò»£¬Òò´ËÎÒÃǾö¶¨½«ËüµÄ¹¦ÄÜ·ÖÏí¸øÕû¸öÉçÇø¡£Ä¿Ç°ÎÒÃÇÒѾ­½«Eagle¾èÔù¸øApacheÈí¼þ»ù½ð»á×÷ΪApache ·õ»¯Æ÷ÏîÄ¿¿ªÔ´£¬ÆÚÍûÄܹ»Í¬¿ªÔ´ÉçÇøÒ»Í¬Ð­×÷¿ª·¢£¬Ê¹µÃEagle²»¶Ï·¢Õ¹×³´ó£¬¹²Í¬Âú×㿪ԴÉçÇøÖиü¹ã·ºµÄÐèÇó¡£

EagleµÄÊý¾ÝÐÐΪ¼à¿Ø·½°¸¿ÉÓÃÓÚÈçϼ¸ÀàµäÐͳ¡¾°£º

¼à¿ØHadoopÖеÄÊý¾Ý·ÃÎÊÁ÷Á¿

¼ì²â·Ç·¨ÈëÇÖºÍÎ¥·´°²È«¹æÔòµÄÐÐΪ

¼ì²â²¢·ÀÖ¹Ãô¸ÐÊý¾Ý¶ªÊ§ºÍ·ÃÎÊ

ʵÏÖ»ùÓÚ²ßÂÔµÄʵʱ¼ì²âºÍÔ¤¾¯

ʵÏÖ»ùÓÚÓû§ÐÐΪģʽµÄÒì³£Êý¾ÝÐÐΪ¼ì²â

Eagle¾ßÓÐÈçÏÂÌØµã£º

¸ßʵʱ£º ÎÒÃdzä·ÖÀí½â°²È«¼à¿ØÖи߶ÈʵʱºÍ¿ìËÙ·´Ó¦µÄÖØÒªÐÔ£¬Òò´ËÉè¼ÆEagleÖ®³õ£¬ÎÒÃǽ߾¡¿ÉÄܵØÈ·±£ÄÜÔÚÑÇÃë¼¶±ðʱ¼äÄÚ²úÉú¸æ¾¯£¬Ò»µ©×ۺ϶àÖÖÒòËØÈ·¶©ÎªÎ£ÏÕ²Ù×÷£¬Á¢¼´²ÉÈ¡´ëÊ©×èÖ¹·Ç·¨ÐÐΪ¡£

¿ÉÉìËõ£ºÔÚeBay Eagle ±»²¿ÊðÔÚ¶à¸ö´óÐÍHadoop¼¯ÈºÉÏ£¬ÕâЩ¼¯ÈºÓµÓÐÊý°ÙPBµÄÊý¾Ý£¬Ã¿ÌìÓÐ8ÒÚÒÔÉϵÄÊý¾Ý·ÃÎÊʱ¼ä£¬Òò´ËEagle±ØÐë¾ßÓд¦Àíº£Á¿ÊµÊ±Êý¾ÝµÄ¸ß¶È¿ÉÉìËõÄÜÁ¦¡£

¼òµ¥Ò×Ó㺿ÉÓÃÐÔÒ²ÊÇEagle²úÆ·µÄºËÐÄÉè¼ÆÔ­ÔòÖ®Ò»¡£Í¨¹ýEagleµÄSandbox£¬Ê¹ÓÃÕß½öÐèÊý·ÖÖÓ±ã¿ÉÒÔÉèÖúû·¾³²¢¿ªÊ¼³¢ÊÔ¡£ÎªÁËʹµÃÓû§ÌåÑ龡¿ÉÄܼòµ¥£¬ÎÒÃÇÄÚÖÃÁËÐí¶àºÜºÃµÄÀý×Ó£¬Ö»Ðè¼òµ¥µØµã»÷¼¸²½Êó±ê£¬±ã¿ÉÒÔÇáËɵØÍê³É²ßÂԵش´½¨ºÍÌí¼Ó¡£

Óû§Profile£ºEagle ÄÚÖÃÌṩ»ùÓÚ»úÆ÷ѧϰËã·¨¶ÔHadoopÖÐÓû§ÐÐΪϰ¹ß½¨Á¢Óû§ProfileµÄ¹¦ÄÜ¡£ÎÒÃÇÌṩ¶àÖÖĬÈϵĻúÆ÷ѧϰËã·¨¹©ÄãÑ¡ÔñÓÃÓÚÕë¶Ô²»Í¬HDFSÌØÕ÷¼¯½øÐн¨Ä££¬Í¨¹ýÀúÊ·ÐÐΪģÐÍ£¬Eagle¿ÉÒÔʵʱµØ¼ì²âÒì³£Óû§ÐÐΪ²¢²úÉúÔ¤¾¯¡£

¿ªÔ´£ºEagleÒ»Ö±¸ù¾Ý¿ªÔ´µÄ±ê×¼¿ª·¢£¬²¢¹¹½¨ÓÚÖî¶à´óÊý¾ÝÁìÓòµÄ¿ªÔ´²úÆ·Ö®ÉÏ£¬Òò´ËÎÒÃǾö¶¨ÒÔApacheÐí¿ÉÖ¤¿ªÔ´Eagle£¬ÒÔ»ØÀ¡ÉçÇø£¬Í¬Ê±Ò²ÆÚ´ý»ñµÃÉçÇøµÄ·´À¡¡¢Ð­×÷ÓëÖ§³Ö¡£

Eagle¸ÅÀÀ

Êý¾ÝÁ÷½ÓÈëºÍ´æ´¢(Data Collection and Storage)

EagleÌṩ¸ß¶È¿ÉÀ©Õ¹µÄ±à³ÌAPI£¬¿ÉÒÔÖ§³Ö½«ÈκÎÀàÐ͵ÄÊý¾ÝÔ´¼¯³Éµ½EagleµÄ²ßÂÔÖ´ÐÐÒýÇæÖС£ÀýÈ磬ÔÚEagle HDFS Éó¼ÆÊ¼þ(Audit)¼à¿ØÄ£¿éÖУ¬Í¨¹ýKafkaÀ´ÊµÊ±½ÓÊÕÀ´×ÔNamenode Log4j Appender »òÕß Logstash Agent ÊÕ¼¯µÄÊý¾Ý;ÔÚEagle Hive ¼à¿ØÄ£¿éÖУ¬Í¨¹ýYARN API ÊÕ¼¯ÕýÔÚÔËÐÐJobµÄHive ²éѯÈÕÖ¾£¬²¢±£Ö¤±È½Ï¸ßµÄ¿ÉÉìËõÐÔºÍÈÝ´íÐÔ¡£

Êý¾Ýʵʱ´¦Àí(Data Processing)

Á÷´¦ÀíAPI(Stream Processing API)¡£Eagle Ìṩ¶ÀÁ¢ÓÚÎïÀíÆ½Ì¨¶ø¸ß¶È³éÏóµÄÁ÷´¦ÀíAPI£¬Ä¿Ç°Ä¬ÈÏÖ§³ÖApache Storm£¬µ«ÊÇÒ²ÔÊÐíÀ©Õ¹µ½ÆäËûÈÎÒâÁ÷´¦ÀíÒýÇæ£¬±ÈÈçFlink »òÕß SamzaµÈ¡£¸Ã²ã³éÏóÔÊÐí¿ª·¢ÕßÔÚ¶¨Òå¼à¿ØÊý¾Ý´¦ÀíÂß¼­Ê±£¬ÎÞÐèÔÚÎïÀíÖ´Ðвã°ó¶¨ÈκÎÌØ¶¨Á÷´¦ÀíÆ½Ì¨£¬¶øÖ»Ðèͨ¹ý¸´Óá¢Æ´½ÓºÍ×é×°ÀýÈçÊý¾Ýת»»¡¢¹ýÂË¡¢ÍⲿÊý¾ÝJoinµÈ×é¼þ£¬ÒÔʵÏÖÂú×ãÐèÇóµÄDAG(ÓÐÏòÎÞ»·Í¼)£¬Í¬Ê±£¬¿ª·¢ÕßÒ²¿ÉÒÔºÜÈÝÒ×µØÒÔ±à³ÌµØ·½Ê½½«ÒµÎñÂß¼­Á÷³ÌºÍEagle ²ßÂÔÒýÇæ¿ò¼Ü¼¯³ÉÆðÀ´¡£Eagle¿ò¼ÜÄÚ²¿»á½«ÃèÊöÒµÎñÂß¼­µÄDAG±àÒë³Éµ×²ãÁ÷´¦Àí¼Ü¹¹µÄÔ­ÉúÓ¦Óã¬ÀýÈçApache Storm Topology µÈ£¬´ÓÊÂʵÏÖÆ½Ì¨µÄ¶ÀÁ¢¡£

ÒÔÏÂÊÇÒ»¸öEagleÈçºÎ´¦ÀíʼþºÍ¸æ¾¯µÄʾÀý£º

[java] view plaincopyStormExecutionEnvironment env =
 ExecutionEnvironmentFactory.getStorm(config); // storm env

StreamProducer producer = env.newSource(new KafkaSourcedSpoutProvider().getSpout(config)).renameOutputFields(1) // declare kafka source

.flatMap(new AuditLogTransformer()) // transform event

.groupBy(Arrays.asList(0)) // group by 1st field

.flatMap(new UserProfileAggregatorExecutor()); // aggregate one-hour data by user

.alertWithConsumer(¡°userActivity¡°,¡±userProfileExecutor¡°) // ML policy evaluate

env.execute(); // execute stream processing and alert

¸æ¾¯¿ò¼Ü(Alerting Framework)¡£Eagle ¸æ¾¯¿ò¼ÜÓÉÁ÷ÔªÊý¾ÝAPI¡¢²ßÂÔÒýÇæ·þÎñÌṩAPI¡¢²ßÂÔPartitioner API ÒÔ¼°Ô¤¾¯È¥ÖØ¿ò¼ÜµÈ×é³É:

Á÷ÔªÊý¾ÝAPI¡£ÔÊÐíÓû§ÉùÃ÷ʼþµÄSchema£¬°üÀ¨Ê¼þÓÉÄÄЩÊôÐÔ¹¹³É¡¢Ã¿¸öÊôÐÔµÄÀàÐÍ£¬ÒÔ¼°µ±Óû§ÅäÖòßÂÔʱÈçºÎÔÚÔËÐÐʱ¶¯Ì¬½âÎöÊôÐÔµÄÖµµÈ¡£

²ßÂÔÒýÇæ·þÎñÌṩAPI¡£ÔÊÐí¿ª·¢ÕߺÜÈÝÒ×µØÒÔ²å¼þµÄÐÎʽÀ©Õ¹ÐµIJßÂÔÒýÇæ¡£WSO2 Siddhi CEP ÒýÇæÊÇEagleÓÅÏÈĬÈÏÖ§³ÖµÄ²ßÂÔÒýÇæ£¬Í¬Ê±»úÆ÷ѧϰËã·¨Ò²¿É×÷ΪÁíÒ»ÖÖ²ßÂÔÒýÇæÖ´ÐС£

À©Õ¹ÐÔ¡£EagleµÄ²ßÂÔÒýÇæ·þÎñÌṩAPIÔÊÐíÄã²åÈëеIJßÂÔÒýÇæ

[java] view plaincopypublic interface PolicyEvaluatorServiceProvider {

public String getPolicyType(); // literal string to identify one type of policy

public Class getPolicyEvaluator(); // get policy evaluator implementation

public List getBindingModules(); // policy text with json format to object mapping

}

public interface PolicyEvaluator {

public void evaluate(ValuesArray input) throws Exception; // evaluate input event

public void onPolicyUpdate(AlertDefinitionAPIEntity newAlertDef); // invoked when policy is updated

public void onPolicyDelete(); // invoked when policy is deleted

}

²ßÂÔ Partitioner API¡£ÔÊÐí²ßÂÔÔÚ²»Í¬µÄÎïÀí½ÚµãÉϲ¢ÐÐÖ´ÐС£Ò²ÔÊÐíÄã×Ô¶¨Òå²ßÂÔPartitionerÀà¡£ÕâЩ¹¦ÄÜʹµÃ²ßÂÔºÍʼþÍêÈ«ÒÔ·Ö²¼Ê½µÄ·½Ê½Ö´ÐС£

¿ÉÉìËõÐÔ Eagle¡£Í¨¹ýÖ§³Ö²ßÂԵķÖÇø½Ó¿ÚÀ´ÊµÏÖ´óÁ¿µÄ²ßÂÔ¿ÉÉìËõ²¢·¢µØÔËÐÐ

[java] view plaincopypublic interface PolicyPartitioner extends Serializable {

int partition(int numTotalPartitions, String policyType, String policyId); // method to distribute policies

}

1.a ¿ÉÉìËõµÄEagle²ßÂÔÖ´Ðпò¼Ü

»úÆ÷ѧϰģ¿é£º

Eagle Ö§³Ö¸ù¾ÝÓû§ÔÚHadoopƽ̨ÉÏÀúʷʹÓÃÐÐΪϰ¹ßÀ´¶¨ÒåÐÐΪģʽ»òÓû§ProfileµÄÄÜÁ¦¡£ÓµÓÐÁËÕâ¸ö¹¦ÄÜ£¬²»ÐèÒªÔÚϵͳÖÐÔ¤ÏÈÉèÖù̶¨ÁÙ½çÖµµÄÇé¿öÏ£¬Ò²¿ÉÒÔʵÏÖÖÇÄܵؼì²â³öÒì³£µÄÐÐΪ¡£EagleÖÐÓû§ProfileÊÇͨ¹ý»úÆ÷ѧϰËã·¨Éú³É£¬ÓÃÓÚÔÚÓû§µ±Ç°ÊµÊ±ÐÐΪģʽÓëÆä¶ÔÓ¦µÄÀúÊ·Ä£ÐÍģʽ´æÔÚÒ»¶¨³Ì¶ÈµÄ²îÒìʱʶ±ðÓû§ÐÐΪÊÇ·ñΪÒì³£¡£Ä¿Ç°£¬Eagle ÄÚÖÃÌṩÒÔÏÂÁ½ÖÖËã·¨À´¼ì²âÒì³££¬·Ö±ðÎªÌØÕ÷Öµ·Ö½â(Eigen-Value Decomposition)ºÍ ÃܶȹÀ¼Æ(Density Estimation)¡£ÕâЩËã·¨´ÓHDFS Éó¼ÆÈÕÖ¾ÖжÁÈ¡Êý¾Ý£¬¶ÔÊý¾Ý½øÐзָÉó²é¡¢½»²æ·ÖÎö£¬ÖÜÆÚÐÔµØÎªÃ¿¸öÓû§ÒÀ´Î´´½¨Profile ÐÐΪģÐÍ¡£Ò»µ©Ä£ÐÍÉú³É£¬EagleµÄʵʱÁ÷²ßÂÔÒýÇæÄܹ»½üºõʵʱµØÊ¶±ð³öÒì³££¬·Ö±æµ±Ç°Óû§µÄÐÐΪ¿ÉÒɵĻòÕßÓëËûÃǵÄÀúÊ·ÐÐΪģÐͲ»Ïà·û¡£

ÏÂͼ¼òµ¥ÃèÊöÁËĿǰEagleÖÐÓû§ProfileµÄÀëÏßѵÁ·½¨Ä£ºÍÔÚÏßʵʱ¼à²âµÄÊý¾ÝÁ÷£º

1.b Óû§Profile ÀëÏßѵÁ·ÒÔ¼°Òì³£¼à²â¼Ü¹¹

»ùÓÚÓû§ ProfileµÄEagleÔÚÏßʵʱÒì³£¼à²âÊǸù¾ÝEagleµÄͨÓòßÂÔ¿ò¼ÜʵÏֵģ¬Óû§ProfileÖ»ÊDZ»¶¨ÒåΪEagleϵͳÖÐÒ»¸ö²ßÂÔ¶øÒÑ£¬Óû§ProfileµÄ²ßÂÔÊÇͨ¹ý¼Ì³Ð×ÔEagleͳһ²ßÂÔÖ´ÐнӿڵĻúÆ÷ѧϰEvaluatorÀ´Ö´ÐУ¬Æä²ßÂԵ͍ÒåÖаüÀ¨Òì³£¼ì²â¹ý³ÌÖÐÐèÒªµÄÌØÕ÷ÏòÁ¿µÈ(ÔÚÏß¼ì²âÓëÀëÏßѵÁ·±£³ÖÒ»ÖÂ)¡£

´ËÍ⣬Eagle Ìṩ×Ô¶¯ÑµÁ·µ÷¶ÈÆ÷£¬¿É¸ù¾ÝÎļþ»òÕßUIÅäÖõÄʱ¼äÖÜÆÚºÍÁ£¶ÈÀ´µ÷¶ÈÕâ¸ö»ùÓÚSparkµÄÀëÏßѵÁ·³ÌÐò£¬ÓÃÓÚÅúÁ¿´´½¨Óû§ProfileºÍÐÐΪģÐÍ£¬Ä¬ÈϸÃѵÁ·ÏµÍ³ÒÔÿÔÂµÄÆµÂʸüÐÂÄ£ÐÍ£¬Ä£ÐÍÁ£¶ÈΪһ·ÖÖÓ¡£

Eagle ÄÚÖõĻúÆ÷ѧϰËã·¨»ù±¾Ë¼ÏëÈçÏ£º

ºËÃܶȹÀ¼ÆËã·¨ (Density Estimation)

¸ÃËã·¨µÄ»ù±¾Ë¼ÏëÊǸù¾Ý¼ì²âµÄѵÁ·Ñù±¾Êý¾ÝÕë¶Ôÿ¸öÓû§¼ÆËã³ö¶ÔÓ¦µÄ¸ÅÂÊÃܶȷֲ¼º¯Êý¡£Ê×ÏÈ£¬ÎÒÃǶÔѵÁ·Êý¾Ý¼¯µÄÿ¸öÌØÕ÷¾ùÖµ±ê×¼»¯£¬±ê×¼»¯¿ÉÒÔʹµÃËùÓÐÊý¾Ý¼¯×ª»¯ÎªÏàͬ³ß¶È¡£È»ºó£¬ÔÚÎÒÃǵÄËæ»ú±äÁ¿¸ÅÂÊ·Ö²¼¹À¼ÆÖУ¬ÎÒÃDzÉÓøß˹·Ö²¼Ê½º¯ÊýÀ´¼ÆËã¸ÅÂÊÃܶȡ£¼ÙÉèÈÎÒâÌØÕ÷±Ë´ËÏ໥¶ÀÁ¢£¬ÄÇô×îÖյĸß˹¸ÅÂÊÃܶȾͿÉÒÔͨ¹ý·Ö½â¸÷¸öÌØÕ÷µÄ¸ÅÂÊÃܶȶø¼ÆËãµÃµ½¡£ÔÚÏßʵʱ¼ì²â½×¶Î£¬ÎÒÃÇ¿ÉÒÔÊ×ÏȼÆËã³öÿ¸öÓû§ÊµÊ±ÐÐΪµÄ¸ÅÂÊ¡£Èç¹ûÓû§³öÏÖµ±Ç°ÐÐΪµÄ¿ÉÄÜÐÔµÍÓÚij¸öÁÙ½çÖµ£¬ÎÒÃDZíʶΪÒì³£¾¯¸æ£¬¶øÕâ¸öÁÙ½çÖµÍêÈ«ÓÉÀëÏßѵÁ·³ÌÐòͨ¹ý³ÆÎª¡°ÂíÐÞ˹Ïà¹ØÏµÊý¡±(Mathews Correlation Coefficient)µÄ·½·¨¼ÆËã¶øµÃ¡£

1.c µ¥Ò»Î¬¶ÈÉÏÓû§ÐÐΪֱ·½Í¼

ÌØÕ÷Öµ·Ö½âËã·¨(Eigen-Value Decomposition)

¸ÃËã·¨ÖУ¬ÎÒÃÇÈÏΪÉú³ÉÓû§ProfileµÄÖ÷ҪĿµÄÊÇΪÁË´ÓÖз¢ÏÖÓмÛÖµµÄÓû§ÐÐΪģʽ¡£ÎªÁËʵÏÖÕâ¸öÄ¿µÄ£¬ÎÒÃÇ¿ÉÒÔ¿¼ÂǶÔÌØÕ÷ÒÀ´Î½øÐÐ×éºÏ£¬È»ºó¹Û²ìËûÃÇÏ໥֮¼äÊÇÈçºÎÓ°ÏìµÄ¡£µ±Êý¾Ý¼¯·Ç³£¾Þ´óʱ£¬ÕýÈçͨ³£ÎÒÃÇËùÓöµ½µÄ³¡¾°£¬ÓÉÓÚÕý³£Ä£Ê½µÄÊýÁ¿·Ç³£Ö®¶à£¬ÒÔÖÁÓÚÌØÕ÷¼¯µÄÒì³£µÄģʽºÜÈÝÒ×±»ºöÊÓ¡£ÓÉÓÚÕý³£µÄÐÐΪģʽͨ³£´¦Óڷdz£µÍάµÄ×Ó¿Õ¼äÄÚ£¬Òò´ËÎÒÃÇÒ²Ðí¿ÉÒÔͨ¹ý½µµÍÊý¾Ý¼¯µÄά¶ÈÀ´¸üºÃµÄÀí½âÓû§µÄÕæÕýµÄÐÐΪģʽ¡£¸Ã·½·¨Í¬Ñù¿ÉÒÔ¶ÔÓÚѵÁ·Êý¾Ý¼¯½øÐнµÔë¡£¸ù¾Ý¶Ô´óÁ¿Óû§ÌØÕ÷Êý¾Ý·½²îµÄ½øÐÐÔËË㣬ͨ³£ÔÚÎÒÃǵÄÓÃÀý³¡¾°ÖÐѡȡ·½²îΪ95%×÷Ϊ»ù×¼£¬ÎÒÃÇ¿ÉÒԵõ½·½²îΪ95%µÄÖ÷³É·ÖµÄÊýÁ¿Îªk£¬Òò´ËÎÒÃǽ«Ç°k¸öÖ÷³É·ÖÈÏΪÊÇÓû§µÄÕý³£×ӿռ䣬¶øÊ£ÏµÄ(n-k)¸öÖ÷³É·ÖÔò±»ÊÓΪÒì³£×ӿռ䡣

µ±ÏßʵʱÒì³£¼ì²âʱ£¬Èç¹ûÓû§ÐÐΪģʽλÓÚÕý³£×ӿռ丽½ü£¬ÔòÈÏΪ¸ÃÐÐΪÕý³££¬·ñÔò£¬Èç¹ûÓû§ÐÐΪģʽλÓÚÒì³£×ӿռ丽½ü£¬Ôò»áÁ¢¼´±¨¾¯£¬ÒòΪÎÒÃÇÏàÐÅͨ³£Óû§ÐÐΪһ°ãÓ¦¸ÃλÓÚÕý³£×Ó¿Õ¼äÄÚ¡£ÖÁÓÚÈçºÎ¼ÆËãÓû§µ±Ç°ÐÐΪ½Ó½üÕý³£»¹ÊÇÒì³£×ӿռ䣬ÎÒÃDzÉÓõÄÊÇÅ·ÊϾàÀë·¨(Euclidian distance method)¡£

 

1.d Õ¹Ê¾ÖØÒªµÄÓû§ÐÐΪģʽ³É·Ö

Eagle ·þÎñ

²ßÂÔ¹ÜÀíÆ÷£ºEagle²ßÂÔ¹ÜÀíÆ÷Ìṩ½»»¥ÓѺõÄÓû§½çÃæºÍREST API ¹©Óû§ÇáËɵض¨ÒåºÍ¹ÜÀí²ßÂÔ£¬Ò»ÇÐÖ»Ð輸´ÎÊó±êµã»÷¶øÒÑ¡£EagleµÄÓû§½çÃæÊ¹µÃ²ßÂԵĹÜÀí¡¢Ãô¸ÐÔªÊý¾ÝµÄ±êʶºÍµ¼Èë¡¢HDFS»òHive µÄ×ÊÔ´ä¯ÀÀÒÔ¼°Ô¤¾¯ÒDZíµÈ¹¦Äܶ¼·Ç³£Ò×ÓÚʹÓá£

Eagle ²ßÂÔÒýÇæÄ¬ÈÏÖ§³ÖWSO2µÄSiddhi CEPÒýÇæºÍ»úÆ÷ѧϰÒýÇæ£¬ÒÔÏÂÊǼ¸¸ö»ùÓÚSiddi CEPµÄ²ßÂÔʾÀý¡£

µ¥Ò»Ê¼þÖ´ÐвßÂÔ(Óû§·ÃÎÊHiveÖеÄÃô¸ÐÊý¾ÝÁÐ)

from hiveAccessLogStream[sensitivityType=='PHONE_NUMBER'] select * insert into outputStream;

»ùÓÚ´°¿ÚµÄ²ßÂÔ(Óû§ÔÚ10·ÖÖÓÄÚ·ÃÎÊĿ¼ /tmp/private ¶àÓà 5´Î)

hdfsAuditLogEventStream[(src == '/tmp/private')]#window.externalTime(timestamp,10 min) select user, count(timestamp) as aggValue group by user having aggValue >= 5 insert into outputStream;

²éѯ·þÎñ(Query Service)£ºEagle ÌṩÀàSQLµÄREST APIÓÃÀ´ÊµÏÖÕë¶Ôº£Á¿Êý¾Ý¼¯µÄ×ۺϼÆËã¡¢²éѯºÍ·ÖÎöµÄÄÜÁ¦£¬Ö§³ÖÀýÈç¹ýÂË¡¢¾ÛºÏ¡¢Ö±·½ÔËËã¡¢ÅÅÐò¡¢top¡¢ËãÊõ±í´ïʽÒÔ¼°·ÖÒ³µÈ¡£EagleÓÅÏÈÖ§³ÖHBase ×÷ΪÆäĬÈÏÊý¾Ý´æ´¢£¬µ«ÊÇͬʱҲ֧³Ö»ùJDBCµÄ¹ØÏµÐÍÊý¾Ý¿â¡£ÌرðÊǵ±Ñ¡ÔñÒÔHBase×÷Ϊ´æ´¢Ê±£¬Eagle±ãÔ­ÉúÓµÓÐÁËHBase´æ´¢ºÍ²éѯº£Á¿¼à¿ØÊý¾ÝµÄÄÜÁ¦£¬Eagle ²éѯ¿ò¼Ü»á½«Óû§ÌṩµÄÀàSQL²éѯÓï·¨×îÖÕ±àÒë³ÉΪHBase Ô­ÉúµÄFilter ¶ÔÏ󣬲¢Ö§³Öͨ¹ýHBase Coprocessor½øÒ»²½ÌáÉýÏìÓ¦ËÙ¶È¡£

query=AlertDefinitionService[@dataSource="hiveQueryLog"]{@policyDef}&pageSize=100000

EagleÔÚeBayµÄʹÓó¡¾°

Ŀǰ£¬EagleµÄÊý¾ÝÐÐΪ¼à¿ØÏµÍ³ÒѾ­²¿Êðµ½Ò»¸öÓµÓÐ2500¶à¸ö½ÚµãµÄHadoop¼¯ÈºÖ®ÉÏ£¬ÓÃÒÔ±£»¤Êý°ÙPBÊý¾ÝµÄ°²È«£¬²¢Õý¼Æ»®ÓÚ½ñÄêÄêµ×֮ǰÀ©Õ¹µ½ÆäËûÉÏÊ®¸öHadoop¼¯ÈºÉÏ£¬´Ó¶ø¸²¸ÇeBay ËùÓÐÖ÷ÒªHadoopµÄ10000¶ą̀½Úµã¡£ÔÚÎÒÃǵÄÉú²ú»·¾³ÖУ¬ÎÒÃÇÒÑÕë¶ÔHDFS¡¢Hive µÈ¼¯ÈºÖÐ×£Ó´°¡Êý¾ÝÉèÖÃÁËһЩ»ù´¡µÄ°²È«²ßÂÔ£¬²¢½«ÓÚÄêµ×֮ǰ²»¶ÏÒýÈë¸ü¶àµÄ²ßÂÔ£¬ÒÔÈ·±£ÖØÒªÊý¾ÝµÄ¾ø¶Ô°²È«¡£Ä¿Ç°£¬EagleµÄ²ßÂÔº­¸Ç¶àÖÖģʽ£¬°üÀ¨´Ó·ÃÎÊģʽ¡¢Æµ·±·ÃÎÊÊý¾Ý¼¯£¬Ô¤¶¨Òå²éѯÀàÐÍ¡¢Hive ±íºÍÁС¢HBase ±íÒÔ¼°»ùÓÚ»úÆ÷ѧϰģÐÍÉú³ÉµÄÓû§ProfileÏà¹ØµÄËùÓвßÂԵȡ£Í¬Ê±£¬ÎÒÃÇÒ²Óй㷺µÄ²ßÂÔÀ´·ÀÖ¹Êý¾ÝµÄ¶ªÊ§¡¢Êý¾Ý±»¿½±´µ½²»°²È«µØµã¡¢Ãô¸ÐÊý¾Ý±»Î´ÊÚÈ¨ÇøÓò·ÃÎʵȡ£Eagle²ßÂÔ¶¨ÒåÉϼ«´óµÄÁé»îÐÔºÍÀ©Õ¹ÐÔʹµÃÎÒÃÇδÀ´¿ÉÒÔÇáÒ׵ؼÌÐøÀ©Õ¹¸ü¶à¸ü¸´ÔӵIJßÂÔÒÔÖ§³Ö¸ü¶à¶àÔª»¯µÄÓÃÀý³¡¾°¡£

   
2024 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ

²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí