- 浏览: 28243 次
最新评论
文章列表
Mapreduce 包
你需从发布页面获得MapReduce tar包。若不能,你要将源码打成tar包。
$ mvn clean install -DskipTests
$ cd hadoop-mapreduce-project
$ mvn clean install assembly:assembly -Pnative
注意:你需要安装有protoc 2.5.0。忽略本地建立mapreduce,你可以在maven中省略-Pnative参数。tar包应该在target/directory。
- 2014-04-21 18:51
- 浏览 381
- 评论(0)
学习Hadoop也有一段时间了。起先从Hadoop-1.2.1开始,略会写点MapReduce,还是想要跟上Hadoop发展的步伐,虽说现在官方已经发布2.4.0版本了,但是稳定版还是2.2.0。在机器上跑了一下,发现2.x比起1.x,变化还是很大的,更加模块化了。决定从官网的文档开始入手,现在也略有些时间,就一边学习一边将其翻译成中文好了,不过英文比较烂。大概每天翻译一节吧。
-----------------------------------------------------------------------------------------------
Apache H ...
- 2014-04-20 11:39
- 浏览 354
- 评论(0)
可以用bin/hadoop fs -ls 来读取HDFS某一目录下的文件列表及属性信息。
也可以采用HDFS的API来读取。如下:import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileUtil;
public class ...
- 2014-04-18 10:03
- 浏览 527
- 评论(0)
可以用bin/hadoop fs -ls 来读取HDFS上的文件属性信息。
也可以采用HDFS的API来读取。如下:
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.FileStatus;
public class FileInfo
{
public static void main(String[] ...
- 2014-04-18 09:46
- 浏览 525
- 评论(0)
用这个命令bin/hadoop fs -cat 可以将HDFS上的文件内容读取到控制台。
也可以采用HDFS的API来读取。如下:
import java.net.URI;
import java.io.InputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileCat
{
...
- 2014-04-18 09:26
- 浏览 796
- 评论(0)
用命令行bin/hadoop fs -rm(r) 可以删除hdfs上的文件(夹)
用HDFS的API也是可以的。如下:
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class FileDelete
{
public static void main(String[] args) throws Exception
{
if(args ...
- 2014-04-18 09:11
- 浏览 710
- 评论(0)
下面两个命令是把文件从HDFS上下载到本地的命令。
get
使用方法:hadoop fs -get [-ignorecrc] [-crc] <src> <localdst>
复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
示例:
hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port/user/hadoop/file localfile
返回值:
- 2014-04-18 08:36
- 浏览 3577
- 评论(0)
在Hadoop中用作文件操作的主类位于org.apache.hadoop.fs包中。基本的文件操作有open、read、write和close。实际上,Hadoop的文件API是通用的,可用于HDFS以外的文件系统。
Hadoop文件API的起点是FileSystem类,这是一个与文件系统交互的抽象类,存在不同的具体实现子类来处理HDFS和本地文件系统,可以通过调用factory方法FileSystem.get(Configuration conf)来得到所需的FileSystem实例。Configuration类适用于保留键/值配置参数的特殊类。它的默认实例化方法是以HDFS系统的资源配置为 ...
- 2014-04-18 08:33
- 浏览 604
- 评论(0)
Bloom Filter:是一个比特数组,表示具有一定误报率的集合。主要优势在于其大小(比特位个数)为常数且在初始化时被设置,增加更多的元素到一个Bloom Filter 中不会增加它的大小,仅增加误报的概率。一般包含两个方法:add(),contains()。
误报率: r = (1-exp(-kn/m))k ,k = ln(2) * (m/n) , r = 0.6185*(m/n)
——k,散列函数个数
——m,比特个数
——n,被添加的元素个数
比如,存储一千万条URL的集合(n = 10 000 000),每个URL分配8个比特(m/n = 8),将 ...
- 2014-04-15 10:51
- 浏览 537
- 评论(0)
发现百度云平台,可以在线执行hadoop MapReduce程序,很欣喜,摸索了一下,可以使用。大概想这才叫做云计算啊,我把计算任务给你,你把计算结果还给我。
首先要有百度账号。
从平台入口进入:http://openresearch.baidu.com/activity/platform.jspx。
会看到如下的界面,其实就是把linux系统的控制台搬到了浏览器上。可用的命令这里已经有了说明。
- 2014-04-15 10:02
- 浏览 371
- 评论(0)
Hadoop数据类型
为了让键/值对可以在集群上移动,MapReduce框架提供了一种序列化键/值对的方法。因此,只有那些支持这种序列化的类能够在框架中充当键/值。
实现Writable接口的类可以是值;
实现WritableComparable<T>接口的类可以是键/值。
键/值对经常使用的数据类型列表。这些类均用于实现WritableComparable接口。
BooleanWritable
标准布尔变量的封装
- 2014-04-14 13:49
- 浏览 429
- 评论(0)
//书非借不能读也,今早从图书馆新书阅览室借来《Hadoop in Action》,最长借期7天。整理读书笔记并留下电子版以供以后方便复习。
Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据。专为离线处理和大规模数据分析而设计,避免耗时的数据传输问题,适合一次写入,多次读取。
特性:方便、健壮、可扩展、简单。
MapReduce
分为两个阶段:mapping 和 reducing
每阶段定义一个数据处理函数,称为mapper和reducer
在mapping阶段,MapReduce获取输入数据并将数据单元装入mapper
在ruducing阶段,re ...
- 2014-04-13 20:34
- 浏览 306
- 评论(0)
//书非借不能读也,今早从图书馆新书阅览室借来《Hadoop in Action》,最长借期7天。整理读书笔记并留下电子版以供以后方便复习。
Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据。专为离线处理和大规模数据分析而设计,避免耗时的数据传输问题,适合一次写入,多次读取。
特性:方便、健壮、可扩展、简单。
MapReduce
分为两个阶段:mapping 和 reducing
每阶段定义一个数据处理函数,称为mapper和reducer
在mapping阶段,MapReduce获取输入数据并将数据单元装入mapper
在ruducing阶段,re ...
- 2014-04-13 20:34
- 浏览 254
- 评论(0)
可以分拆成多个函数来做,每个函数计算一种长度的组合。两位数字相加时,只能是1-9之间的数,加上10-19之间的数。以此类推。
package test;
public class Sum20 {
public static void main(String[] args) {
sum2num();
System.out.println("----------------");
sum3num();
System.out.println("----------------");
sum4num();
System.out.p ...
- 2014-04-02 13:38
- 浏览 271
- 评论(0)
可以分拆成多个函数来做,每个函数计算一种长度的组合。两位数字相加时,只能是1-9之间的数,加上10-19之间的数。以此类推。
package test;
public class Sum20 {
public static void main(String[] args) {
sum2num();
System.out.println("----------------");
sum3num();
System.out.println("----------------");
sum4num();
System.out.p ...
- 2014-04-02 13:38
- 浏览 412
- 评论(0)