wukong 1.4.7 → 1.4.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/CHANGELOG.textile +9 -0
  2. data/README.textile +1 -1
  3. data/bin/hdp-bzip +28 -0
  4. data/bin/hdp-mkdir +1 -1
  5. data/bin/hdp-stream-flat +3 -2
  6. data/bin/wu-lign +32 -18
  7. data/docpages/pig/cookbook.html +481 -0
  8. data/docpages/pig/images/hadoop-logo.jpg +0 -0
  9. data/docpages/pig/images/instruction_arrow.png +0 -0
  10. data/docpages/pig/images/pig-logo.gif +0 -0
  11. data/docpages/pig/piglatin_ref1.html +1103 -0
  12. data/docpages/pig/piglatin_ref2.html +14340 -0
  13. data/docpages/pig/setup.html +505 -0
  14. data/docpages/pig/skin/basic.css +166 -0
  15. data/docpages/pig/skin/breadcrumbs.js +237 -0
  16. data/docpages/pig/skin/fontsize.js +166 -0
  17. data/docpages/pig/skin/getBlank.js +40 -0
  18. data/docpages/pig/skin/getMenu.js +45 -0
  19. data/docpages/pig/skin/images/chapter.gif +0 -0
  20. data/docpages/pig/skin/images/chapter_open.gif +0 -0
  21. data/docpages/pig/skin/images/current.gif +0 -0
  22. data/docpages/pig/skin/images/external-link.gif +0 -0
  23. data/docpages/pig/skin/images/header_white_line.gif +0 -0
  24. data/docpages/pig/skin/images/page.gif +0 -0
  25. data/docpages/pig/skin/images/pdfdoc.gif +0 -0
  26. data/docpages/pig/skin/images/rc-b-l-15-1body-2menu-3menu.png +0 -0
  27. data/docpages/pig/skin/images/rc-b-r-15-1body-2menu-3menu.png +0 -0
  28. data/docpages/pig/skin/images/rc-b-r-5-1header-2tab-selected-3tab-selected.png +0 -0
  29. data/docpages/pig/skin/images/rc-t-l-5-1header-2searchbox-3searchbox.png +0 -0
  30. data/docpages/pig/skin/images/rc-t-l-5-1header-2tab-selected-3tab-selected.png +0 -0
  31. data/docpages/pig/skin/images/rc-t-l-5-1header-2tab-unselected-3tab-unselected.png +0 -0
  32. data/docpages/pig/skin/images/rc-t-r-15-1body-2menu-3menu.png +0 -0
  33. data/docpages/pig/skin/images/rc-t-r-5-1header-2searchbox-3searchbox.png +0 -0
  34. data/docpages/pig/skin/images/rc-t-r-5-1header-2tab-selected-3tab-selected.png +0 -0
  35. data/docpages/pig/skin/images/rc-t-r-5-1header-2tab-unselected-3tab-unselected.png +0 -0
  36. data/docpages/pig/skin/print.css +54 -0
  37. data/docpages/pig/skin/profile.css +181 -0
  38. data/docpages/pig/skin/screen.css +587 -0
  39. data/docpages/pig/tutorial.html +1059 -0
  40. data/docpages/pig/udf.html +1509 -0
  41. data/examples/keystore/conditional_outputter_example.rb +70 -0
  42. data/examples/{graph → network_graph}/adjacency_list.rb +0 -0
  43. data/examples/{graph → network_graph}/breadth_first_search.rb +0 -0
  44. data/examples/{graph → network_graph}/gen_2paths.rb +0 -0
  45. data/examples/{graph → network_graph}/gen_multi_edge.rb +0 -0
  46. data/examples/{graph → network_graph}/gen_symmetric_links.rb +0 -0
  47. data/examples/pagerank/run_pagerank.sh +10 -8
  48. data/examples/{apache_log_parser.rb → server_logs/apache_log_parser.rb} +0 -0
  49. data/examples/stupidly_simple_filter.rb +43 -0
  50. data/lib/wukong/extensions/hash.rb +13 -0
  51. data/lib/wukong/extensions/hash_like.rb +7 -0
  52. data/lib/wukong/keystore/cassandra_conditional_outputter.rb +122 -0
  53. data/lib/wukong/script.rb +27 -22
  54. data/lib/wukong/script/hadoop_command.rb +5 -3
  55. data/lib/wukong/streamer/accumulating_reducer.rb +2 -1
  56. data/wukong.gemspec +64 -26
  57. metadata +89 -31
  58. data/docpages/pig/PigLatinReferenceManual.html +0 -19134
  59. data/examples/foo.rb +0 -9
  60. data/examples/package-local.rb +0 -100
  61. data/examples/package.rb +0 -96
  62. data/examples/run_all.sh +0 -47
