askari 0.94.6.v0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Moz
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,161 @@
1
+ # Askari #
2
+
3
+ (J)Ruby coprocessors for HBase.
4
+
5
+ Coprocessors are a powerful feature of the HBase store, allowing schema authors to customize behavior in exotic ways. Askari is a small framework for defining and deploying "region observer" coprocessors in modern versions of JRuby.
6
+
7
+ Askari (properly, 'askari wa kifaru') is the Swahili name for the oxpecker or tickbird. These small birds sit on the backs of elephants and rhinoceroses, eating parasitic bugs.
8
+
9
+ ## HBase Versions ##
10
+
11
+ Askari's been tested against these HBase versions:
12
+
13
+ * Cloudera CDH4 0.94.6
14
+ * Apache (Vanilla) 0.94.6
15
+
16
+ ## Development ##
17
+
18
+ In addition to bundler, askari uses maven to pull in jar dependencies.
19
+
20
+ The integration tests require a locally-running hbase.
21
+
22
+ Bootstrap with:
23
+
24
+ # Install mvn.
25
+ rbenv install jruby-1.7.4
26
+ gem install bundler jruby-openssl
27
+ bundle
28
+ rake mvn
29
+ rake
30
+
31
+ ## Hadoop & HBase Standalone Environments ##
32
+
33
+ Since it's kind of a pain to get an hbase development environment up, here's what we do to get a
34
+ standalone pseudo-distributed mode.
35
+
36
+ ### OSX ###
37
+
38
+ Follow [these fine instructions](http://borrelli.org/2012/04/29/installing-hadoop-on-osx-lion/), then `brew install hbase` and salt with the below configs to taste.
39
+
40
+ You might want to change the `${user.home}/Library/Hadoop` directory prefix.
41
+
42
+ In `hadoop-env.sh`, append:
43
+
44
+ ```bash
45
+ export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.krb5.realm= -Djava.security.krb.kdc="
46
+ export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djava.security.krb5.realm= -Djava.security.krb.kdc="
47
+ ```
48
+
49
+ In `hbase-env.sh` append:
50
+
51
+ ```bash
52
+ export HBASE_OPTS="$HBASE_OPTS -Djava.security.krb5.realm= -Djava.security.krb.kdc="
53
+ ```
54
+
55
+ `core-site.xml`:
56
+
57
+ ```xml
58
+ <?xml version="1.0"?>
59
+ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
60
+ <configuration>
61
+ <property>
62
+ <name>hadoop.tmp.dir</name>
63
+ <value>/tmp/hdfs-${user.name}</value>
64
+ </property>
65
+ <property>
66
+ <name>fs.default.name</name>
67
+ <value>hdfs://localhost:8020</value>
68
+ </property>
69
+ </configuration>
70
+ ```
71
+
72
+ `hdfs-site.xml`:
73
+
74
+ ```xml
75
+ <?xml version="1.0"?>
76
+ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
77
+ <configuration>
78
+ <property>
79
+ <name>dfs.data.dir</name>
80
+ <value>${user.home}/Library/Hadoop/dfs</value>
81
+ </property>
82
+ <property>
83
+ <name>dfs.name.dir</name>
84
+ <value>${user.home}/Library/Hadoop/nn</value>
85
+ </property>
86
+ </configuration>
87
+ ```
88
+
89
+ `mapred-site.xml`
90
+
91
+ ```xml
92
+ <?xml version="1.0"?>
93
+ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
94
+ <configuration>
95
+ <property>
96
+ <name>mapred.job.tracker</name>
97
+ <value>localhost:8021</value>
98
+ </property>
99
+ <property>
100
+ <name>mapred.local.dir</name>
101
+ <value>${user.home}/Library/Hadoop/mapred/</value>
102
+ </property>
103
+ </configuration>
104
+ ```
105
+
106
+ `hbase-site.xml`:
107
+
108
+ ```xml
109
+ <?xml version="1.0"?>
110
+ <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
111
+ <configuration>
112
+ <property>
113
+ <name>hbase.zookeeper.quorum</name>
114
+ <value>localhost</value>
115
+ </property>
116
+ <property>
117
+ <name>hbase.rootdir</name>
118
+ <value>hdfs://localhost:8020/hbase</value>
119
+ </property>
120
+ <property>
121
+ <name>hbase.cluster.distributed</name>
122
+ <value>true</value>
123
+ </property>
124
+ <property>
125
+ <name>dfs.support.append</name>
126
+ <value>true</value>
127
+ </property>
128
+ <property>
129
+ <name>dfs.client.read.shortcircuit</name>
130
+ <value>true</value>
131
+ </property>
132
+ </configuration>
133
+ ```
134
+
135
+ Turn the whole mess on with:
136
+
137
+ ```sh
138
+ start-all.sh
139
+ start-hbase.sh
140
+ hbase-daemon.sh start thrift -f -c
141
+ ```
142
+
143
+ Stop with:
144
+
145
+ ```sh
146
+ hbase-daemon.sh stop thrift
147
+ stop-hbase.sh
148
+ stop-all.sh
149
+ ```
150
+
151
+ ### Ubuntu ###
152
+
153
+ Come back later.
154
+
155
+ ## License ##
156
+
157
+ MIT. See [LICENSE](LICENSE).
158
+
159
+ ## Contributing ##
160
+
161
+ Fork it, use feature branches, open PRs.
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env rake
2
+ # -*- ruby encoding: utf-8 -*-
3
+
4
+ require File.expand_path('../config/setup_load_paths', __FILE__)
5
+ require 'rake'
6
+ require 'rake/clean'
7
+ require 'bundler/gem_tasks'
8
+
9
+ # Load tasks
10
+ Dir["./tasks/*.rb"].sort.each { |f| require f }
11
+
12
+ task :default => :spec
@@ -0,0 +1,7 @@
1
+ #! /usr/bin/env ruby
2
+ # -*- ruby encoding: utf-8 -*-
3
+
4
+ # Warbler requires this file to exist.
5
+ puts <<-EOS
6
+ See https://github.com/seomoz/askari
7
+ EOS
File without changes
@@ -0,0 +1,19 @@
1
+ module Askari
2
+ module Packaging
3
+ extend self
4
+
5
+ def java_classes
6
+ Dir["#{root}/classes/**/*"]
7
+ end
8
+
9
+ def java_class_pathmap
10
+ "%{#{root}/classes/,}p"
11
+ end
12
+
13
+ private
14
+
15
+ def root
16
+ File.expand_path('../../..', __FILE__)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ module Askari
2
+ # The target hbase version.
3
+ # Users should choose the largest version less than or equal to their installation's version.
4
+ HBASE_VERSION = '0.94.6'
5
+
6
+ # The askari library version.
7
+ LIBRARY_VERSION = '0.0.1'
8
+
9
+ VERSION = "#{HBASE_VERSION}.v#{LIBRARY_VERSION}"
10
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: askari
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.94.6.v0.0.1
5
+ prerelease: 7
6
+ platform: ruby
7
+ authors:
8
+ - Phil Smith
9
+ - Brandon Forehand
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-07-15 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '10'
22
+ none: false
23
+ requirement: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: '10'
28
+ none: false
29
+ prerelease: false
30
+ type: :development
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '2.13'
38
+ none: false
39
+ requirement: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '2.13'
44
+ none: false
45
+ prerelease: false
46
+ type: :development
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-fire
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.2'
54
+ none: false
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: '1.2'
60
+ none: false
61
+ prerelease: false
62
+ type: :development
63
+ description: Askari is a framework for authoring and deploying HBase coprocessors in jruby.
64
+ email:
65
+ - phil.h.smith@gmail.com
66
+ - brandon@moz.com
67
+ executables:
68
+ - askari
69
+ extensions: []
70
+ extra_rdoc_files: []
71
+ files:
72
+ - README.md
73
+ - LICENSE
74
+ - Gemfile
75
+ - Rakefile
76
+ - lib/askari/environment.rb
77
+ - lib/askari/packaging.rb
78
+ - lib/askari/version.rb
79
+ - classes/askari/AbstractEnvironment.class
80
+ - classes/askari/Environment.class
81
+ - classes/askari/JRubyEnvironment.class
82
+ - classes/askari/RegionObserver.class
83
+ - bin/askari
84
+ homepage: https://github.com/seomoz/askari
85
+ licenses: []
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ - classes
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '>='
94
+ - !ruby/object:Gem::Version
95
+ segments:
96
+ - 0
97
+ version: '0'
98
+ hash: 2
99
+ none: false
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>'
103
+ - !ruby/object:Gem::Version
104
+ version: 1.3.1
105
+ none: false
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 1.8.24
109
+ signing_key:
110
+ specification_version: 3
111
+ summary: Askari makes HBase coprocessors in jruby.
112
+ test_files: []