You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2017/04/03 11:55:19 UTC

[71/84] eagle git commit: Merge site source code from https://github.com/geteagle/eaglemonitoring.github.io

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/docs/user-profile-ml.html
----------------------------------------------------------------------
diff --git a/eagle-site/_site/docs/user-profile-ml.html b/eagle-site/_site/docs/user-profile-ml.html
new file mode 100644
index 0000000..6a172d4
--- /dev/null
+++ b/eagle-site/_site/docs/user-profile-ml.html
@@ -0,0 +1,231 @@
+<!DOCTYPE html>
+<head>
+  	<meta charset="utf-8">
+  	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+
+ 	<title>Eagle - User Profile Machine Learning</title>
+ 	<meta name="description" content="Eagle - Analyze Big Data Platforms for Security and Performance">
+
+	<meta name="keywords" content="Eagle, Hadoop, Security, Real Time">
+	<meta name="author" content="eBay Inc.">
+
+	<meta charset="utf-8">
+	<meta name="viewport" content="initial-scale=1">
+
+	<link rel="stylesheet" href="/css/animate.css">
+	<link rel="stylesheet" href="/css/bootstrap.min.css">
+
+	<link rel="stylesheet" href="/css/font-awesome.min.css">
+	
+	<link rel="stylesheet" href="/css/misc.css">
+	<link rel="stylesheet" href="/css/style.css">
+	<link rel="stylesheet" href="/css/styles.css">
+  	<link rel="stylesheet" href="/css/main.css">
+  	<link rel="alternate" type="application/rss+xml" title="Eagle" href="http://goeagle.io/feed.xml" />
+  	<link rel="shortcut icon" href="/images/favicon.png">
+
+  	<!-- Baidu Analytics Tracking-->
+	<script>
+	var _hmt = _hmt || [];
+	(function() {
+	  var hm = document.createElement("script");
+	  hm.src = "//hm.baidu.com/hm.js?fedc55df2ea52777a679192e8f849ece";
+	  var s = document.getElementsByTagName("script")[0]; 
+	  s.parentNode.insertBefore(hm, s);
+	})();
+	</script>
+	
+	<!-- Google Analytics Tracking -->
+	<script>
+	  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+	  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+	  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+	  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+	  ga('create', 'UA-68929805-1', 'auto');
+	  ga('send', 'pageview');
+	</script>
+</head>
+<body>
+<!-- header start -->
+<div id="home_page">
+  <div class="topbar">
+    <div class="container">
+      <div class="row" >
+        <nav class="navbar navbar-default">
+          <div class="container-fluid"> 
+            <!-- Brand and toggle get grouped for better mobile display -->
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
+              <a class="navbar-brand" href="/"><img src="/images/logo2.png" height="44px" style="margin-top:-7px"></a> </div>
+            
+            <!-- Collect the nav links, forms, and other content for toggling -->
+            <!-- <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+              <ul class="nav navbar-nav navbar-right" id="top-menu">
+                <li><a class="menu" href="/#home_page">HOME</a></li>
+                <li><a class="menu" href="/docs/">DOCS</a></li>
+                <li><a class="menu" href="/#about_page">ABOUT</a></li>
+                <li><a class="menu" href="/#diagram_page">ARCHITECTURE</a></li>
+                <li><a class="menu" href="/#modules_page">MODULES</a></li>
+                <li><a class="menu" href="/#usecase_page">USE CASES</a></li>
+                <li>
+                </li>
+              </ul> -->
+            </div>
+          </div>
+          <!-- /.container-fluid --> 
+        </nav>
+      </div>
+    </div>
+  </div>
+  <div class="headerimage">
+    <div class="flexslider">
+      <ul class="slides">
+        <li><img src="/images/slider/4.jpg" alt="Slide 1"></li>
+      </ul>
+    </div>
+  </div>
+  <div class="particles" style="height:40%"> </div><!---particles-->
+  <div class="slider-caption" style="top:80px;">
+    <div class="homewrapper">
+      <div class="hometitle"> 
+        <a href="/">
+          <img src="/images/feather.png" height="80px">
+        </a>
+      </div>
+      <div class="hometext">
+        <h2>Analyze Big Data Platforms For Security and Performance</h2>
+        <div class="social-buttons">
+          <a href="https://github.com/apache/eagle"><i class="fa fa-github"></i></a>
+          <a href="http://twitter.com/TheApacheEagle"><i class="fa fa-twitter"></i></a>
+          <a href="https://www.facebook.com/TheApacheEagle/"><i class="fa fa-facebook"></i></a>
+          <a href="#"><i class="fa fa-weixin"></i></a>
+          <!-- <a href="https://www.weibo.com/ApacheEagle/"><i class="fa fa-weibo"></i></a> -->
+        </div>
+     </div>
+    </div>
+  </div>
+</div>
+<!-- header end -->
+<div class="container-fluid page-content">
+  <div class="row">
+    <div class="col-md-10 col-md-offset-1"> 
+      <!-- sidebar -->
+      <div class="col-xs-6 col-sm-3" id="sidebar" role="navigation">
+        <ul class="nav" id="adminnav">
+         
+        <li class="heading">Getting Started</li>
+        
+          <li class="sidenavli  "><a href="/docs/index.html" data-permalink="/docs/user-profile-ml.html" id="">Introduction</a></li>
+        
+          <li class="sidenavli  "><a href="/docs/usecases.html" data-permalink="/docs/user-profile-ml.html" id="">Use Cases</a></li>
+        
+          <li class="sidenavli  "><a href="/docs/terminology.html" data-permalink="/docs/user-profile-ml.html" id="">Terminology</a></li>
+        
+          <li class="sidenavli  "><a href="/docs/ecosystem.html" data-permalink="/docs/user-profile-ml.html" id="">Ecosystem</a></li>
+        
+          <li class="sidenavli  "><a href="/docs/community.html" data-permalink="/docs/user-profile-ml.html" id="">Community</a></li>
+        
+          <li class="sidenavli  "><a href="/docs/FAQ.html" data-permalink="/docs/user-profile-ml.html" id="">FAQ</a></li>
+        
+        <li class="divider"></li>
+       
+        <li class="heading">Documentations</li>
+        
+          <li class="sidenavli  "><a href="/docs/latest/" data-permalink="/docs/user-profile-ml.html" id="">Latest version (v0.5.0)</a></li>
+        
+        <li class="divider"></li>
+       
+        <li class="heading">Download</li>
+        
+          <li class="sidenavli  "><a href="/docs/download-latest.html" data-permalink="/docs/user-profile-ml.html" id="">Latest version (v0.5.0)</a></li>
+        
+          <li class="sidenavli  "><a href="/docs/download.html" data-permalink="/docs/user-profile-ml.html" id="">Archived</a></li>
+        
+        <li class="divider"></li>
+       
+        <li class="heading">Supplement</li>
+        
+          <li class="sidenavli  "><a href="/docs/security.html" data-permalink="/docs/user-profile-ml.html" id="">Security</a></li>
+        
+        <li class="divider"></li>
+      
+        <li class="sidenavli">
+          <a href="mailto:dev@eagle.apache.org" target="_blank">Need Help?</a>
+        </li>
+        </ul>
+      </div>
+      <div class="col-xs-6 col-sm-9 page-main-content" style="margin-left: -15px" id="loadcontent">
+        <h1 class="page-header" style="margin-top: 0px">User Profile Machine Learning</h1>
+        <p>Apache Eagle (called Eagle in the following) provides capabilities to define user activity patterns or user profiles for Apache Hadoop users based on the user behavior in the platform. The idea is to provide anomaly detection capability without setting hard thresholds in the system. The user profiles generated by our system are modeled using machine-learning algorithms and used for detection of anomalous user activities, where users\u2019 activity pattern differs from their pattern history. Currently Eagle uses two algorithms for anomaly detection: Eigen-Value Decomposition and Density Estimation. The algorithms read data from HDFS audit logs, slice and dice data, and generate models for each user in the system. Once models are generated, Eagle uses the Apache Storm framework for near-real-time anomaly detection to determine if current user activities are suspicious or not with respect to their model. The block diagram below shows the current pipeline for user profile traini
 ng and online detection.</p>
+
+<p><img src="/images/docs/userprofile-arch.png" alt="" /></p>
+
+<p>Eagle online anomaly detection uses the Eagle policy framework, and the user profile is defined as one of the policies in the system. The user profile policy is evaluated by a machine-learning evaluator extended from the Eagle policy evaluator. Policy definition includes the features that are needed for anomaly detection (same as the ones used for training purposes).</p>
+
+<p>A scheduler runs a Apache Spark based offline training program (to generate user profiles or models) at a configurable time interval; currently, the training program generates new models once every month.</p>
+
+<p>The following are some details on the algorithms.</p>
+
+<ul>
+  <li><strong>Density Estimation</strong>: In this algorithm, the idea is to evaluate, for each user, a probability density function from the observed training data sample. We mean-normalize a training dataset for each feature. Normalization allows datasets to be on the same scale. In our probability density estimation, we use a Gaussian distribution function as the method for computing probability density. Features are conditionally independent of one another; therefore, the final Gaussian probability density can be computed by factorizing each feature\u2019s probability density. During the online detection phase, we compute the probability of a user\u2019s activity. If the probability of the user performing the activity is below threshold (determined from the training program, using a method called Mathews Correlation Coefficient), we signal anomaly alerts.</li>
+  <li><strong>Eigen-Value Decomposition</strong>: Our goal in user profile generation is to find interesting behavioral patterns for users. One way to achieve that goal is to consider a combination of features and see how each one influences the others. When the data volume is large, which is generally the case for us, abnormal patterns among features may go unnoticed due to the huge number of normal patterns. As normal behavioral patterns can lie within very low-dimensional subspace, we can potentially reduce the dimension of the dataset to better understand the user behavior pattern. This method also reduces noise, if any, in the training dataset. Based on the amount of variance of the data we maintain for a user, which is usually 95% for our case, we seek to find the number of principal components k that represents 95% variance. We consider first k principal components as normal subspace for the user. The remaining (n-k) principal components are considered as abnormal subspace.</
 li>