@@ -0,0 +1,166 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * General
19
+ */
20
+
21
+ img { border: 0; }
22
+
23
+ #content table {
24
+ border: 0;
25
+ width: 100%;
26
+ }
27
+ /*Hack to get IE to render the table at 100%*/
28
+ * html #content table { margin-left: -3px; }
29
+
30
+ #content th,
31
+ #content td {
32
+ margin: 0;
33
+ padding: 0;
34
+ vertical-align: top;
35
+ }
36
+
37
+ .clearboth {
38
+ clear: both;
39
+ }
40
+
41
+ .note, .warning, .fixme {
42
+ border: solid black 1px;
43
+ margin: 1em 3em;
44
+ }
45
+
46
+ .note .label {
47
+ background: #369;
48
+ color: white;
49
+ font-weight: bold;
50
+ padding: 5px 10px;
51
+ }
52
+ .note .content {
53
+ background: #F0F0FF;
54
+ color: black;
55
+ line-height: 120%;
56
+ font-size: 90%;
57
+ padding: 5px 10px;
58
+ }
59
+ .warning .label {
60
+ background: #C00;
61
+ color: white;
62
+ font-weight: bold;
63
+ padding: 5px 10px;
64
+ }
65
+ .warning .content {
66
+ background: #FFF0F0;
67
+ color: black;
68
+ line-height: 120%;
69
+ font-size: 90%;
70
+ padding: 5px 10px;
71
+ }
72
+ .fixme .label {
73
+ background: #C6C600;
74
+ color: black;
75
+ font-weight: bold;
76
+ padding: 5px 10px;
77
+ }
78
+ .fixme .content {
79
+ padding: 5px 10px;
80
+ }
81
+
82
+ /**
83
+ * Typography
84
+ */
85
+
86
+ body {
87
+ font-family: verdana, "Trebuchet MS", arial, helvetica, sans-serif;
88
+ font-size: 100%;
89
+ }
90
+
91
+ #content {
92
+ font-family: Georgia, Palatino, Times, serif;
93
+ font-size: 95%;
94
+ }
95
+ #tabs {
96
+ font-size: 70%;
97
+ }
98
+ #menu {
99
+ font-size: 80%;
100
+ }
101
+ #footer {
102
+ font-size: 70%;
103
+ }
104
+
105
+ h1, h2, h3, h4, h5, h6 {
106
+ font-family: "Trebuchet MS", verdana, arial, helvetica, sans-serif;
107
+ font-weight: bold;
108
+ margin-top: 1em;
109
+ margin-bottom: .5em;
110
+ }
111
+
112
+ h1 {
113
+ margin-top: 0;
114
+ margin-bottom: 1em;
115
+ font-size: 1.4em;
116
+ }
117
+ #content h1 {
118
+ font-size: 160%;
119
+ margin-bottom: .5em;
120
+ }
121
+ #menu h1 {
122
+ margin: 0;
123
+ padding: 10px;
124
+ background: #336699;
125
+ color: white;
126
+ }
127
+ h2 { font-size: 120%; }
128
+ h3 { font-size: 100%; }
129
+ h4 { font-size: 90%; }
130
+ h5 { font-size: 80%; }
131
+ h6 { font-size: 75%; }
132
+
133
+ p {
134
+ line-height: 120%;
135
+ text-align: left;
136
+ margin-top: .5em;
137
+ margin-bottom: 1em;
138
+ }
139
+
140
+ #content li,
141
+ #content th,
142
+ #content td,
143
+ #content li ul,
144
+ #content li ol{
145
+ margin-top: .5em;
146
+ margin-bottom: .5em;
147
+ }
148
+
149
+
150
+ #content li li,
151
+ #minitoc-area li{
152
+ margin-top: 0em;
153
+ margin-bottom: 0em;
154
+ }
155
+
156
+ #content .attribution {
157
+ text-align: right;
158
+ font-style: italic;
159
+ font-size: 85%;
160
+ margin-top: 1em;
161
+ }
162
+
163
+ .codefrag {
164
+ font-family: "Courier New", Courier, monospace;
165
+ font-size: 110%;
166
+ }
@@ -0,0 +1,237 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * This script, when included in a html file, builds a neat breadcrumb trail
19
+ * based on its url. That is, if it doesn't contains bugs (I'm relatively
20
+ * sure it does).
21
+ *
22
+ * Typical usage:
23
+ * <script type="text/javascript" language="JavaScript" src="breadcrumbs.js"></script>
24
+ */
25
+
26
+ /**
27
+ * IE 5 on Mac doesn't know Array.push.
28
+ *
29
+ * Implement it - courtesy to fritz.
30
+ */
31
+ var abc = new Array();
32
+ if (!abc.push) {
33
+ Array.prototype.push = function(what){this[this.length]=what}
34
+ }
35
+
36
+ /* ========================================================================
37
+ CONSTANTS
38
+ ======================================================================== */
39
+
40
+ /**
41
+ * Two-dimensional array containing extra crumbs to place at the front of
42
+ * the trail. Specify first the name of the crumb, then the URI that belongs
43
+ * to it. You'll need to modify this for every domain or subdomain where
44
+ * you use this script (you can leave it as an empty array if you wish)
45
+ */
46
+ var PREPREND_CRUMBS = new Array();
47
+
48
+ var link1 = "@skinconfig.trail.link1.name@";
49
+ var link2 = "@skinconfig.trail.link2.name@";
50
+ var link3 = "@skinconfig.trail.link3.name@";
51
+
52
+ var href1 = "@skinconfig.trail.link1.href@";
53
+ var href2 = "@skinconfig.trail.link2.href@";
54
+ var href3 = "@skinconfig.trail.link3.href@";
55
+
56
+ if(!(link1=="")&&!link1.indexOf( "@" ) == 0){
57
+ PREPREND_CRUMBS.push( new Array( link1, href1 ) );
58
+ }
59
+ if(!(link2=="")&&!link2.indexOf( "@" ) == 0){
60
+ PREPREND_CRUMBS.push( new Array( link2, href2 ) );
61
+ }
62
+ if(!(link3=="")&&!link3.indexOf( "@" ) == 0){
63
+ PREPREND_CRUMBS.push( new Array( link3, href3 ) );
64
+ }
65
+
66
+ /**
67
+ * String to include between crumbs:
68
+ */
69
+ var DISPLAY_SEPARATOR = " &gt; ";
70
+ /**
71
+ * String to include at the beginning of the trail
72
+ */
73
+ var DISPLAY_PREPREND = " &gt; ";
74
+ /**
75
+ * String to include at the end of the trail
76
+ */
77
+ var DISPLAY_POSTPREND = "";
78
+
79
+ /**
80
+ * CSS Class to use for a single crumb:
81
+ */
82
+ var CSS_CLASS_CRUMB = "breadcrumb";
83
+
84
+ /**
85
+ * CSS Class to use for the complete trail:
86
+ */
87
+ var CSS_CLASS_TRAIL = "breadcrumbTrail";
88
+
89
+ /**
90
+ * CSS Class to use for crumb separator:
91
+ */
92
+ var CSS_CLASS_SEPARATOR = "crumbSeparator";
93
+
94
+ /**
95
+ * Array of strings containing common file extensions. We use this to
96
+ * determine what part of the url to ignore (if it contains one of the
97
+ * string specified here, we ignore it).
98
+ */
99
+ var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
100
+
101
+ /**
102
+ * String that separates parts of the breadcrumb trail from each other.
103
+ * When this is no longer a slash, I'm sure I'll be old and grey.
104
+ */
105
+ var PATH_SEPARATOR = "/";
106
+
107
+ /* ========================================================================
108
+ UTILITY FUNCTIONS
109
+ ======================================================================== */
110
+ /**
111
+ * Capitalize first letter of the provided string and return the modified
112
+ * string.
113
+ */
114
+ function sentenceCase( string )
115
+ { return string;
116
+ //var lower = string.toLowerCase();
117
+ //return lower.substr(0,1).toUpperCase() + lower.substr(1);
118
+ }
119
+
120
+ /**
121
+ * Returns an array containing the names of all the directories in the
122
+ * current document URL
123
+ */
124
+ function getDirectoriesInURL()
125
+ {
126
+ var trail = document.location.pathname.split( PATH_SEPARATOR );
127
+
128
+ // check whether last section is a file or a directory
129
+ var lastcrumb = trail[trail.length-1];
130
+ for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
131
+ {
132
+ if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
133
+ {
134
+ // it is, remove it and send results
135
+ return trail.slice( 1, trail.length-1 );
136
+ }
137
+ }
138
+
139
+ // it's not; send the trail unmodified
140
+ return trail.slice( 1, trail.length );
141
+ }
142
+
143
+ /* ========================================================================
144
+ BREADCRUMB FUNCTIONALITY
145
+ ======================================================================== */
146
+ /**
147
+ * Return a two-dimensional array describing the breadcrumbs based on the
148
+ * array of directories passed in.
149
+ */
150
+ function getBreadcrumbs( dirs )
151
+ {
152
+ var prefix = "/";
153
+ var postfix = "/";
154
+
155
+ // the array we will return
156
+ var crumbs = new Array();
157
+
158
+ if( dirs != null )
159
+ {
160
+ for( var i = 0; i < dirs.length; i++ )
161
+ {
162
+ prefix += dirs[i] + postfix;
163
+ crumbs.push( new Array( dirs[i], prefix ) );
164
+ }
165
+ }
166
+
167
+ // preprend the PREPREND_CRUMBS
168
+ if(PREPREND_CRUMBS.length > 0 )
169
+ {
170
+ return PREPREND_CRUMBS.concat( crumbs );
171
+ }
172
+
173
+ return crumbs;
174
+ }
175
+
176
+ /**
177
+ * Return a string containing a simple text breadcrumb trail based on the
178
+ * two-dimensional array passed in.
179
+ */
180
+ function getCrumbTrail( crumbs )
181
+ {
182
+ var xhtml = DISPLAY_PREPREND;
183
+
184
+ for( var i = 0; i < crumbs.length; i++ )
185
+ {
186
+ xhtml += '<a href="' + crumbs[i][1] + '" >';
187
+ xhtml += unescape( crumbs[i][0] ) + '</a>';
188
+ if( i != (crumbs.length-1) )
189
+ {
190
+ xhtml += DISPLAY_SEPARATOR;
191
+ }
192
+ }
193
+
194
+ xhtml += DISPLAY_POSTPREND;
195
+
196
+ return xhtml;
197
+ }
198
+
199
+ /**
200
+ * Return a string containing an XHTML breadcrumb trail based on the
201
+ * two-dimensional array passed in.
202
+ */
203
+ function getCrumbTrailXHTML( crumbs )
204
+ {
205
+ var xhtml = '<span class="' + CSS_CLASS_TRAIL + '">';
206
+ xhtml += DISPLAY_PREPREND;
207
+
208
+ for( var i = 0; i < crumbs.length; i++ )
209
+ {
210
+ xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + '">';
211
+ xhtml += unescape( crumbs[i][0] ) + '</a>';
212
+ if( i != (crumbs.length-1) )
213
+ {
214
+ xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + DISPLAY_SEPARATOR + '</span>';
215
+ }
216
+ }
217
+
218
+ xhtml += DISPLAY_POSTPREND;
219
+ xhtml += '</span>';
220
+
221
+ return xhtml;
222
+ }
223
+
224
+ /* ========================================================================
225
+ PRINT BREADCRUMB TRAIL
226
+ ======================================================================== */
227
+
228
+ // check if we're local; if so, only print the PREPREND_CRUMBS
229
+ if( document.location.href.toLowerCase().indexOf( "http://" ) == -1 )
230
+ {
231
+ document.write( getCrumbTrail( getBreadcrumbs() ) );
232
+ }
233
+ else
234
+ {
235
+ document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
236
+ }
237
+
@@ -0,0 +1,166 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ function init()
18
+ { //embedded in the doc
19
+ //ndeSetTextSize();
20
+ }
21
+
22
+ function checkBrowser(){
23
+ if (!document.getElementsByTagName){
24
+ return true;
25
+ }
26
+ else{
27
+ return false;
28
+ }
29
+ }
30
+
31
+
32
+ function ndeSetTextSize(chgsize,rs)
33
+ {
34
+ var startSize;
35
+ var newSize;
36
+
37
+ if (!checkBrowser)
38
+ {
39
+ return;
40
+ }
41
+
42
+ startSize = parseInt(ndeGetDocTextSize());
43
+
44
+ if (!startSize)
45
+ {
46
+ startSize = 16;
47
+ }
48
+
49
+ switch (chgsize)
50
+ {
51
+ case 'incr':
52
+ newSize = startSize + 2;
53
+ break;
54
+
55
+ case 'decr':
56
+ newSize = startSize - 2;
57
+ break;
58
+
59
+ case 'reset':
60
+ if (rs) {newSize = rs;} else {newSize = 16;}
61
+ break;
62
+
63
+ default:
64
+ try{
65
+ newSize = parseInt(ndeReadCookie("nde-textsize"));
66
+ }
67
+ catch(e){
68
+ alert(e);
69
+ }
70
+
71
+ if (!newSize || newSize == 'NaN')
72
+ {
73
+ newSize = startSize;
74
+ }
75
+ break;
76
+
77
+ }
78
+
79
+ if (newSize < 10)
80
+ {
81
+ newSize = 10;
82
+ }
83
+
84
+ newSize += 'px';
85
+
86
+ document.getElementsByTagName('html')[0].style.fontSize = newSize;
87
+ document.getElementsByTagName('body')[0].style.fontSize = newSize;
88
+
89
+ ndeCreateCookie("nde-textsize", newSize, 365);
90
+ }
91
+
92
+ function ndeGetDocTextSize()
93
+ {
94
+ if (!checkBrowser)
95
+ {
96
+ return 0;
97
+ }
98
+
99
+ var size = 0;
100
+ var body = document.getElementsByTagName('body')[0];
101
+
102
+ if (body.style && body.style.fontSize)
103
+ {
104
+ size = body.style.fontSize;
105
+ }
106
+ else if (typeof(getComputedStyle) != 'undefined')
107
+ {
108
+ size = getComputedStyle(body,'').getPropertyValue('font-size');
109
+ }
110
+ else if (body.currentStyle)
111
+ {
112
+ size = body.currentStyle.fontSize;
113
+ }
114
+
115
+ //fix IE bug
116
+ if( isNaN(size)){
117
+ if(size.substring(size.length-1)=="%"){
118
+ return
119
+ }
120
+
121
+ }
122
+
123
+ return size;
124
+
125
+ }
126
+
127
+
128
+
129
+ function ndeCreateCookie(name,value,days)
130
+ {
131
+ var cookie = name + "=" + value + ";";
132
+
133
+ if (days)
134
+ {
135
+ var date = new Date();
136
+ date.setTime(date.getTime()+(days*24*60*60*1000));
137
+ cookie += " expires=" + date.toGMTString() + ";";
138
+ }
139
+ cookie += " path=/";
140
+
141
+ document.cookie = cookie;
142
+
143
+ }
144
+
145
+ function ndeReadCookie(name)
146
+ {
147
+ var nameEQ = name + "=";
148
+ var ca = document.cookie.split(';');
149
+
150
+
151
+ for(var i = 0; i < ca.length; i++)
152
+ {
153
+ var c = ca[i];
154
+ while (c.charAt(0) == ' ')
155
+ {
156
+ c = c.substring(1, c.length);
157
+ }
158
+
159
+ ctest = c.substring(0,name.length);
160
+
161
+ if(ctest == name){
162
+ return c.substring(nameEQ.length,c.length);
163
+ }
164
+ }
165
+ return null;
166
+ }