introduce:Hadoop is a distributed computing platform.its primary consists of (主要由...构成)the HDFS(Hadoop Distributed FileSystem) and an implemention of the Map-Reduce programming paradigm(范例).
Hadoop features:
Scalable(扩展性极强):它能可靠的存储和处理 petabytes(PB)
Economical(经济的):它通过大量普通可用的计算机cluster来分布数据和处理.这些clusters可以达到上千个节点.
Efficient(高效的):Hadoop可以并行处理加载到这些节点上面的分布式的数据.这使得它相当快(速度).
Reliable(可靠的):Hadoop自动维护多份数据拷贝,自动重新部署失败的计算任务.
Requirements:
平台:Hadoop已在基于GNU/Linux平台上证实2000个节点的cluster.win32只是被作为一个开发平台支持,分布式操作还没有被很发的测试基于win32,因此它不是一个产品平台.
所需软件:
1.Java 1.6.x 最好来自于Sun.为root帐户设置Java_home ,java安装路径
2.ssh必须安装,sshd必须运行以使用Hadoop脚本来管理远程Hadoop daemons.
3.rsync 可以安装用来使用Hadoop命令来管理远程Hadoop安装.
windowns下所需软件:
cygwin:
安装所需软件:
如果您的平台没有以上所需软件,你将不得不先安装它们:
以Ubuntu Linux为例:
$sudo apt-get install ssh
$sudo apt-get install rsync
Getting startted:
首先,你需要一份Hadoop代码的拷贝.
编辑conf/hadoop-env.sh 最少得修改JAVA_HOME
然后运行下面的命令:
bin/hadoop
它将会展示Hadoop命令脚本的文档.
单机操作:
Hadoop默认配置为非分布式模式,只是作为一个单一的Java 程序.它对调试是很有用的,它可以按以下流程被展示:
mkdir input
cp conf/*.xml input
bin/hadoop jar hadoop-examples-*.jar grep input out 'dfs[a-z.]+'
cat output/*
注意这里输入和输出都作为一个包含文件的目录.
分布式部署:
为了配置Hadoop分布式操作,你必须按以下流程设置:
1.Namenode host(分布式文件系统主机).修改配置文件中的属性fs.default.name来指定它.
2.JobTracker(MapReduce主任务) host和port.修改属性mapred.job.tracker.
3.一个从属文件列出该集群中所有的主机名称.默认文件为conf/slaves.
Hadoop 0.20.205 core include packages :
org.apache.hadoop.conf:系统参数配置.
org.apache.hadoop.fs:一个抽象的文件系统API.
它下面还包括:ftp/kfs(Kosmos文件系统的一个客户端)/permission(权限)/s3(分布式基于块实现的Amazon S3文件系统的后备存储)/s3native(基于Amazon S3的一个分布式读写文件实现)/shell
org.apache.hadoop.http:
org.apache.hadoop.io:读写数据到网络,数据库和文件时使用的通用I/O代码定义.
它下面包括compress压缩,有bzip2,zlib等.retry(A mechanism for selectively retrying methods that throw exceptions under certain circumstances.)/serializer(该机制提供在hadoopk 使用不同的串行化框架)
org.apache.hadoop.ipc:帮助定义网络客户端和服务端的工具
org.apache.hadoop.jmx:该包通过JMXJsonServlet类访问JMX主类.
org.apache.hadoop.log:logging
org.apache.hadoop.mapred:一个容易编写处理大数据量数据(multi-terabyte data-sets)并行处理在普通硬件组成的大集群(thousands of nodes)以可靠,容错的方式.
org.apache.hadoop.mapred.jobcontrol:管理从属jobs的工具.
org.apache.hadoop.mapred.join:
org.apache.hadoop.mapred.lib
org.apache.hadoop.mapred.lib.aggregate
org.apache.hadoop.mapred.lib.db
org.apache.hadoop.mapred.pipes
org.apache.hadoop.mapred.tools
org.apache.hadoop.mapreduce
org.apache.hadoop.mapreduce.security:安全性
org.apache.hadoop.metrics:
org.apache.hadoop.net:网络相关的类
org.apache.hadoop.record
org.apache.hadoop.security:hadoop安全性相关类
org.apache.hadoop.util:hadoop的工具类.包括bloom布隆和hash哈希.
org.apache.hadoop.examples:hadoop例子,dancing/terasort两个具体例子.
先从大体上了解一个hadoop core的包结构.