+</ul>
+
+<p>During online anomaly detection, if the user behavior lies near normal subspace, we consider the behavior to be normal. On the other hand, if the user behavior lies near the abnormal subspace, we raise an alarm as we believe usual user behavior should generally fall within normal subspace. We use the Euclidian distance method to compute whether a user\u2019s current activity is near normal or abnormal subspace.</p>
+
+<p><img src="/images/docs/userprofile-model.png" alt="" /></p>
+
+      </div><!--end of loadcontent-->  
+    </div>
+    <!--end of centered content--> 
+  </div>
+</div>
+<!--end of container-->
+
+<!-- footer start -->
+<div class="footerwrapper">
+  <div class="container">
+    <div class="row">
+      <div class="col-md-12"><div style="margin-left:auto; margin-right:auto; text-align:center;font-size: 12px">
+<div>
+</div>
+<div>
+<a href="http://www.apache.org">
+<img id="asf-logo" alt="Apache Software Foundation" src="/images/apache-logo-small.gif">
+</a>
+</div>
+<div>
+Copyright � 2015 <a href="http://www.apache.org">The Apache Software Foundation</a>, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+</div>
+<div>
+Apache Eagle, Eagle, Apache Hadoop, Hadoop, Apache HBase, HBase, Apache Hive, Hive, Apache Ambari, Ambari, Apache Spark, Spark, Apache Kafka, Kafka, Apache Storm, Storm, Apache Maven, Maven, Apache Tomcat, Tomcat, Apache Derby, Derby, Apache Cassandra, Cassandra, Apache ZooKeeper, ZooKeeper, Apache, the Apache feather logo, and the Apache project logo are trademarks of The Apache Software Foundation.
+</div>
+      </div></div>
+    </div>
+  </div>
+</div>
+<!-- footer end --> 
+
+<!-- JavaScripts -->
+<script src="/js/jquery-1.11.1.min.js"></script>
+<script src="/js/jquery.singlePageNav.js"></script>
+<script src="/js/jquery.flexslider.js"></script>
+<script src="/js/modernizr.min.js"></script>
+<script src="/js/svg.js"></script>
+<script>
+    /************** FlexSlider *********************/
+    $('.flexslider').flexslider({
+        animation: "fade",
+        directionNav: false
+    });
+</script>
+
+<script>
+    /************** FlexSlider *********************/
+    $('.flexslider').flexslider({
+        animation: "fade",
+        directionNav: false
+    });
+</script>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/feed.xml
----------------------------------------------------------------------
diff --git a/eagle-site/_site/feed.xml b/eagle-site/_site/feed.xml
new file mode 100644
index 0000000..67bdd11
--- /dev/null
+++ b/eagle-site/_site/feed.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Eagle</title>
+    <description>Eagle - Analyze Big Data Platforms for Security and Performance</description>
+    <link>http://goeagle.io/</link>
+    <atom:link href="http://goeagle.io/feed.xml" rel="self" type="application/rss+xml"/>
+    <pubDate>Mon, 03 Apr 2017 19:17:59 +0800</pubDate>
+    <lastBuildDate>Mon, 03 Apr 2017 19:17:59 +0800</lastBuildDate>
+    <generator>Jekyll v2.5.3</generator>
+    
+      <item>
+        <title>Apache Eagle \u6b63\u5f0f\u53d1\u5e03\uff1a\u5206\u5e03\u5f0f\u5b9e\u65f6Hadoop\u6570\u636e\u5b89\u5168\u65b9\u6848</title>
+        <description>&lt;blockquote&gt;
+  &lt;p&gt;&lt;em&gt;\u6458\u8981&lt;/em&gt;\uff1a\u65e5\u524d\uff0ceBay\u516c\u53f8\u9686\u91cd\u5ba3\u5e03\u6b63\u5f0f\u5411\u5f00\u6e90\u4e1a\u754c\u63a8\u51fa\u5b9e\u65f6\u5206\u5e03\u5f0fHadoop\u6570\u636e\u5b89\u5168\u65b9\u6848 - Apache Eagle\uff0c\u4f5c\u4e3a\u4e00\u5957\u65e8\u5728\u63d0\u4f9b\u9ad8\u6548\u5206\u5e03\u5f0f\u7684\u6d41\u5f0f\u7b56\u7565\u5f15\u64ce\uff0c\u5e76\u96c6\u6210\u673a\u5668\u5b66\u4e60\u5bf9\u7528\u6237\u884c\u4e3a\u5efa\u7acbProfile\u4ee5\u5b9e\u65f6\u667a\u80fd\u5730\u4fdd\u62a4Hadoop\u751f\u6001\u7cfb\u7edf\u4e2d\u5927\u6570\u636e\u5b89\u5168\u7684\u89e3\u51b3\u65b9\u6848\u3002&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;\u65e5\u524d\uff0ceBay\u516c\u53f8\u9686\u91cd\u5ba3\u5e03\u6b63\u5f0f\u5411\u5f00\u6e90\u4e1a\u754c\u63a8\u51fa\u5206\u5e03\u5f0f\u5b9e\u65f6\u5b89\u5168\u76d1\u63a7\u65b9\u6848 \uff0d Apache Eagle (http://goeagle.io)\uff0c\u8be5\u9879\u76ee\u5df2\u4e8e2015\u5e7410\u670826\u65e5\u6b63\u5f0f\u52a0\u5165Apache \u6210\u4e3a\u5b75\u5316\u5668\u9879\u76ee\u3002Apache Eagle\u63d0\u4f9b\u4e00\u5957\u9ad8\u6548\u5206\u5e03\u5f0f\u7684\u6d41\u5f0f\u7b56\u7565\u5f15\u64ce\uff0c\u5177\u6709\u9ad8\u5b9e\u65f6\u3001\u53ef\u4f38\u7f29\u3001\u6613\u6269\u5c55\u3001\u4ea4\u4e92\u53cb\u597d\u7b49\u7279\u70b9\uff0c\u540c\u65f6\u96c6\u6210\u673a\u5668\u5b66\u4e60\u5bf9\u7528\u6237\u884c\u4e3a\u5efa\u7acbProfile\u4ee5\u5b9e\u73b0\u667a\u80fd\u5b9e\u65f6\u5730\u4fdd\u62a4Hadoop\u751f\u6001\u7cfb\u7edf\u4e2d\u5927\u6570\u636e\u7684\u5b89\u5168\u3002&lt;/p&gt;
+
+&lt;h2 id=&quot;section&quot;&gt;\u80cc\u666f&lt;/h2&gt;
+&lt;p&gt;\u968f\u7740\u5927\u6570\u636e\u7684\u53d1\u5c55\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u6210\u529f\u4f01\u4e1a\u6216\u8005\u7ec4\u7ec7\u5f00\u59cb\u91c7\u53d6\u6570\u636e\u9a71\u52a8\u5546\u4e1a\u7684\u8fd0\u4f5c\u6a21\u5f0f\u3002\u5728eBay\uff0c\u6211\u4eec\u62e5\u6709\u6570\u4e07\u540d\u5de5\u7a0b\u5e08\u3001\u5206\u6790\u5e08\u548c\u6570\u636e\u79d1\u5b66\u5bb6\uff0c\u4ed6\u4eec\u6bcf\u5929\u8bbf\u95ee\u5206\u6790\u6570PB\u7ea7\u7684\u6570\u636e\uff0c\u4ee5\u4e3a\u6211\u4eec\u7684\u7528\u6237\u5e26\u6765\u65e0\u4e0e\u4f26\u6bd4\u7684\u4f53\u9a8c\u3002\u5728\u5168\u7403\u4e1a\u52a1\u4e2d\uff0c\u6211\u4eec\u4e5f\u5e7f\u6cdb\u5730\u5229\u7528\u6d77\u91cf\u5927\u6570\u636e\u6765\u8fde\u63a5\u6211\u4eec\u6570\u4ee5\u4ebf\u8ba1\u7684\u7528\u6237\u3002&lt;/p&gt;
+
+&lt;p&gt;\u8fd1\u5e74\u6765\uff0cHadoop\u5df2\u7ecf\u9010\u6e10\u6210\u4e3a\u5927\u6570\u636e\u5206\u6790\u9886\u57df\u6700\u53d7\u6b22\u8fce\u7684\u89e3\u51b3\u65b9\u6848\uff0ceBay\u4e5f\u4e00\u76f4\u5728\u4f7f\u7528Hadoop\u6280\u672f\u4ece\u6570\u636e\u4e2d\u6316\u6398\u4ef7\u503c\uff0c\u4f8b\u5982\uff0c\u6211\u4eec\u901a\u8fc7\u5927\u6570\u636e\u63d0\u9ad8\u7528\u6237\u7684\u641c\u7d22\u4f53\u9a8c\uff0c\u8bc6\u522b\u548c\u4f18\u5316\u7cbe\u51c6\u5e7f\u544a\u6295\u653e\uff0c\u5145\u5b9e\u6211\u4eec\u7684\u4ea7\u54c1\u76ee\u5f55\uff0c\u4ee5\u53ca\u901a\u8fc7\u70b9\u51fb\u6d41\u5206\u6790\u4ee5\u7406\u89e3\u7528\u6237\u5982\u4f55\u4f7f\u7528\u6211\u4eec\u7684\u5728\u7ebf\u5e02\u573a\u5e73\u53f0\u7b49\u3002&lt;/p&gt;
+
+&lt;p&gt;\u76ee\u524d\uff0ceBay\u7684Hadoop\u96c6\u7fa4\u603b\u8282\u70b9\u6570\u636e\u8d85\u8fc710000\u591a\u4e2a\uff0c\u5b58\u50a8\u5bb9\u91cf\u8d85\u8fc7170PB\uff0c\u6d3b\u8dc3\u7528\u6237\u8d85\u8fc72000\u591a\u3002\u73b0\u5728\u76f8\u5173\u89c4\u6a21\u8fd8\u5728\u4e0d\u65ad\u589e\u957f\u4e2d\uff0c\u540c\u65f6\u4e3a\u4e86\u652f\u6301\u591a\u5143\u5316\u9700\u6c42\uff0c\u6211\u4eec\u5f15\u5165\u8d8a\u6765\u8d8a\u591a\u6837\u7684\u6570\u636e\u5b58\u50a8\u548c\u5206\u6790\u65b9\u6848\uff0c\u6bd4\u5982Hive\u3001MapReduec\u3001Spark \u548cHBase\u7b49\uff0c\u968f\u4e4b\u5e26\u6765\u7684\u7ba1\u7406\u548c\u76d1\u63a7\u7684\u6311\u6218\u8d8a\u6765\u8d8a\u4e25\u5cfb\uff0c\u6570\u636e\u5b89\u5168\u95ee\u9898\u4ea6\u662f\u5176\u4e2d\u6700\u91cd\u8981\u7684\u4e4b\u4e00\u3002&lt;/p&gt;
+
+&lt;p&gt;\u5927\u6570\u636e\u65f6\u4ee3\uff0c\u5b89\u5168\u95ee\u9898\u5f00\u59cb\u53d8\u5f97\u7a7a\u524d\u7684\u5173\u952e\uff0c\u7279\u522beBay\u4f5c\u4e3a\u5168\u7403\u9886\u5148\u7684\u7535\u5b50\u5546\u52a1\u516c\u53f8\uff0c\u6211\u4eec\u5fc5\u987b\u4fdd\u8bc1Hadoop\u4e2d\u7528\u6237\u6570\u636e\u7684\u7edd\u5bf9\u5b89\u5168\u3002\u901a\u5e38\u6211\u4eec\u7684\u5b89\u5168\u63aa\u65bd\u6839\u636e\u5982\u4e0b\u51e0\u70b9 \uff1a\u8bbf\u95ee\u63a7\u5236\u3001\u5b89\u5168\u9694\u79bb\u3001\u6570\u636e\u5206\u7c7b\u3001\u6570\u636e\u52a0\u5bc6\u4ee5\u53ca\u5b9e\u65f6\u6570\u636e\u884c\u4e3a\u76d1\u63a7\uff0c\u7136\u800c\u7ecf\u8fc7\u5e7f\u6cdb\u7684\u5c1d\u8bd5\u548c\u7814\u7a76\uff0c\u6211\u4eec\u610f\u8bc6\u5230\u6ca1\u6709\u4efb\u4f55\u5df2\u7ecf\u5b58\u5728\u7684\u4ea7\u54c1\u6216\u8005\u89e3\u51b3\u65b9\u6848\u80fd\u591f\u5145\u5206\u6ee1\u8db3\u6211\u4eec\u9762\u4e34\u6d77\u91cf\u5b9e\u65f6\u6570\u636e\u6d41\u548c\u591a\u5143\u5316\u7528\u4f8b\u573a\u666f\u4e0b\u6570\u636e\u884c\u4e3a\u76d1\u63a7\u7684\u9700\u6c42\u3002\u4e3a\u4e86\u903e\u8d8a\u8fd9\u9053\u9e3f\u6c9f\uff0ceBay\u51b3\u5b9a\u4ece\u5934\u5f00\u59cb\u6784\u5efaEagle\u3002&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/logo_700x400.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;\u201cEagle \u662f\u5f00\u6e90\u5206\u5e03\u5f0f\u5b9e\u65f6Hadoop\u6570\u636e\u5b89\u5168\u65b9\u6848\uff0c\u652f\u6301\u6570\u636e\u884c\u4e3a\u5b9e\u65f6\u76d1\u63a7\uff0c\u80fd\u7acb\u5373\u76d1\u6d4b\u51fa\u5bf9\u654f\u611f\u6570\u636e\u7684\u8bbf\u95ee\u6216\u6076\u610f\u7684\u64cd\u4f5c\uff0c\u5e76\u7acb\u5373\u91c7\u53d6\u5e94\u5bf9\u7684\u63aa\u65bd\u201d&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;\u6211\u4eec\u76f8\u4fe1Eagle\u5c06\u6210\u4e3aHadoop\u6570\u636e\u5b89\u5168\u9886\u57df\u7684\u6838\u5fc3\u7ec4\u4ef6\u4e4b\u4e00\uff0c\u56e0\u6b64\u6211\u4eec\u51b3\u5b9a\u5c06\u5b83\u7684\u529f\u80fd\u5206\u4eab\u7ed9\u6574\u4e2a\u793e\u533a\u3002\u76ee\u524d\u6211\u4eec\u5df2\u7ecf\u5c06Eagle\u6350\u8d60\u7ed9Apache\u8f6f\u4ef6\u57fa\u91d1\u4f1a\u4f5c\u4e3aApache \u5b75\u5316\u5668\u9879\u76ee\u5f00\u6e90\uff0c\u671f\u671b\u80fd\u591f\u540c\u5f00\u6e90\u793e\u533a\u4e00\u540c\u534f\u4f5c\u5f00\u53d1\uff0c\u4f7f\u5f97Eagle\u4e0d\u65ad\u53d1\u5c55\u58ee\u5927\uff0c\u5171\u540c\u6ee1\u8db3\u5f00\u6e90\u793e\u533a\u4e2d\u66f4\u5e7f\u6cdb\u7684\u9700\u6c42\u3002&lt;/p&gt;
+
+&lt;p&gt;Eagle\u7684\u6570\u636e\u884c\u4e3a\u76d1\u63a7\u65b9\u6848\u53ef\u7528\u4e8e\u5982\u4e0b\u51e0\u7c7b\u5178\u578b\u573a\u666f\uff1a&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;\u76d1\u63a7Hadoop\u4e2d\u7684\u6570\u636e\u8bbf\u95ee\u6d41\u91cf&lt;/li&gt;
+  &lt;li&gt;\u68c0\u6d4b\u975e\u6cd5\u5165\u4fb5\u548c\u8fdd\u53cd\u5b89\u5168\u89c4\u5219\u7684\u884c\u4e3a&lt;/li&gt;
+  &lt;li&gt;\u68c0\u6d4b\u5e76\u9632\u6b62\u654f\u611f\u6570\u636e\u4e22\u5931\u548c\u8bbf\u95ee&lt;/li&gt;
+  &lt;li&gt;\u5b9e\u73b0\u57fa\u4e8e\u7b56\u7565\u7684\u5b9e\u65f6\u68c0\u6d4b\u548c\u9884\u8b66&lt;/li&gt;
+  &lt;li&gt;\u5b9e\u73b0\u57fa\u4e8e\u7528\u6237\u884c\u4e3a\u6a21\u5f0f\u7684\u5f02\u5e38\u6570\u636e\u884c\u4e3a\u68c0\u6d4b&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Eagle\u5177\u6709\u5982\u4e0b\u7279\u70b9\uff1a&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;strong&gt;\u9ad8\u5b9e\u65f6&lt;/strong&gt;\uff1a \u6211\u4eec\u5145\u5206\u7406\u89e3\u5b89\u5168\u76d1\u63a7\u4e2d\u9ad8\u5ea6\u5b9e\u65f6\u548c\u5feb\u901f\u53cd\u5e94\u7684\u91cd\u8981\u6027\uff0c\u56e0\u6b64\u8bbe\u8ba1Eagle\u4e4b\u521d\uff0c\u6211\u4eec\u7aed\u5c3d\u53ef\u80fd\u5730\u786e\u4fdd\u80fd\u5728\u4e9a\u79d2\u7ea7\u522b\u65f6\u95f4\u5185\u4ea7\u751f\u544a\u8b66\uff0c\u4e00\u65e6\u7efc\u5408\u591a\u79cd\u56e0\u7d20\u786e\u8ba2\u4e3a\u5371\u9669\u64cd\u4f5c\uff0c\u7acb\u5373\u91c7\u53d6\u63aa\u65bd\u963b\u6b62\u975e\u6cd5\u884c\u4e3a\u3002&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;\u53ef\u4f38\u7f29&lt;/strong&gt;\uff1a\u5728eBay Eagle \u88ab\u90e8\u7f72\u5728\u591a\u4e2a\u5927\u578bHadoop\u96c6\u7fa4\u4e0a\uff0c\u8fd9\u4e9b\u96c6\u7fa4\u62e5\u6709\u6570\u767ePB\u7684\u6570\u636e\uff0c\u6bcf\u5929\u67098\u4ebf\u4ee5\u4e0a\u7684\u6570\u636e\u8bbf\u95ee\u65f6\u95f4\uff0c\u56e0\u6b64Eagle\u5fc5\u987b\u5177\u6709\u5904\u7406\u6d77\u91cf\u5b9e\u65f6\u6570\u636e\u7684\u9ad8\u5ea6\u53ef\u4f38\u7f29\u80fd\u529b\u3002&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;\u7b80\u5355\u6613\u7528&lt;/strong&gt;\uff1a\u53ef\u7528\u6027\u4e5f\u662fEagle\u4ea7\u54c1\u7684\u6838\u5fc3\u8bbe\u8ba1\u539f\u5219\u4e4b\u4e00\u3002\u901a\u8fc7Eagle\u7684Sandbox\uff0c\u4f7f\u7528\u8005\u4ec5\u9700\u6570\u5206\u949f\u4fbf\u53ef\u4ee5\u8bbe\u7f6e\u597d\u73af\u5883\u5e76\u5f00\u59cb\u5c1d\u8bd5\u3002\u4e3a\u4e86\u4f7f\u5f97\u7528\u6237\u4f53\u9a8c\u5c3d\u53ef\u80fd\u7b80\u5355\uff0c\u6211\u4eec\u5185\u7f6e\u4e86\u8bb8\u591a\u5f88\u597d\u7684\u4f8b\u5b50\uff0c\u53ea\u9700\u7b80\u5355\u5730\u70b9\u51fb\u51e0\u6b65\u9f20\u6807\uff0c\u4fbf\u53ef\u4ee5\u8f7b\u677e\u5730\u5b8c\u6210\u7b56\u7565\u5730\u521b\u5efa\u548c\u6dfb\u52a0\u3002&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;\u7528\u6237Profile&lt;/strong&gt;\uff1aEagle \u5185\u7f6e\u63d0\u4f9b\u57fa\u4e8e\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u5bf9Hadoop\u4e2d\u7528\u6237\u884c\u4e3a\u4e60\u60ef\u5efa\u7acb\u7528\u6237Profile\u7684\u529f\u80fd\u3002\u6211\u4eec\u63d0\u4f9b\u591a\u79cd\u9ed8\u8ba4\u7684\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u4f9b\u4f60\u9009\u62e9\u7528\u4e8e\u9488\u5bf9\u4e0d\u540cHDFS\u7279\u5f81\u96c6\u8fdb\u884c\u5efa\u6a21\uff0c\u901a\u8fc7\u5386\u53f2\u884c\u4e3a\u6a21\u578b\uff0cEagle\u53ef\u4ee5\u5b9e\u65f6\u5730\u68c0\u6d4b\u5f02\u5e38\u7528\u6237\u884c\u4e3a\u5e76\u4ea7\u751f\u9884\u8b66\u3002&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;\u5f00\u6e90&lt;/strong&gt;\uff1aEagle\u4e00\u76f4\u6839\u636e\u5f00\u6e90\u7684\u6807\u51c6\u5f00\u53d1\uff0c\u5e76\u6784\u5efa\u4e8e\u8bf8\u591a\u5927\u6570\u636e\u9886\u57df\u7684\u5f00\u6e90\u4ea7\u54c1\u4e4b\u4e0a\uff0c\u56e0\u6b64\u6211\u4eec\u51b3\u5b9a\u4ee5Apache\u8bb8\u53ef\u8bc1\u5f00\u6e90Eagle\uff0c\u4ee5\u56de\u9988\u793e\u533a\uff0c\u540c\u65f6\u4e5f\u671f\u5f85\u83b7\u5f97\u793e\u533a\u7684\u53cd\u9988\u3001\u534f\u4f5c\u4e0e\u652f\u6301\u3002&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;eagle&quot;&gt;Eagle\u6982\u89c8&lt;/h2&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/posts/eagle-group.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h4 id=&quot;data-collection-and-storage&quot;&gt;\u6570\u636e\u6d41\u63a5\u5165\u548c\u5b58\u50a8\uff08Data Collection and Storage\uff09&lt;/h4&gt;
+&lt;p&gt;Eagle\u63d0\u4f9b\u9ad8\u5ea6\u53ef\u6269\u5c55\u7684\u7f16\u7a0bAPI\uff0c\u53ef\u4ee5\u652f\u6301\u5c06\u4efb\u4f55\u7c7b\u578b\u7684\u6570\u636e\u6e90\u96c6\u6210\u5230Eagle\u7684\u7b56\u7565\u6267\u884c\u5f15\u64ce\u4e2d\u3002\u4f8b\u5982\uff0c\u5728Eagle HDFS \u5ba1\u8ba1\u4e8b\u4ef6\uff08Audit\uff09\u76d1\u63a7\u6a21\u5757\u4e2d\uff0c\u901a\u8fc7Kafka\u6765\u5b9e\u65f6\u63a5\u6536\u6765\u81eaNamenode Log4j Appender \u6216\u8005 Logstash Agent \u6536\u96c6\u7684\u6570\u636e\uff1b\u5728Eagle Hive \u76d1\u63a7\u6a21\u5757\u4e2d\uff0c\u901a\u8fc7YARN API \u6536\u96c6\u6b63\u5728\u8fd0\u884cJob\u7684Hive \u67e5\u8be2\u65e5\u5fd7\uff0c\u5e76\u4fdd\u8bc1\u6bd4\u8f83\u9ad8\u7684\u53ef\u4f38\u7f29\u6027\u548c\u5bb9\u9519\u6027\u3002&lt;/p&gt;
+
+&lt;h4 id=&quot;data-processing&quot;&gt;\u6570\u636e\u5b9e\u65f6\u5904\u7406\uff08Data Processing\uff09&lt;/h4&gt;
+
+&lt;p&gt;&lt;strong&gt;\u6d41\u5904\u7406API\uff08Stream Processing API\uff09Eagle&lt;/strong&gt; \u63d0\u4f9b\u72ec\u7acb\u4e8e\u7269\u7406\u5e73\u53f0\u800c\u9ad8\u5ea6\u62bd\u8c61\u7684\u6d41\u5904\u7406API\uff0c\u76ee\u524d\u9ed8\u8ba4\u652f\u6301Apache Storm\uff0c\u4f46\u662f\u4e5f\u5141\u8bb8\u6269\u5c55\u5230\u5176\u4ed6\u4efb\u610f\u6d41\u5904\u7406\u5f15\u64ce\uff0c\u6bd4\u5982Flink \u6216\u8005 Samza\u7b49\u3002\u8be5\u5c42\u62bd\u8c61\u5141\u8bb8\u5f00\u53d1\u8005\u5728\u5b9a\u4e49\u76d1\u63a7\u6570\u636e\u5904\u7406\u903b\u8f91\u65f6\uff0c\u65e0\u9700\u5728\u7269\u7406\u6267\u884c\u5c42\u7ed1\u5b9a\u4efb\u4f55\u7279\u5b9a\u6d41\u5904\u7406\u5e73\u53f0\uff0c\u800c\u53ea\u9700\u901a\u8fc7\u590d\u7528\u3001\u62fc\u63a5\u548c\u7ec4\u88c5\u4f8b\u5982\u6570\u636e\u8f6c\u6362\u3001\u8fc7\u6ee4\u3001\u5916\u90e8\u6570\u636eJoin\u7b49\u7ec4\u4ef6\uff0c\u4ee5\u5b9e\u73b0\u6ee1\u8db3\u9700\u6c42\u7684DAG\uff08\u6709\u5411\u65e0\u73af\u56fe\uff09\uff0c\u540c\u65f6\uff0c\u5f00\u53d1\u8005\u4e5f\u53ef\u4ee5\u5f88\u5bb9\u6613\u5730\u4ee5\u7f16\u7a0b\u5730\u65b9\u5f0f\u5c06\u4e1a\u52a1\u903b\u8f91\u6d41\u7a0b\u548cEagle \u7b56\u7565\u5f15\u64ce\u6846\u67b6\u96c6\u6210\u8d77\u6765\u3002Eagle\u6846\u67b6\u5185\u90e8\u4f1a\u5c06\u63cf\u8ff0\u4e1a\u52a1\u903b\u8f91\u7684DAG\u7f16\u8bd1\u6210\u5e95\u5c42\u6d41\u5904\u7406\u67b6\u6784\u7684\u539f\u751f\u5e94\u7528\uff0c\u4f8b\u5982Apache Storm Topology \u7b49\uff0c\u4ece\u4e8b\u5b9e\u73b0\u5e73\u53f0\u7684\u72ec\u7acb\u3002&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;\u4ee5\u4e0b\u662f\u4e00\u4e2aEagle\u5982\u4f55\u5904\u7406\u4e8b\u4ef6\u548c\u544a\u8b66\u7684\u793a\u4f8b\uff1a&lt;/strong&gt;&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;StormExecutionEnvironment 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(\u201cuserActivity\u201c,\u201duserProfileExecutor\u201c) // ML policy evaluation
+env.execute(); // execute stream processing and alert
+&lt;/code&gt;&lt;/pre&gt;
+
+&lt;p&gt;&lt;strong&gt;\u544a\u8b66\u6846\u67b6\uff08Alerting Framework\uff09Eagle&lt;/strong&gt;\u544a\u8b66\u6846\u67b6\u7531\u6d41\u5143\u6570\u636eAPI\u3001\u7b56\u7565\u5f15\u64ce\u670d\u52a1\u63d0\u4f9bAPI\u3001\u7b56\u7565Partitioner API \u4ee5\u53ca\u9884\u8b66\u53bb\u91cd\u6846\u67b6\u7b49\u7ec4\u6210:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;strong&gt;\u6d41\u5143\u6570\u636eAPI&lt;/strong&gt; \u5141\u8bb8\u7528\u6237\u58f0\u660e\u4e8b\u4ef6\u7684Schema\uff0c\u5305\u62ec\u4e8b\u4ef6\u7531\u54ea\u4e9b\u5c5e\u6027\u6784\u6210\u3001\u6bcf\u4e2a\u5c5e\u6027\u7684\u7c7b\u578b\uff0c\u4ee5\u53ca\u5f53\u7528\u6237\u914d\u7f6e\u7b56\u7565\u65f6\u5982\u4f55\u5728\u8fd0\u884c\u65f6\u52a8\u6001\u89e3\u6790\u5c5e\u6027\u7684\u503c\u7b49\u3002&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;\u7b56\u7565\u5f15\u64ce\u670d\u52a1\u63d0\u4f9bAPI&lt;/strong&gt; \u5141\u8bb8\u5f00\u53d1\u8005\u5f88\u5bb9\u6613\u5730\u4ee5\u63d2\u4ef6\u7684\u5f62\u5f0f\u6269\u5c55\u65b0\u7684\u7b56\u7565\u5f15\u64ce\u3002WSO2 Siddhi CEP \u5f15\u64ce\u662fEagle \u4f18\u5148\u9ed8\u8ba4\u652f\u6301\u7684\u7b56\u7565\u5f15\u64ce\uff0c\u540c\u65f6\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u4e5f\u53ef\u4f5c\u4e3a\u53e6\u4e00\u79cd\u7b56\u7565\u5f15\u64ce\u6267\u884c\u3002&lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;\u6269\u5c55\u6027&lt;/strong&gt; Eagle\u7684\u7b56\u7565\u5f15\u64ce\u670d\u52a1\u63d0\u4f9bAPI\u5141\u8bb8\u4f60\u63d2\u5165\u65b0\u7684\u7b56\u7565\u5f15\u64ce&lt;/p&gt;
+
+    &lt;pre&gt;&lt;code&gt;  public interface PolicyEvaluatorServiceProvider {
+    public String getPolicyType();         // literal string to identify one type of policy
+    public Class&amp;lt;? extends PolicyEvaluator&amp;gt; getPolicyEvaluator(); // get policy evaluator implementation
+    public List&amp;lt;Module&amp;gt; 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
+  }
+&lt;/code&gt;&lt;/pre&gt;
+  &lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;\u7b56\u7565Partitioner API&lt;/strong&gt; \u5141\u8bb8\u7b56\u7565\u5728\u4e0d\u540c\u7684\u7269\u7406\u8282\u70b9\u4e0a\u5e76\u884c\u6267\u884c\u3002\u4e5f\u5141\u8bb8\u4f60\u81ea\u5b9a\u4e49\u7b56\u7565Partitioner\u7c7b\u3002\u8fd9\u4e9b\u529f\u80fd\u4f7f\u5f97\u7b56\u7565\u548c\u4e8b\u4ef6\u5b8c\u5168\u4ee5\u5206\u5e03\u5f0f\u7684\u65b9\u5f0f\u6267\u884c\u3002&lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;strong&gt;\u53ef\u4f38\u7f29\u6027&lt;/strong&gt; Eagle \u901a\u8fc7\u652f\u6301\u7b56\u7565\u7684\u5206\u533a\u63a5\u53e3\u6765\u5b9e\u73b0\u5927\u91cf\u7684\u7b56\u7565\u53ef\u4f38\u7f29\u5e76\u53d1\u5730\u8fd0\u884c&lt;/p&gt;
+
+    &lt;pre&gt;&lt;code&gt;  public interface PolicyPartitioner extends Serializable {
+    int partition(int numTotalPartitions, String policyType, String policyId); // method to distribute policies
+  }
+&lt;/code&gt;&lt;/pre&gt;
+
+    &lt;p&gt;&lt;img src=&quot;/images/posts/policy-partition.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+    &lt;blockquote&gt;
+      &lt;p&gt;\u53ef\u4f38\u7f29\u7684Eagle\u7b56\u7565\u6267\u884c\u6846\u67b6&lt;/p&gt;
+    &lt;/blockquote&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;&lt;strong&gt;\u673a\u5668\u5b66\u4e60\u6a21\u5757:&lt;/strong&gt;
+Eagle \u652f\u6301\u6839\u636e\u7528\u6237\u5728Hadoop\u5e73\u53f0\u4e0a\u5386\u53f2\u4f7f\u7528\u884c\u4e3a\u4e60\u60ef\u6765\u5b9a\u4e49\u884c\u4e3a\u6a21\u5f0f\u6216\u7528\u6237Profile\u7684\u80fd\u529b\u3002\u62e5\u6709\u4e86\u8fd9\u4e2a\u529f\u80fd\uff0c\u4e0d\u9700\u8981\u5728\u7cfb\u7edf\u4e2d\u9884\u5148\u8bbe\u7f6e\u56fa\u5b9a\u4e34\u754c\u503c\u7684\u60c5\u51b5\u4e0b\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u667a\u80fd\u5730\u68c0\u6d4b\u51fa\u5f02\u5e38\u7684\u884c\u4e3a\u3002Eagle\u4e2d\u7528\u6237Profile\u662f\u901a\u8fc7\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u751f\u6210\uff0c\u7528\u4e8e\u5728\u7528\u6237\u5f53\u524d\u5b9e\u65f6\u884c\u4e3a\u6a21\u5f0f\u4e0e\u5176\u5bf9\u5e94\u7684\u5386\u53f2\u6a21\u578b\u6a21\u5f0f\u5b58\u5728\u4e00\u5b9a\u7a0b\u5ea6\u7684\u5dee\u5f02\u65f6\u8bc6\u522b\u7528\u6237\u884c\u4e3a\u662f\u5426\u4e3a\u5f02\u5e38\u3002\u76ee\u524d\uff0cEagle \u5185\u7f6e\u63d0\u4f9b\u4ee5\u4e0b\u4e24\u79cd\u7b97\u6cd5\u6765\u68c0\u6d4b\u5f02\u5e38\uff0c\u5206\u522b\u4e3a\u7279\u5f81\u503c\u5206\u89e3\uff08Eigen-Value Decomposition\uff09\u548c \u5bc6\u5ea6\u4f30\u8ba1\uff08Density Estimation\uff09\u3002\u8fd9\u4e9b\u7b97\u6cd5\u4eceHDFS \u5ba1\u8ba1\u65e5\u5fd7\u4e2d\u8bfb\u53d6\u6570\u636e\uff0c\u5bf9\u6570\u636e\u8fdb\u884c\u5206\u5272\u3001\u5ba1\u67e5\u3001\u4ea4\u53c9\u5206\u6790\uff0c\u5468\u671f\u6027\u5730\u4e3a\u6bcf\u4e2a\u7528\u6237\u4f9d\u6b21\u521b\u5efaProfile \u884c\u4e3a\u6a21\u578b\u3002\u4e00\u65e6\u6a21\u578b\u751f\u6210\uff0cEagle\u7684\u5b9e\u65f6\u6d41\u7b56\u7565\u5f15\u64ce\u80fd\u591f\u8fd1\u4e4e\u5b9e\u65f6\u5730\u8bc6\u522b\u51fa\u5f02\u5e38\uff0c\u5206\u8fa8\u5f53\u524d\u7528\u6237\u7684\u884c\u4e3a\u53ef\u7591\u7684\u6216\u8005\u4e0e\u4ed6\u4eec\u7684\u5386\u53f2\u884c\u4e3a\u6a21\u578b\u4e0d\u76f8\u7b26\u3002&lt;/p&gt;
+
+&lt;p&gt;\u4e0b\u56fe\u7b80\u5355\u63cf\u8ff0\u4e86\u76ee\u524dEagle\u4e2d\u7528\u6237Profile\u7684\u79bb\u7ebf\u8bad\u7ec3\u5efa\u6a21\u548c\u5728\u7ebf\u5b9e\u65f6\u76d1\u6d4b\u7684\u6570\u636e\u6d41\uff1a&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/posts/ml-pipeline.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;\u7528\u6237Profile \u79bb\u7ebf\u8bad\u7ec3\u4ee5\u53ca\u5f02\u5e38\u76d1\u6d4b\u67b6\u6784&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;\u57fa\u4e8e\u7528\u6237 Profile\u7684Eagle\u5728\u7ebf\u5b9e\u65f6\u5f02\u5e38\u76d1\u6d4b\u662f\u6839\u636eEagle\u7684\u901a\u7528\u7b56\u7565\u6846\u67b6\u5b9e\u73b0\u7684\uff0c\u7528\u6237Profile\u53ea\u662f\u88ab\u5b9a\u4e49\u4e3aEagle\u7cfb\u7edf\u4e2d\u4e00\u4e2a\u7b56\u7565\u800c\u5df2\uff0c\u7528\u6237Profile\u7684\u7b56\u7565\u662f\u901a\u8fc7\u7ee7\u627f\u81eaEagle\u7edf\u4e00\u7b56\u7565\u6267\u884c\u63a5\u53e3\u7684\u673a\u5668\u5b66\u4e60Evaluator\u6765\u6267\u884c\uff0c\u5176\u7b56\u7565\u7684\u5b9a\u4e49\u4e2d\u5305\u62ec\u5f02\u5e38\u68c0\u6d4b\u8fc7\u7a0b\u4e2d\u9700\u8981\u7684\u7279\u5f81\u5411\u91cf\u7b49\uff08\u5728\u7ebf\u68c0\u6d4b\u4e0e\u79bb\u7ebf\u8bad\u7ec3\u4fdd\u6301\u4e00\u81f4\uff09\u3002&lt;/p&gt;
+
+&lt;p&gt;\u6b64\u5916\uff0cEagle \u63d0\u4f9b\u81ea\u52a8\u8bad\u7ec3\u8c03\u5ea6\u5668\uff0c\u53ef\u6839\u636e\u6587\u4ef6\u6216\u8005UI\u914d\u7f6e\u7684\u65f6\u95f4\u5468\u671f\u548c\u7c92\u5ea6\u6765\u8c03\u5ea6\u8fd9\u4e2a\u57fa\u4e8eSpark\u7684\u79bb\u7ebf\u8bad\u7ec3\u7a0b\u5e8f\uff0c\u7528\u4e8e\u6279\u91cf\u521b\u5efa\u7528\u6237Profile\u548c\u884c\u4e3a\u6a21\u578b\uff0c\u9ed8\u8ba4\u8be5\u8bad\u7ec3\u7cfb\u7edf\u4ee5\u6bcf\u6708\u7684\u9891\u7387\u66f4\u65b0\u6a21\u578b\uff0c\u6a21\u578b\u7c92\u5ea6\u4e3a\u4e00\u5206\u949f\u3002&lt;/p&gt;
+
+&lt;p&gt;Eagle \u5185\u7f6e\u7684\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u57fa\u672c\u601d\u60f3\u5982\u4e0b\uff1a&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;\u6838\u5bc6\u5ea6\u4f30\u8ba1\u7b97\u6cd5 (Density Estimation)&lt;/strong&gt;
+\u8be5\u7b97\u6cd5\u7684\u57fa\u672c\u601d\u60f3\u662f\u6839\u636e\u68c0\u6d4b\u7684\u8bad\u7ec3\u6837\u672c\u6570\u636e\u9488\u5bf9\u6bcf\u4e2a\u7528\u6237\u8ba1\u7b97\u51fa\u5bf9\u5e94\u7684\u6982\u7387\u5bc6\u5ea6\u5206\u5e03\u51fd\u6570\u3002\u9996\u5148\uff0c\u6211\u4eec\u5bf9\u8bad\u7ec3\u6570\u636e\u96c6\u7684\u6bcf\u4e2a\u7279\u5f81\u5747\u503c\u6807\u51c6\u5316\uff0c\u6807\u51c6\u5316\u53ef\u4ee5\u4f7f\u5f97\u6240\u6709\u6570\u636e\u96c6\u8f6c\u5316\u4e3a\u76f8\u540c\u5c3a\u5ea6\u3002\u7136\u540e\uff0c\u5728\u6211\u4eec\u7684\u968f\u673a\u53d8\u91cf\u6982\u7387\u5206\u5e03\u4f30\u8ba1\u4e2d\uff0c\u6211\u4eec\u91c7\u7528\u9ad8\u65af\u5206\u5e03\u5f0f\u51fd\u6570\u6765\u8ba1\u7b97\u6982\u7387\u5bc6\u5ea6\u3002\u5047\u8bbe\u4efb\u610f\u7279\u5f81\u5f7c\u6b64\u76f8\u4e92\u72ec\u7acb\uff0c\u90a3\u4e48\u6700\u7ec8\u7684\u9ad8\u65af\u6982\u7387\u5bc6\u5ea6\u5c31\u53ef\u4ee5\u901a\u8fc7\u5206\u89e3\u5404\u4e2a\u7279\u5f81\u7684\u6982\u7387\u5bc6\u5ea6\u800c\u8ba1\u7b97\u5f97\u5230\u3002\u5728\u7ebf\u5b9e\u65f6\u68c0\u6d4b\u9636\u6bb5\uff0c\u6211\u4eec\u53ef\u4ee5\u9996\u5148\u8ba1\u7b97\u51fa\u6bcf\u4e2a\u7528\u6237\u5b9e\u65f6\u884c\u4e3a\u7684\u6982\u7387\u3002\u5982\u679c\u7528\u6237\u51fa\u73b0\u5f53\u524d\u884c\u4e3a\u7684\u53ef\u80fd\u6027\u4f4e\u4e8e\u67d0\u4e2a\u4e34\u754c\u503c\uff0c\u6211\u4eec\u8868\u8bc6\u4e3a\u5f02\u5e38\u8b66\u544a\uff0c\u800c\u8fd9\u4e2a\u4e34\u754c\u503c\u5b8c\u5168\u7531\u79bb\u7ebf\u8bad\u7ec3\u7a0b\u5e8f\u901a\u8fc7\u79f0\u4e3a\u201c\u9a6c\u4fee\u65af\u76f8\u5173\u7cfb\u6570\u201d\uff08Mathews Correlation Coefficient\uff09\u7684\u65b9\u6cd5\u8ba1\u7b97\u800c\u5f97\u3002&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/posts/density-estimation.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;\u5c55\u793a\u5355\u4e00\u7ef4\u5ea6\u4e0a\u7528\u6237\u884c\u4e3a\u76f4\u65b9\u56fe&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;&lt;strong&gt;\u7279\u5f81\u503c\u5206\u89e3\u7b97\u6cd5\uff08Eigen-Value Decomposition\uff09&lt;/strong&gt;
+\u8be5\u7b97\u6cd5\u4e2d\uff0c\u6211\u4eec\u8ba4\u4e3a\u751f\u6210\u7528\u6237Profile\u7684\u4e3b\u8981\u76ee\u7684\u662f\u4e3a\u4e86\u4ece\u4e2d\u53d1\u73b0\u6709\u4ef7\u503c\u7684\u7528\u6237\u884c\u4e3a\u6a21\u5f0f\u3002\u4e3a\u4e86\u5b9e\u73b0\u8fd9\u4e2a\u76ee\u7684\uff0c\u6211\u4eec\u53ef\u4ee5\u8003\u8651\u5bf9\u7279\u5f81\u4f9d\u6b21\u8fdb\u884c\u7ec4\u5408\uff0c\u7136\u540e\u89c2\u5bdf\u4ed6\u4eec\u76f8\u4e92\u4e4b\u95f4\u662f\u5982\u4f55\u5f71\u54cd\u7684\u3002\u5f53\u6570\u636e\u96c6\u975e\u5e38\u5de8\u5927\u65f6\uff0c\u6b63\u5982\u901a\u5e38\u6211\u4eec\u6240\u9047\u5230\u7684\u573a\u666f\uff0c\u7531\u4e8e\u6b63\u5e38\u6a21\u5f0f\u7684\u6570\u91cf\u975e\u5e38\u4e4b\u591a\uff0c\u4ee5\u81f3\u4e8e\u7279\u5f81\u96c6\u7684\u5f02\u5e38\u7684\u6a21\u5f0f\u5f88\u5bb9\u6613\u88ab\u5ffd\u89c6\u3002\u7531\u4e8e\u6b63\u5e38\u7684\u884c\u4e3a\u6a21\u5f0f\u901a\u5e38\u5904\u4e8e\u975e\u5e38\u4f4e\u7ef4\u7684\u5b50\u7a7a\u95f4\u5185\uff0c\u56e0\u6b64\u6211\u4eec\u4e5f\u8bb8\u53ef\u4ee5\u901a\u8fc7\u964d\u4f4e\u6570\u636e\u96c6\u7684\u7ef4\u5ea6\u6765\u66f4\u597d\u7684\u7406\u89e3\u7528\u6237\u7684\u771f\u6b63\u7684\u884c\u4e3a\u6a21\u5f0f\u3002\u8be5\u65b9\u6cd5\u540c\u6837\u53ef\u4ee5\u5bf9\u4e8e\u8bad\u7ec3\u6570\u636e\u96c6\u8fdb\u884c\u964d\u566a\u3002\u6839\u636e\u5bf9\u5927\u91cf\u7528\u6237\u7279\u5f81\u6570\u636e\u65b9\u5dee\u7684\u8fdb\u884c\u8fd0\u7b97\uff0c\u901a\u5e38\u5728\u6211\u4eec\u7684\u7528\u4f8b\u573a\u666f\u4e2d\u9009\u53d6\u65b9\u5dee\u4e3a95%\u4f5c\u4e3a\u57fa\u51c6\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230\u65b9\u5dee\u4e3a95%\u7684\u4e3b\u6210\u5206\u7684\u6570\u91cf\u4e3ak\uff0c\u56e0\u6b64\u6211\u4eec\u5c06\u524dk\u4e2a\u4e3b\u6210\u5206\u8ba4\u4e3a\u662f\u7528\u6237\u7684\u6b63\u5e38\u5b50\u7a7a\u95f4\uff0c\u800c\u5269\u4e0b\u7684(n-k)\u4e2a\u4e3b\u6210\u5206\u5219\u88ab\u89c6\u4e3a\u5f02\u5e38\u5b50\u7a7a\u95f4\u3002&lt;/p&gt;
+
+&lt;p&gt;\u5f53\u7ebf\u5b9e\u65f6\u5f02\u5e38\u68c0\u6d4b\u65f6\uff0c\u5982\u679c\u7528\u6237\u884c\u4e3a\u6a21\u5f0f\u4f4d\u4e8e\u6b63\u5e38\u5b50\u7a7a\u95f4\u9644\u8fd1\uff0c\u5219\u8ba4\u4e3a\u8be5\u884c\u4e3a\u6b63\u5e38\uff0c\u5426\u5219\uff0c\u5982\u679c\u7528\u6237\u884c\u4e3a\u6a21\u5f0f\u4f4d\u4e8e\u5f02\u5e38\u5b50\u7a7a\u95f4\u9644\u8fd1\uff0c\u5219\u4f1a\u7acb\u5373\u62a5\u8b66\uff0c\u56e0\u4e3a\u6211\u4eec\u76f8\u4fe1\u901a\u5e38\u7528\u6237\u884c\u4e3a\u4e00\u822c\u5e94\u8be5\u4f4d\u4e8e\u6b63\u5e38\u5b50\u7a7a\u95f4\u5185\u3002\u81f3\u4e8e\u5982\u4f55\u8ba1\u7b97\u7528\u6237\u5f53\u524d\u884c\u4e3a\u63a5\u8fd1\u6b63\u5e38\u8fd8\u662f\u5f02\u5e38\u5b50\u7a7a\u95f4\uff0c\u6211\u4eec\u91c7\u7528\u7684\u662f\u6b27\u6c0f\u8ddd\u79bb\u6cd5\uff08Euclidian distance method\uff09\u3002&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/images/posts/eigen-decomposition.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;blockquote&gt;
+  &lt;p&gt;\u5c55\u793a\u91cd\u8981\u7684\u7528\u6237\u884c\u4e3a\u6a21\u5f0f\u6210\u5206&lt;/p&gt;
+&lt;/blockquote&gt;
+
+&lt;p&gt;&lt;strong&gt;Eagle \u670d\u52a1&lt;/strong&gt;&lt;/p&gt;
+
+&lt;p&gt;&lt;strong&gt;\u7b56\u7565\u7ba1\u7406\u5668&lt;/strong&gt; Eagle\u7b56\u7565\u7ba1\u7406\u5668\u63d0\u4f9b\u4ea4\u4e92\u53cb\u597d\u7684\u7528\u6237\u754c\u9762\u548cREST API \u4f9b\u7528\u6237\u8f7b\u677e\u5730\u5b9a\u4e49\u548c\u7ba1\u7406\u7b56\u7565\uff0c\u4e00\u5207\u53ea\u9700\u51e0\u6b21\u9f20\u6807\u70b9\u51fb\u800c\u5df2\u3002Eagle\u7684\u7528\u6237\u754c\u9762\u4f7f\u5f97\u7b56\u7565\u7684\u7ba1\u7406\u3001\u654f\u611f\u5143\u6570\u636e\u7684\u6807\u8bc6\u548c\u5bfc\u5165\u3001HDFS\u6216Hive \u7684\u8d44\u6e90\u6d4f\u89c8\u4ee5\u53ca\u9884\u8b66\u4eea\u8868\u7b49\u529f\u80fd\u90fd\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\u3002&lt;/p&gt;
+
+&lt;p&gt;Eagle \u7b56\u7565\u5f15\u64ce\u9ed8\u8ba4\u652f\u6301WSO2\u7684Siddhi CEP\u5f15\u64ce\u548c\u673a\u5668\u5b66\u4e60\u5f15\u64ce\uff0c\u4ee5\u4e0b\u662f\u51e0\u4e2a\u57fa\u4e8eSiddi CEP\u7684\u7b56\u7565\u793a\u4f8b&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;
+    &lt;p&gt;\u5355\u4e00\u4e8b\u4ef6\u6267\u884c\u7b56\u7565\uff08\u7528\u6237\u8bbf\u95eeHive\u4e2d\u7684\u654f\u611f\u6570\u636e\u5217\uff09&lt;/p&gt;
+
+    &lt;pre&gt;&lt;code&gt;  from hiveAccessLogStream[sensitivityType==&#39;PHONE_NUMBER&#39;] select * insert into outputStream;
+&lt;/code&gt;&lt;/pre&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;\u57fa\u4e8e\u7a97\u53e3\u7684\u7b56\u7565\uff08\u7528\u6237\u572810\u5206\u949f\u5185\u8bbf\u95ee\u76ee\u5f55 /tmp/private \u591a\u4f59 5\u6b21\uff09&lt;/p&gt;
+
+    &lt;pre&gt;&lt;code&gt;  hdfsAuditLogEventStream[(src == &#39;/tmp/private&#39;)]#window.externalTime(timestamp,10 min) select user, count(timestamp) as aggValue group by user having aggValue &amp;gt;= 5 insert into outputStream;
+&lt;/code&gt;&lt;/pre&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;&lt;strong&gt;\u67e5\u8be2\u670d\u52a1\uff08Query Service\uff09&lt;/strong&gt; Eagle \u63d0\u4f9b\u7c7bSQL\u7684REST API\u7528\u6765\u5b9e\u73b0\u9488\u5bf9\u6d77\u91cf\u6570\u636e\u96c6\u7684\u7efc\u5408\u8ba1\u7b97\u3001\u67e5\u8be2\u548c\u5206\u6790\u7684\u80fd\u529b\uff0c\u652f\u6301\u4f8b\u5982\u8fc7\u6ee4\u3001\u805a\u5408\u3001\u76f4\u65b9\u8fd0\u7b97\u3001\u6392\u5e8f\u3001top\u3001\u7b97\u672f\u8868\u8fbe\u5f0f\u4ee5\u53ca\u5206\u9875\u7b49\u3002Eagle\u4f18\u5148\u652f\u6301HBase \u4f5c\u4e3a\u5176\u9ed8\u8ba4\u6570\u636e\u5b58\u50a8\uff0c\u4f46\u662f\u540c\u65f6\u4e5f\u652f\u6301\u57faJDBC\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u3002\u7279\u522b\u662f\u5f53\u9009\u62e9\u4ee5HBase\u4f5c\u4e3a\u5b58\u50a8\u65f6\uff0cEagle\u4fbf\u539f\u751f\u62e5\u6709\u4e86HBase\u5b58\u50a8\u548c\u67e5\u8be2\u6d77\u91cf\u76d1\u63a7\u6570\u636e\u7684\u80fd\u529b\uff0cEagle \u67e5\u8be2\u6846\u67b6\u4f1a\u5c06\u7528\u6237\u63d0\u4f9b\u7684\u7c7bSQL\u67e5\u8be2\u8bed\u6cd5\u6700\u7ec8\u7f16\u8bd1\u6210\u4e3aHBase \u539f\u751f\u7684Filter \u5bf9\u8c61\uff0c\u5e76\u652f\u6301\u901a\u8fc7HBase Coprocessor\u8fdb\u4e00\u6b65\u63d0\u5347\u54cd\u5e94\u901f\u5ea6\u3002&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;query=AlertDefinitionService[@dataSource=&quot;hiveQueryLog&quot;]{@policyDef}&amp;amp;pageSize=100000
+&lt;/code&gt;&lt;/pre&gt;
+
+&lt;h2 id=&quot;eagleebay&quot;&gt;Eagle\u5728eBay\u7684\u4f7f\u7528\u573a\u666f&lt;/h2&gt;
+&lt;p&gt;\u76ee\u524d\uff0cEagle\u7684\u6570\u636e\u884c\u4e3a\u76d1\u63a7\u7cfb\u7edf\u5df2\u7ecf\u90e8\u7f72\u5230\u4e00\u4e2a\u62e5\u67092500\u591a\u4e2a\u8282\u70b9\u7684Hadoop\u96c6\u7fa4\u4e4b\u4e0a\uff0c\u7528\u4ee5\u4fdd\u62a4\u6570\u767ePB\u6570\u636e\u7684\u5b89\u5168\uff0c\u5e76\u6b63\u8ba1\u5212\u4e8e\u4eca\u5e74\u5e74\u5e95\u4e4b\u524d\u6269\u5c55\u5230\u5176\u4ed6\u4e0a\u5341\u4e2aHadoop\u96c6\u7fa4\u4e0a\uff0c\u4ece\u800c\u8986\u76d6eBay \u6240\u6709\u4e3b\u8981Hadoop\u768410000\u591a\u53f0\u8282\u70b9\u3002\u5728\u6211\u4eec\u7684\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u6211\u4eec\u5df2\u9488\u5bf9HDFS\u3001Hive \u7b49\u96c6\u7fa4\u4e2d\u7684\u6570\u636e\u914d\u7f6e\u4e86\u4e00\u4e9b\u57fa\u7840\u7684\u5b89\u5168\u7b56\u7565\uff0c\u5e76\u5c06\u4e8e\u5e74\u5e95\u4e4b\u524d\u4e0d\u65ad\u5f15\u5165\u66f4\u591a\u7684\u7b56\u7565\uff0c\u4ee5\u786e\u4fdd\u91cd\u8981\u6570\u636e\u7684\u7edd\u5bf9\u5b89\u5168\u3002\u76ee\u524d\uff0cEagle\u7684\u7b56\u7565\u6db5\u76d6\u591a\u79cd\u6a21\u5f0f\uff0c\u5305\u62ec\u4ece\u8bbf\u95ee\u6a21\u5f0f\u3001\u9891\u7e41\u8bbf\u95ee\u6570\u636e\u96c6\uff0c\u9884\u5b9a\u4e49\u67e5\u8be2\u7c7b\u578b\u3001Hive \u8868\u548c\u5217\u3001HBase \u8868\u4ee5\u53ca\u57fa\u4e8e\u673a\u5668\u5b66\u4e60\u6a21\u578b\u751f\u6210\u7684\u7528\u6237Profile\u76f8\u5173\u7684\u6240\u6709\u7b56\u7565\u7b49\u3002\u540c\u65f6\uff0c\u6211\u4eec\u4e5f\u6709\u5e7f\u6cdb\u7684\u7b56\u7565\u6765\u9632\u6b62\u6570\u636e\u7684\u4e22\u5931\u3001\u6570\u636e\u88ab\u62f7\u8d1d\u5230\u4e0d\u5b89\u5168\u5730\u70b9\u3001\u654f\u611f\u6570\u636e\u88ab\u672a\u6388\u6743\u533a\u57df\u8bbf\u95ee\u7b49\u3002Eagle\u7b56\u7565\u5b9a\u4e49\u4e0a\u6781\u5927\u7684\u7075\u6d3b\u6027\u548c\u6269\u5c55\u6027\u4f7f\u5f97\u6211\u4eec\u672a\u6765\u53ef\u4ee5\u8f7b\u6613\u5730\u7ee7\u7eed\u6269\u5c55\u66f4\u591a\u66f4\u590d\u6742\u7684\u7b56\u7565\u4ee5\u652f\u6301\u66f4\u591a\u591a\u5143
 \u5316\u7684\u7528\u4f8b\u573a\u666f\u3002&lt;/p&gt;
+
+&lt;h2 id=&quot;section-1&quot;&gt;\u540e\u7eed\u8ba1\u5212&lt;/h2&gt;
+&lt;p&gt;\u8fc7\u53bb\u4e24\u5e74\u4e2d\uff0c\u5728eBay \u9664\u4e86\u88ab\u7528\u4e8e\u6570\u636e\u884c\u4e3a\u76d1\u63a7\u4ee5\u5916\uff0cEagle \u6838\u5fc3\u6846\u67b6\u8fd8\u88ab\u5e7f\u6cdb\u7528\u4e8e\u76d1\u63a7\u8282\u70b9\u5065\u5eb7\u72b6\u51b5\u3001Hadoop\u5e94\u7528\u6027\u80fd\u6307\u6807\u3001Hadoop \u6838\u5fc3\u670d\u52a1\u4ee5\u53ca\u6574\u4e2aHadoop\u96c6\u7fa4\u7684\u5065\u5eb7\u72b6\u51b5\u7b49\u8bf8\u591a\u9886\u57df\u3002\u6211\u4eec\u8fd8\u5efa\u7acb\u4e00\u7cfb\u5217\u7684\u81ea\u52a8\u5316\u673a\u5236\uff0c\u4f8b\u5982\u8282\u70b9\u4fee\u590d\u7b49\uff0c\u5e2e\u52a9\u6211\u4eec\u5e73\u53f0\u90e8\u95e8\u6781\u5927\u5f97\u8282\u7701\u4e86\u6211\u4eec\u4eba\u5de5\u52b3\u529b\uff0c\u5e76\u6709\u6548\u5730\u63d0\u5347\u4e86\u6574\u4e2a\u96c6\u7fa4\u8d44\u6e90\u5730\u5229\u7528\u7387\u3002&lt;/p&gt;
+
+&lt;p&gt;\u4ee5\u4e0b\u662f\u6211\u4eec\u76ee\u524d\u6b63\u5728\u5f00\u53d1\u4e2d\u5730\u4e00\u4e9b\u7279\u6027\uff1a&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;\u6269\u5c55\u673a\u5668\u5b66\u4e60\u6a21\u578b\u5bf9Hive\u548cHBase\u652f\u6301&lt;/li&gt;
+  &lt;li&gt;\u63d0\u4f9b\u9ad8\u5ea6\u53ef\u6269\u5c55\u7684API\uff0c\u4ee5\u65b9\u4fbf\u96c6\u76ee\u524d\u4e1a\u754c\u5e7f\u6cdb\u4f7f\u7528\u7684\u5176\u4ed6\u76d1\u63a7\u9884\u8b66\u5e73\u53f0\u6216\u8005\u5de5\u5177\uff0c\u5982Ganglia\u548cNagios\u7b49\uff0c\u540c\u65f6\u652f\u6301\u654f\u611f\u6570\u636e\u7684\u5bfc\u5165\uff0c\u5982\u4e0eDataguise \u96c6\u6210\u7b49\u3002&lt;/li&gt;
+  &lt;li&gt;\u6b64\u5916\uff0c\u6211\u4eec\u6b63\u5728\u79ef\u6781\u6574\u7406\u5176\u4ed6Hadoop \u96c6\u7fa4\u76d1\u63a7\u6a21\u5757\uff0c\u671f\u671b\u5728\u540e\u7eed\u53d1\u5e03\u4e2d\u5f00\u6e90\u7ed9\u793e\u533a\uff0c\u4f8b\u5982
+    &lt;ul&gt;
+      &lt;li&gt;HBase \u76d1\u63a7&lt;/li&gt;
+      &lt;li&gt;Hadoop \u4f5c\u4e1a\u6027\u80fd\u76d1\u63a7&lt;/li&gt;
+      &lt;li&gt;Hadoop \u8282\u70b9\u76d1\u63a7&lt;/li&gt;
+    &lt;/ul&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;section-2&quot;&gt;\u5173\u4e8e\u4f5c\u8005&lt;/h2&gt;
+&lt;p&gt;&lt;a href=&quot;https://github.com/haoch&quot;&gt;\u9648\u6d69&lt;/a&gt;\uff0cApache Eagle Committer \u548c PMC \u6210\u5458\uff0ceBay \u5206\u6790\u5e73\u53f0\u57fa\u7840\u67b6\u6784\u90e8\u95e8\u9ad8\u7ea7\u8f6f\u4ef6\u5de5\u7a0b\u5e08\uff0c\u8d1f\u8d23Eagle\u7684\u4ea7\u54c1\u8bbe\u8ba1\u3001\u6280\u672f\u67b6\u6784\u3001\u6838\u5fc3\u5b9e\u73b0\u4ee5\u53ca\u5f00\u6e90\u793e\u533a\u63a8\u5e7f\u7b49\u3002&lt;/p&gt;
+
+&lt;p&gt;\u611f\u8c22\u4ee5\u4e0b\u6765\u81eaApache Eagle\u793e\u533a\u548ceBay\u516c\u53f8\u7684\u8054\u5408\u4f5c\u8005\u4eec\u5bf9\u672c\u6587\u7684\u8d21\u732e\uff1a&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/yonzhang&quot;&gt;\u5f20\u52c7&lt;/a&gt;\uff0cApache Eagle Committer\u548cPMC\uff0ceBay \u8d44\u6df1\u67b6\u6784\u5e08&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/sunlibin&quot;&gt;\u5b59\u7acb\u658c&lt;/a&gt;\uff0cApache Eagle Committer\u548cPMC\uff0ceBay \u8f6f\u4ef6\u5de5\u7a0b\u5e08&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/zombiej&quot;&gt;\u848b\u5409\u9e9f&lt;/a&gt;\uff0cApache Eagle Committer\u548cPMC\uff0ceBay \u8f6f\u4ef6\u5de5\u7a0b\u5e08&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/qingwen220&quot;&gt;\u8d75\u6674\u96ef&lt;/a&gt;\uff0cApache Eagle Committer\u548cPMC\uff0ceBay \u8f6f\u4ef6\u5de5\u7a0b\u5e08&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;eBay \u5206\u6790\u5e73\u53f0\u57fa\u7840\u67b6\u6784\u90e8\uff08Analytics Data Infrastructure\uff09\u662feBay\u7684\u5168\u7403\u6570\u636e\u53ca\u5206\u6790\u57fa\u7840\u67b6\u6784\u90e8\u95e8\uff0c\u8d1f\u8d23eBay\u5728\u6570\u636e\u5e93\u3001\u6570\u636e\u4ed3\u5e93\u3001Hadoop\u3001\u5546\u52a1\u667a\u80fd\u4ee5\u53ca\u673a\u5668\u5b66\u4e60\u7b49\u5404\u4e2a\u6570\u636e\u5e73\u53f0\u5f00\u53d1\u3001\u7ba1\u7406\u7b49,\u652f\u6301eBay\u5168\u7403\u5404\u90e8\u95e8\u8fd0\u7528\u9ad8\u7aef\u7684\u6570\u636e\u5206\u6790\u89e3\u51b3\u65b9\u6848\u4f5c\u51fa\u53ca\u65f6\u6709\u6548\u7684\u4f5c\u4e1a\u51b3\u7b56\uff0c\u4e3a\u904d\u5e03\u5168\u7403\u7684\u4e1a\u52a1\u7528\u6237\u63d0\u4f9b\u6570\u636e\u5206\u6790\u89e3\u51b3\u65b9\u6848\u3002&lt;/p&gt;
+
+&lt;h2 id=&quot;section-3&quot;&gt;\u53c2\u8003\u8d44\u6599&lt;/h2&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Apache Eagle \u6587\u6863\uff1a&lt;a href=&quot;http://goeagle.io&quot;&gt;http://goeagle.io&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;Apache Eagle \u6e90\u7801\uff1a&lt;a href=&quot;http://github.com/apache/incubator-eagle&quot;&gt;http://github.com/apache/incubator-eagle&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;Apache Eagle \u9879\u76ee\uff1a&lt;a href=&quot;http://incubator.apache.org/projects/eagle.html&quot;&gt;http://incubator.apache.org/projects/eagle.html&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;section-4&quot;&gt;\u5f15\u7528\u94fe\u63a5&lt;/h2&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;strong&gt;CSDN&lt;/strong&gt;: &lt;a href=&quot;http://www.csdn.net/article/2015-10-29/2826076&quot;&gt;http://www.csdn.net/article/2015-10-29/2826076&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;OSCHINA&lt;/strong&gt;: &lt;a href=&quot;http://www.oschina.net/news/67515/apache-eagle&quot;&gt;http://www.oschina.net/news/67515/apache-eagle&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;China Hadoop Summit&lt;/strong&gt;: &lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzA4MTkyODIzMA==&amp;amp;mid=400298495&amp;amp;idx=1&amp;amp;sn=954031ba8065481c31a3464e2c8a26a5&amp;amp;scene=1&amp;amp;srcid=1102zgGQzedckCmNrfRwounA&amp;amp;uin=MjYyNzgwNDQwMA%3D%3D&amp;amp;key=04dce534b3b035efe14d53fcf6e7062a63179003551e59fad5cf8584703fcaa38779cc4c93cbf931c25f6b34cb2d7653&amp;amp;devicetype=iMac+MacBookPro11%2C3+OSX+OSX+10.10.5+build(14F1021)&amp;amp;version=11020201&amp;amp;lang=en&amp;amp;pass_ticket=TC%2Bod2ZeFnhmci%2Bi4%2BxTTVD6moUrNFX8RXppzoQSa%2BXO3C7evUDs6njeYbsYyCFD&quot;&gt;http://mp.weixin.qq.com/s?\u2026&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;Apache Kylin&lt;/strong&gt;: &lt;a href=&quot;http://mp.weixin.qq.com/s?__biz=MzAwODE3ODU5MA==&amp;amp;mid=400287781&amp;amp;idx=1&amp;amp;sn=343b2b29a37f8ed53a7ecb0465faf515&amp;amp;scene=0&amp;amp;uin=MjYyNzgwNDQwMA%3D%3D&amp;amp;key=04dce534b3b035ef73f964362ac4c43d452ab1b208eb357c488dfcd7d69209e060cfe01e9b146752517d2096f6751370&amp;amp;devicetype=iMac+MacBookPro11%2C3+OSX+OSX+10.10.5+build(14F1021)&amp;amp;version=11020201&amp;amp;lang=en&amp;amp;pass_ticket=TC%2Bod2ZeFnhmci%2Bi4%2BxTTVD6moUrNFX8RXppzoQSa%2BXO3C7evUDs6njeYbsYyCFD&quot;&gt;http://mp.weixin.qq.com/s?\u2026&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;hr /&gt;
+
+&lt;p&gt;&lt;em&gt;\u672c\u6587\u6765\u81eaApache Eagle\u7f51\u7ad9\uff1a&lt;a href=&quot;http://goeagle.io&quot;&gt;http://goeagle.io&lt;/a&gt;\uff0c\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\u548c\u6765\u6e90\u3002&lt;/em&gt;&lt;/p&gt;
+</description>
+        <pubDate>Tue, 27 Oct 2015 03:24:33 +0800</pubDate>
+        <link>http://goeagle.io/post/2015/10/27/apache-eagle-announce-cn.html</link>
+        <guid isPermaLink="true">http://goeagle.io/post/2015/10/27/apache-eagle-announce-cn.html</guid>
+        
+        
+        <category>post</category>
+        
+      </item>
+    
+  </channel>
+</rss>

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/fonts/FontAwesome.otf
----------------------------------------------------------------------
diff --git a/eagle-site/_site/fonts/FontAwesome.otf b/eagle-site/_site/fonts/FontAwesome.otf
new file mode 100644
index 0000000..681bdd4
Binary files /dev/null and b/eagle-site/_site/fonts/FontAwesome.otf differ

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/fonts/flexslider-icon.eot
----------------------------------------------------------------------
diff --git a/eagle-site/_site/fonts/flexslider-icon.eot b/eagle-site/_site/fonts/flexslider-icon.eot
new file mode 100755
index 0000000..97c4196
Binary files /dev/null and b/eagle-site/_site/fonts/flexslider-icon.eot differ

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/fonts/flexslider-icon.svg
----------------------------------------------------------------------
diff --git a/eagle-site/_site/fonts/flexslider-icon.svg b/eagle-site/_site/fonts/flexslider-icon.svg
new file mode 100755
index 0000000..89fd1ab
--- /dev/null
+++ b/eagle-site/_site/fonts/flexslider-icon.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+This is a custom SVG font generated by IcoMoon.
+<iconset grid="14"></iconset>
+</metadata>
+<defs>
+<font id="flexslider-icon" horiz-adv-x="448" >
+<font-face units-per-em="448" ascent="384" descent="-64" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode="&#xf001;" d="M 185.50-9.25l-163.00,162.75q-9.25,9.25 -9.25,22.625t 9.25,22.625l 163.00,162.75q 9.25,9.25 22.625,9.25t 22.625-9.25l 18.75-18.75q 9.25-9.25 9.25-22.625t-9.25-22.625l-121.50-121.50l 121.50-121.25q 9.25-9.50 9.25-22.75t-9.25-22.50l-18.75-18.75q-9.25-9.25 -22.625-9.25t-22.625,9.25z" horiz-adv-x="288"  />
+<glyph unicode="&#xf002;" d="M 274.75,176.00q0.00-13.00 -9.25-22.75l-163.00-162.75q-9.25-9.25 -22.50-9.25t-22.50,9.25l-19.00,18.75q-9.25,9.75 -9.25,22.75q0.00,13.25 9.25,22.50l 121.50,121.50l-121.50,121.25q-9.25,9.75 -9.25,22.75q0.00,13.25 9.25,22.50l 19.00,18.75q 9.00,9.50 22.50,9.50t 22.50-9.50l 163.00-162.75q 9.25-9.25 9.25-22.50z" horiz-adv-x="288"  />
+<glyph unicode="&#xf003;" d="M 346.00,152.25l-332.00-184.50q-5.75-3.25 -9.875-0.75t-4.125,9.00l0.00,368.00 q0.00,6.50 4.125,9.00t 9.875-0.75l 332.00-184.50q 5.75-3.25 5.75-7.75t-5.75-7.75z" horiz-adv-x="352"  />
+<glyph unicode="&#xf004;" d="M 384.00,336.00l0.00-352.00 q0.00-6.50 -4.75-11.25t-11.25-4.75l-128.00,0.00 q-6.50,0.00 -11.25,4.75t-4.75,11.25l0.00,352.00 q0.00,6.50 4.75,11.25t 11.25,4.75l 128.00,0.00 q 6.50,0.00 11.25-4.75t 4.75-11.25zM 160.00,336.00l0.00-352.00 q0.00-6.50 -4.75-11.25t-11.25-4.75l-128.00,0.00 q-6.50,0.00 -11.25,4.75t-4.75,11.25l0.00,352.00 q0.00,6.50 4.75,11.25t 11.25,4.75l 128.00,0.00 q 6.50,0.00 11.25-4.75t 4.75-11.25z" horiz-adv-x="384"  />
+<glyph unicode="&#xf005;" d="M 402.75,208.00q0.00-13.25 -9.25-22.50l-162.75-162.75q-9.50-9.50 -22.75-9.50q-13.50,0.00 -22.50,9.50l-162.75,162.75q-9.50,9.00 -9.50,22.50q0.00,13.25 9.50,22.75l 18.50,18.75q 9.75,9.25 22.75,9.25q 13.25,0.00 22.50-9.25l 121.50-121.50l 121.50,121.50q 9.25,9.25 22.50,9.25q 13.00,0.00 22.75-9.25l 18.75-18.75q 9.25-9.75 9.25-22.75z" horiz-adv-x="416"  />
+<glyph unicode="&#x20;" horiz-adv-x="224" />
+<glyph class="hidden" unicode="&#xf000;" d="M0,384L 448 -64L0 -64 z" horiz-adv-x="0" />
+</font></defs></svg>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/fonts/flexslider-icon.ttf
----------------------------------------------------------------------
diff --git a/eagle-site/_site/fonts/flexslider-icon.ttf b/eagle-site/_site/fonts/flexslider-icon.ttf
new file mode 100755
index 0000000..0543298
Binary files /dev/null and b/eagle-site/_site/fonts/flexslider-icon.ttf differ

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/fonts/flexslider-icon.woff
----------------------------------------------------------------------
diff --git a/eagle-site/_site/fonts/flexslider-icon.woff b/eagle-site/_site/fonts/flexslider-icon.woff
new file mode 100755
index 0000000..10c4eeb
Binary files /dev/null and b/eagle-site/_site/fonts/flexslider-icon.woff differ

http://git-wip-us.apache.org/repos/asf/eagle/blob/0ecb7c1c/eagle-site/_site/fonts/fontawesome-webfont.eot
----------------------------------------------------------------------
diff --git a/eagle-site/_site/fonts/fontawesome-webfont.eot b/eagle-site/_site/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..a30335d
Binary files /dev/null and b/eagle-site/_site/fonts/fontawesome-webfont.eot differ