hadoop学习笔记

来源:互联网 发布:网络是利与弊 编辑:程序博客网 时间:2024/04/30 18:18
    hadoop的核心就是hdfs和mapreduce ,两者只是理论基础,不是具体可使用的高级应用,hadoop下面有很多经典的子项目,比如hbase,hive等,这些都是基于hdfs和mapreduce发展出来的。
    hdfs(hadoop distributed file system,hadoop分布式文件系统),他是一个高度容错性的系统,适合部署在廉价的机器上,hdfs能提供高吞吐量的数据访问,适合那些有着超大数据集的应用程序。
    hdfs关键元素有:
      block:将一个文件进行分块。128m
    nameNode:保存整个文件系统的目录信息,文件信息及分块信息,
    dataNOde:分布在廉价的计算机上,用于存储block块文件。
    mapreduce:
    通俗说mapreduce是一套从海量的数据提取分析元素最后返回结果的编程模型,将文件分布式存储在硬盘是第一步,从海量数据中提取分析我们需要的内容就是mapreduce做的是了,
 hadoop common:hadoop体系最低成的模块,为hadoop哥哥项目提供各种工具,如配置文件和日志操作。
 hdfs:分布式文件系统,提供高吞吐量的应用程序数据访问,对外部客户机而言,hdfs就像一个传统的分级文件系统,可以创建,删除,移动或者重命名文件,等等,但是hdfs的架构是基于一组特定的节点构建的,这是由他自身的特点决定的,这些节点报矿namenode,他在hdfs内容提供元数据服务,datanode,为hdfs提供存储块。
    存储在hdfs中的文件被分成块,然后将这些块赋值到多个计算机中,datanode,这与传统raid架构大不相同,块的大小和复制的快的数量在创建文件时由客户机决定,namenode可以控制所有文件操作,hdfs内部的所有通信头基于标准tcp ip协议。
 hadoop 家族中不包括flume  sqoop  mahout
  hdfp学习:
namenode   保存元数据,启动时加载到内存中,工作时都是读取内存中的元数据,当然磁盘也有保存,并且保存,保存文件  block,datanode的映射关系。
    分布式计算就是移动计算不移动数据

      一个切片 对应一个map   怎么去切片   切片是程序控制     mpareduce  输入  输出都是键值对形式

    hadoop生态关键词:
hdfs mapreduce hbase hive pig zookeeper  mahout  avro sqoop flume storm  spark。

    下面是个简单的mapreduce程序。

    public class wordcount(){

//首先 map用来读取数据   进入下个环节
    public static class  tokenizerMapper extends Map<Object,text,text,IntWritable>{
    private final static IntWritable one=new IntWritable();
private Text word=new Text();
pubilc void map(){
    Object key,Text value,Context context{
    Stringtokenizer itr=new String tokenize(value.toString));
while(itr.hasMoretoken){
context.write(word,onte);
}
}
}
//其次reduce用来对读取的数据进行一些简单的处理操作  
public static class IntSumReducer extends Reducer<Tet,IntWritable,Text,IntWritable>
private IntWritable result=new IntWritable();
public void reduce  Text key,Iterable<IntWritable>
    values,context context
}
int sum=0;
for(IntWritable val:values){
    result.set(sum);
context.write(key,result);
}
//一般主函数都是用来运行job
public static void Main(){
Configuration conf=new Configuration();
Job jo=JOb.getInstance(conf,"word count");

}
}

0 0
原创粉丝点击