??xml version="1.0" encoding="utf-8" standalone="yes"?> ҎGartner的估计,目前的Hadoop生态系l市模在7700万美元左叻I2016q_该市模将快速增长至8.13亿美元?/p> 但是在Hadoopq个快速扩增的蓝v中游泛_ƈ非易事,不仅开发大数据基础设施技术品这件事很难Q销售v来也很难Q具体到大数据基设施工具?Hadoop、NoSQL数据库和处理系l则更是难上加难。客户需要大量培训和教育Q付费用户需要大量支持和及时跟进的品开发工作。而跟企业U客h 交道往往q创业公司团队的强V此外,大数据基设施技术创业通常寚w险投资规模也有较高要求?/p> 管困难重重QHadoop创业公司依然如雨后春W冒出,除了Cloudera、Datameer、DataStax和MapR{已l功成名q Hadoop创业公司外,最qCIO杂志评出?014q十大最值得x的Hadoop创业公司Q了解这些公司的产品和商业模式对企业大数据技术创业者和 大数据应用用h说都非常有参考h| 一?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">Platfora 业务Q所提供的大数据分析解决Ҏ能够Hadoop中的原始数据转换成可互动的,Z内存计算的商业智能服务?/p> 介:创立?011q_q今已募?500万美元?/p> 入选理由:Platfora的目标是化复杂难用的HadoopQ推动Hadoop在企业市场的应用。Platfora的做法是化数据采集和分析 程Q将Hadoop中的原始数据自动转化成可以互动的商业服务Q无需ETL或者数据仓库?参考阅读:Hadoop只是Ih的ETL) 二?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">Alpine Data Labs 业务Q提供基于Hadoop的数据分析^?/p> 介:创立?010q_q今累计融资2350万美元?/p> 入选理由:复杂的高U分析和机器学习应用通常都需要脚本和代码开发高手实玎ͼq进一?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">推高了数据科学家的技术门?/a>。实际上大数据企业高和ITl理都没旉也没兴致学习~程技术,或者去了解复杂的Hadoop。Alpine Data通过SaaS服务的方式大q降低了预测分析的应用门槛?/p> 三?/strong>Altiscale 业务Q提供Hadoopx务(HaaSQ?/p> 介:创立?012q?月,q今融资1200万美元?/p> 入选理由:大数据正在闹人才荒,而通过云计提供Hadoop相关服务无疑是普及Hadoo的一条捷径,ҎTechNavio的估计,2016q?HaaS市场规模高?90亿美元,是块大蛋p。但是HaaS市场的竞争已l日激烈,包括亚马逊EMR、微软的Hadoop on AzureQ以及Rackspace的Hortonworks云服务等都是重量U玩ӞAltiscaleq需要与Hortonworks?Cloudera、Mortar Data、Qubole、Xpleny展开直接竞争?/p> 四?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">Trifacta 业务Q提供^台帮助用户将复杂的原始数据{化成q净的结构化格式供分析用?/p> 介:创立?012q_q今融资1630万美元?/p> 入选理由:大数据技术^台和分析工具之间存在一个巨大的瓉Q那是数据分析专家需要花费大量精力和旉转化数据Q而且业务数据分析师们往往也ƈ?具备独立完成数据转化工作的技术能力。ؓ了解册个问题Trifacta开发出?#8220;预测互动”技术,数据操作可视化Q而且Trifacta的机器学习算 法还能同时观察用户和数据属性,预测用户意图Qƈ自动l出。Trifata的竞争对手是Paxata、Informatica和CirroHow?/p> 五?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">Splice Machine 业务Q提供面向大数据应用的,ZHadoop的SQL兼容数据库?/p> 介:创立?012q_q今融资1900万美元?/p> 入选理由:新的数据技术得传l关pd数据库的一些流行功能如ACID合规、交易一致性和标准的SQL查询语言{得以在廉h可扩展的Hadoop?延箋。Splice Machine保留了NoSQL数据库所有的优点Q例如auto-shardingQ容错、可扩展性等Q同时又保留了SQL?/p> 六?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">DataTorrent 业务Q提供基于Hadoopq_的实时流处理q_ 介:创立?012q_2013q?月获?00万美元A轮融资?/p> 入选理由:大数据的未来是快数据Q而DataTorrent正是要解军_数据的问题?/p> 七?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">Qubole 业务Q提供大数据DaaS服务Q基?#8220;真正的自动扩展Hadoop集群”?/p> 介:创立?011q_累计融资700万美元?/p> 入选理由:大数据h才一难求,对于大多C业来_像用SaaS企业应用一样用Hadoop是一个现实的选择?/p> 八?a style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">Continuuity 业务Q提供基于Hadoop的大数据应用托管q_ 介:创立?011q_累计获得1250万美元融资,创始人兼CEO Todd Papaioannou曾是雅虎副总裁云架构负责hQ去q夏天TodddContinuuity后,联合创始人CTO Jonathan Gray接替担QCEO一职?/p> 入选理由:Continuuity的商业模式非常聪明也非常独特Q他们绕q非帔R~的Hadoop专家Q直接向Java开发者提供应用开发^収ͼ?旗舰产品Reactor是一个基于Hadoop的Java集成化数据和应用框架QContinuuity底层基设施q行抽象处理Q通过单的Java 和REST API提供底层基础设施服务Qؓ用户大大化了Hadoop基础设施的复杂性。Continuuity最新发布的服务——Loom是一个集管理方案,?qLoom创徏的集可以用Q意硬件和软g堆叠的模板,从单一的LAMP服务器和传统应用服务器如JBoss到包含数千个节点的大规模的Hadoop?。集还可以部v在多个云服务商的环境中(例如Rackspace、Joyent、Openstack{)而且q能使用常见的SCM工具?/p> 九?/strong>Xplenty 业务Q提供HaaS服务 介:创立?012q_从Magma风险投资获得金额不详的融资?/p> 入选理由:虽然Hadoop已经成了大数据的事实工业标准Q但是Hadoop的开发、部|和l护Ҏ术h员的技能依然有着极高要求。Xplenty 的技术通过无需~写代码的Hadoop开发环境提供Hadoop处理服务Q企业无需投资软硬件和专业人才p快速n受大数据技术?/p> 十?/strong>Nuevora 业务Q提供大数据分析应用 介:创立?011q_累计获得300万早期投资?/p> 入选理由:Nuevora的着眼点是大数据应用最早启动的两个领域Q营销和客h触。Nuevora的nBAAPQ大数据分析与应用)q_的主要功 能包括基于最x间预算法的定制分析应用QnBAAPZ三个关键大数据技术:HadoopQ大数据处理Q、RQ预分析)和TableauQ数据可?化)
2. In-memory Analytics : Apache Spark
3. Search Analytics : Apache Elastic search, SOLR
4. Log Analytics : Apache ELK Stack,ESK Stack(Elastic Search, Log
Stash, Spark Streaming, Kibana)
5. Batch Analytics : Apache MapReduce
***** NO SQL DB *****
1. MongoDB
2. Hbase
3. Cassandra
***** SOA *****
1. Oracle SOA
2. JBoss SOA
3. TiBco SOA
4. SOAP, RESTful Webservices
]]>
配置 eclipse ~译、开?HadoopQMapReduceQ源代码
http://blog.csdn.net/basicthinker/article/details/6174442
hadoop2.2.0源代码编?br />
http://my.oschina.net/cloudcoder/blog/192224
Apache Hadoop 源代码编译环境搭?br />
http://qq85609655.iteye.com/blog/1986991
unzip trunk
sudo apt-get -y install maven build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
Cent OS
yum -y install lzo-devel zlib-devel gcc autoconf automake libtool openssl-devel cmake
get protobuf zip from http://f.dataguru.cn/thread-459689-1-1.html
./configure
make
make check
make install
export PATH=$PATH:$PROTOC_HOME/src
]]>
https://github.com/zhang-xzhi/simplehbase/wiki
## simplehbase?
simplehbase是java和hbase之间的轻量中间件?
主要包含以下功能?
* 数据cd映射Qjavacd和hbase的bytes之间的数据{换?
* 单操作封装:装了hbase的put,get,scan{操作ؓ单的java操作方式?
* hbase query装Q封装了hbase的filterQ可以用sql-like的方式操作hbase?
* 动态query装Q类gmyibatisQ可以用xml配置动态语句查询hbase?
* insert,update支持: 建立在hbase的checkAndPut之上?
* hbase多版本支持:提供接口可以对hbase多版本数据进行查?映射?
* hbase原生接口支持?
### v0.9
新增
支持HTable如下使用方式Q对HTable可以定时flush?
主要场景Q?
扚w写入Q但是flush可以配置为指定时间间隔进行?
不降低批操作的吞吐,同时Q有一定的实时性保证?
支持用户自定义htablePoolService?
多个HTable可以使用同一个线E池?
intelligentScanSize功能,可以Ҏlimit的D定scan的cachingsize大小?
### v0.8
扚w操作接口新增
public void deleteObjectList(List<RowKey> rowKeyList, Class<?> type);
public <T> void putObjectListMV(List<PutRequest<T>> putRequests,long timestamp)
public <T> void putObjectListMV(List<PutRequest<T>> putRequests,Date timestamp)
public <T> void putObjectListMV(List<PutRequest<T>> putRequestList)
public void deleteObjectMV(RowKey rowKey, Class<?> type, long timeStamp)
public void deleteObjectMV(RowKey rowKey, Class<?> type, Date timeStamp)
public void deleteObjectListMV(List<RowKey> rowKeyList, Class<?> type,long timeStamp)
public void deleteObjectListMV(List<RowKey> rowKeyList, Class<?> type,Date timeStamp)
public void deleteObjectListMV(List<DeleteRequest> deleteRequestList,Class<?> type);
Util新增Q前~查询使用Q?
性能改进
把get的实Cscan调回get?
### v0.7新增功能Q?
支持查询时主记录和关联的RowKey同时q回?nbsp;
]]>
http://www.cnblogs.com/xuesong/p/3604080.html
http://www.linuxidc.com/Linux/2013-12/94180.htm
卸蝲
http://www.cnblogs.com/shudonghe/articles/3133290.html
安装文gQ?br />
http://www.cloudera.com/content/support/en/downloads/download-components/download-products.html?productID=4ZFrtT9ZQN
sudo vi /etc/sudoers
ufuser ALL=(ALL) NOPASSWD: ALL
sudo chmod -w /etc/sudoers
SELINUX=disabled
sudo reboot
10.0.0.4 ufhdp001.cloudapp.net ufhdp001
10.0.0.5 ufhdp002.cloudapp.net ufhdp002
]]>
]]>
https://github.com/rorlig/hadoop-pagerank-java
http://wuyanzan60688.blog.163.com/blog/static/12777616320131011426159/
http://codecloud.net/hadoop-k-means-591.html
import java.net.URI;
import java.util.Iterator;
import java.util.Random;
import java.util.Vector;
import org.apache.hadoop.filecache.DistributedCache;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.GenericOptionsParser;
public class KMeans {
static enum Counter { CENTERS, CHANGE, ITERATIONS }
public static class Point implements WritableComparable<Point> {
// Longs because this will store sum of many ints
public LongWritable x;
public LongWritable y;
public IntWritable num; // For summation points
public Point() {
this.x = new LongWritable(0);
this.y = new LongWritable(0);
this.num = new IntWritable(0);
}
public Point(int x, int y) {
this.x = new LongWritable(x);
this.y = new LongWritable(y);
this.num = new IntWritable(1);
}
public Point(IntWritable x, IntWritable y) {
this.x = new LongWritable(x.get());
this.y = new LongWritable(y.get());
this.num = new IntWritable(1);
}
public void add(Point that) {
x.set(x.get() + that.x.get());
y.set(y.get() + that.y.get());
num.set(num.get() + that.num.get());
}
public void norm() {
x.set(x.get() / num.get());
y.set(y.get() / num.get());
num.set(1);
}
public void write(DataOutput out) throws IOException {
x.write(out);
y.write(out);
num.write(out);
}
public void readFields(DataInput in) throws IOException {
x.readFields(in);
y.readFields(in);
num.readFields(in);
}
public long distance(Point that) {
long dx = that.x.get() - x.get();
long dy = that.y.get() - y.get();
return dx * dx + dy * dy;
}
public String toString() {
String ret = x.toString() + '\t' + y.toString();
if (num.get() != 1)
ret += '\t' + num.toString();
return ret;
}
public int compareTo(Point that) {
int ret = x.compareTo(that.x);
if (ret == 0)
ret = y.compareTo(that.y);
if (ret == 0)
ret = num.compareTo(that.num);
return ret;
}
}
public static class Map
extends MapReduceBase
implements Mapper<Text, Text, Point, Point>
{
private Vector<Point> centers;
private IOException error;
public void configure(JobConf conf) {
try {
Path paths[] = DistributedCache.getLocalCacheFiles(conf);
if (paths.length != 1)
throw new IOException("Need exactly 1 centers file");
FileSystem fs = FileSystem.getLocal(conf);
SequenceFile.Reader in = new SequenceFile.Reader(fs, paths[0], conf);
centers = new Vector<Point>();
IntWritable x = new IntWritable();
IntWritable y = new IntWritable();
while(in.next(x, y))
centers.add(new Point(x, y));
in.close();
// Generate new points if we don't have enough.
int k = conf.getInt("k", 0);
Random rand = new Random();
final int MAX = 1024*1024;
for (int i = centers.size(); i < k; i++) {
x.set(rand.nextInt(MAX));
y.set(rand.nextInt(MAX));
centers.add(new Point(x, y));
}
} catch (IOException e) {
error = e;
}
}
public void map(Text xt, Text yt,
OutputCollector<Point, Point> output, Reporter reporter)
throws IOException
{
if (error != null)
throw error;
int x = Integer.valueOf(xt.toString());
int y = Integer.valueOf(yt.toString());
Point p = new Point(x, y);
Point center = null;
long distance = Long.MAX_VALUE;
for (Point c : centers) {
long d = c.distance(p);
if (d <= distance) {
distance = d;
center = c;
}
}
output.collect(center, p);
}
}
public static class Combine
extends MapReduceBase
implements Reducer<Point, Point, Point, Point>
{
public void reduce(Point center, Iterator<Point> points,
OutputCollector<Point, Point> output, Reporter reporter)
throws IOException
{
Point sum = new Point();
while(points.hasNext()) {
sum.add(points.next());
}
output.collect(center, sum);
}
}
public static class Reduce
extends MapReduceBase
implements Reducer<Point, Point, IntWritable, IntWritable>
{
public void reduce(Point center, Iterator<Point> points,
OutputCollector<IntWritable, IntWritable> output,
Reporter reporter)
throws IOException
{
Point sum = new Point();
while (points.hasNext()) {
sum.add(points.next());
}
sum.norm();
IntWritable x = new IntWritable((int) sum.x.get());
IntWritable y = new IntWritable((int) sum.y.get());
output.collect(x, y);
reporter.incrCounter(Counter.CHANGE, sum.distance(center));
reporter.incrCounter(Counter.CENTERS, 1);
}
}
public static void error(String msg) {
System.err.println(msg);
System.exit(1);
}
public static void initialCenters(
int k, JobConf conf, FileSystem fs,
Path in, Path out)
throws IOException
{
BufferedReader input = new BufferedReader(
new InputStreamReader(fs.open(in)));
SequenceFile.Writer output = new SequenceFile.Writer(
fs, conf, out, IntWritable.class, IntWritable.class);
IntWritable x = new IntWritable();
IntWritable y = new IntWritable();
for (int i = 0; i < k; i++) {
String line = input.readLine();
if (line == null)
error("Not enough points for number of means");
String parts[] = line.split("\t");
if (parts.length != 2)
throw new IOException("Found a point without two parts");
x.set(Integer.valueOf(parts[0]));
y.set(Integer.valueOf(parts[1]));
output.append(x, y);
}
output.close();
input.close();
}
public static void main(String args[]) throws IOException {
JobConf conf = new JobConf(KMeans.class);
GenericOptionsParser opts = new GenericOptionsParser(conf, args);
String paths[] = opts.getRemainingArgs();
FileSystem fs = FileSystem.get(conf);
if (paths.length < 3)
error("Usage:\n"
+ "\tKMeans <file to display>\n"
+ "\tKMeans <output> <k> <input file>"
);
Path outdir = new Path(paths[0]);
int k = Integer.valueOf(paths[1]);
Path firstin = new Path(paths[2]);
if (k < 1 || k > 20)
error("Strange number of means: " + paths[1]);
if (fs.exists(outdir)) {
if (!fs.getFileStatus(outdir).isDir())
error("Output directory \"" + outdir.toString()
+ "\" exists and is not a directory.");
} else {
fs.mkdirs(outdir);
}
// Input: text file, each line "x\ty"
conf.setInputFormat(KeyValueTextInputFormat.class);
for (int i = 2; i < paths.length; i++)
FileInputFormat.addInputPath(conf, new Path(paths[i]));
conf.setInt("k", k);
// Map: (x,y) -> (centroid, point)
conf.setMapperClass(Map.class);
conf.setMapOutputKeyClass(Point.class);
conf.setMapOutputValueClass(Point.class);
// Combine: (centroid, points) -> (centroid, weighted point)
conf.setCombinerClass(Combine.class);
// Reduce: (centroid, weighted points) -> (x, y) new centroid
conf.setReducerClass(Reduce.class);
conf.setOutputKeyClass(IntWritable.class);
conf.setOutputValueClass(IntWritable.class);
// Output
conf.setOutputFormat(SequenceFileOutputFormat.class);
// Chose initial centers
Path centers = new Path(outdir, "initial.seq");
initialCenters(k, conf, fs, firstin, centers);
// Iterate
long change = Long.MAX_VALUE;
URI cache[] = new URI[1];
for (int iter = 1; iter <= 1000 && change > 100 * k; iter++) {
Path jobdir = new Path(outdir, Integer.toString(iter));
FileOutputFormat.setOutputPath(conf, jobdir);
conf.setJobName("k-Means " + iter);
conf.setJarByClass(KMeans.class);
cache[0] = centers.toUri();
DistributedCache.setCacheFiles( cache, conf );
RunningJob result = JobClient.runJob(conf);
System.out.println("Iteration: " + iter);
change = result.getCounters().getCounter(Counter.CHANGE);
centers = new Path(jobdir, "part-00000");
}
}
}
192.5.53.208
]]>
According to the definition of DRM on Wikipedia, Digital Rights Management (DRM) is a class of technologies that are used by hardware manufacturers, publishers, copyright holders, and individuals with the intent to control the use of digital content and devices after sale.
However, Packt Publishing firmly believes that you should be able to read and interact with your content when you want, where you want, and how you want – to that end they have been advocates of DRM-free content since their very first eBook was published back in 2004.
To show their continuing support for Day Against DRM, Packt Publishing is offering all its DRM-free content at $10 for 24 hours only on May 6th – that’s all 2000+ eBooks and Videos. Check it out at: http://bit.ly/1q6bpha.
1、系l:我的pȝ是CentOS6.2Qx86_64Q本ơ集采用两个节炏V管理节点:192.168.10.121Q客L节点Q?92.168.10.122
2、系l最好配|能上网Q这h便后面的操作Q否则需要配|yum仓库Q比较麻烦?/span>
3、集中ambari-serveerQ管理节点)到客L配置无密码登录?/span>
4、集同步时?/span>
5、SELinuxQiptables都处于关闭状态?/span>
6、ambari版本Q?.2.0
A、配|好集群环境
B、管理节点上安装ambari-server
1、下载repo文g
[root@ccloud121 ~]# wget http://public-repo-1.hortonworks.com/AMBARI-1.x/repos/centos6/ambari.repo
[root@ccloud121 ~]# cp ambari.repo /etc/yum.repos.d
q样Qambari-server的yum仓库做好了?/span>
2、安装epel仓库
[root@ccloud121 ~]# yum install epel-release # 查看仓库列表Q应该有HDPQEPEL [root@ccloud121 ~]# yum repolist
3、通过yum安装amabari bitsQ这同时也会安装PostgreSQL
[root@ccloud121 ~]# yum install ambari-server
q个步骤要等一会,它需要上|下载,大概39M左右?/span>
4、运行ambari-server setupQ安装ambari-serverQ它会自动安装配|PostgreSQLQ同时要求输入用户名和密码,如果按nQ它用默认的用户?密码|ambari-server/bigdata。接着开始下载安装JDK。安装完成后Qambari-server可以启动了?/span>
1、直接接通过ambari-server start和amabari-server stop卛_启动和关闭ambari-serveer?/span>
2、启动成功后Q在览器输入http://192.168.10.121:8080
界面如下图所C:
d名和密码都是admin?/span>
q样可以登录到理控制台?/span>
1. HDFS
HDFS是Hadoop应用E序中主要的分布式储存系l, HDFS集群包含了一个NameNodeQ主节点Q,q个节点负责理所有文件系l的元数据及存储了真实数据的DataNodeQ数据节点,可以有很多)。HDFS针对量数据所设计Q所以相比传l文件系l在大批量小文g上的优化QHDFS优化的则是对批量大型文件的讉K和存储?/p>
2. MapReduce
Hadoop MapReduce是一个Y件框Ӟ用以L~写处理量QTBU)数据的ƈ行应用程序,以可靠和定w的方式连?span style="line-height: 1.45em;">大型集群?/span>上万个节点(商用gQ?/span>
3. HBase
Apache HBase是Hadoop数据库,一个分布式、可扩展的大数据存储。它提供了大数据集上随机和实时的?写访问,q对了商用服务器集上的大型表格做Z?#8212;—上百亿行Q上千万列。其核心是Google Bigtable论文的开源实玎ͼ分布式列式存储。就像Bigtable利用GFSQGoogle File SystemQ提供的分布式数据存储一P它是Apache Hadoop在HDFS基础上提供的一个类Bigatable?/p>
4. Cassandra
Apache Cassandra是一个高性能、可U性扩展、高有效性数据库Q可以运行在商用g或云基础设施上打造完的d关键性数据^台。在横跨数据中心的复制中QCassandra同类最佻I为用h供更低的延时以及更可靠的N备䆾。通过log-structured update、反规范化和物化视图的强支持以及强大的内|缓存,Cassandra的数据模型提供了方便的二U烦引(column indexeQ?/p>
5. Hive
Apache Hive是Hadoop的一个数据仓库系l,促进了数据的lDQ将l构化的数据文g映射Z张数据库表)、即席查询以及存储在Hadoop兼容pȝ中的大型数据集分析。Hive提供完整的SQL查询功能——HiveQL语言Q同时当使用q个语言表达一?span style="line-height: 1.45em;">逻辑变得低效和繁?/span>ӞHiveQLq允怼l的Map/ReduceE序员用自己定制的Mapper和Reducer?/span>
6. Pig
Apache Pig是一个用于大型数据集分析的^収ͼ它包含了一个用于数据分析应用的高语言以及评估q些应用的基设施。Pig应用的闪光特性在于它们的l构l得起大量的q行Q也是说让它们支撑起非常大的数据集。Pig的基设施层包含了产生Map-Reduced的编译器。Pig的语a层当前包含了一个原生语a——Pig LatinQ开发的初衷是易于编E和保证可扩展性?/p>
7. Chukwa
Apache Chukwa是个开源的数据攉pȝQ用以监视大型分布系l。徏立于HDFS和Map/Reduce框架之上Q承了Hadoop的可扩展性和E_性。Chukwa同样包含了一个灵zd强大的工具包Q用以显C、监视和分析l果Q以保证数据的用达到最x果?/p>
8. Ambari
Apache Ambari是一个基于web的工P用于配置、管理和监视Apache Hadoop集群Q支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同样q提供了集群状况仪表盘,比如heatmaps和查看MapReduce、Pig、Hive应用E序的能力,以友好的用户界面对它们的性能Ҏ进行诊断?/p>
9. ZooKeeper
Apache ZooKeeper是一个针对大型分布式pȝ的可靠协调系l,提供的功能包括:配置l护、命名服务、分布式同步、组服务{。ZooKeeper的目标就是封装好复杂易出错的关键服务Q将单易用的接口和性能高效、功能稳定的pȝ提供l用戗?/p>
10. Sqoop
Sqoop是一个用来将Hadoop和关pd数据库中的数据相互{Uȝ工具Q可以将一个关pd数据库中数据导入Hadoop的HDFS中,也可以将HDFS中数据导入关pd数据库中?/p>
11. Oozie
Apache Oozie是一个可扩展、可靠及可扩充的工作调度系l,用以理Hadoop作业。Oozie Workflow作业是活动的Directed Acyclical GraphsQDAGsQ。Oozie Coordinator作业是由周期性的Oozie Workflow作业触发Q周期一般决定于旉Q频率)和数据可用性。Oozie与余下的Hadoop堆栈l合使用Q开即用的支持多种cdHadoop作业Q比如:Java map-reduce、Streaming map-reduce、Pig?Hive、Sqoop和DistcpQ以及其它系l作业(比如JavaE序和Shell脚本Q?/p>
12. Mahout
Apache Mahout是个可扩展的机器学习和数据挖掘库Q当前Mahout支持主要?个用例:
13. HCatalog
Apache HCatalog是Hadoop建立数据的映表和存储管理服务,它包括:
http://mypetsbj.xicp.net:13296 |
http://mypetsbj.xicp.net:13304 |
http://mypetsbj.xicp.net:14113 |
http://mypetsbj.xicp.net:11103 |