精华内容
下载资源
问答
  • Hadoop实战项目:小文件合并

    千次阅读 2018-03-30 20:40:02
    项目背景 在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M),早期的版本所定义的小文件是64M,这里的hadoop-2.2.0所定义的小文件是128M。然而每一个存储在...

    项目背景

       在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M),早期的版本所定义的小文件是64M,这里的hadoop-2.2.0所定义的小文件是128M然而每一个存储在HDFS中的文件、目录和块都映射为一个对象,存储在NameNode服务器内存中,通常占用150个字节。 如果有1千万个文件,就需要消耗大约3G的内存空间。如果是10亿个文件呢,简直不可想象。所以在项目开始前, 我们要先了解一下 hadoop 处理小文件的各种方案,然后本课程选择一种适合的方案来解决本项目的小文件问题。Hadoop 自身提供了几种机制来解决相关的问题,包括HAR, SequeueFile和CombineFileInputFormat。

    项目介绍

       在本地 D://Code/EclipseCode/mergeSmallFilesTestData目录下有 2018-03-23 至 2018-03-29 一共7天的数据集,我们需要将这7天的数据集按日期合并为7个大文件上传至 HDFS。

    思路分析

         基于项目的需求,我们通过下面几个步骤完成:

      1)首先通过 globStatus()方法过滤掉 svn 格式的文件,获取 D://Code/EclipseCode/mergeSmallFilesTestData目录下的其它所有文件路径。

      2)然后循环第一步的所有文件路径,通过globStatus()方法获取所有 txt 格式文件路径。

      3)最后通过IOUtils.copyBytes(in, out, 4096, false)方法将数据集合并为7个大文件,并上传至 HDFS。

    程序

      在Hadoop项目路径下新建MergeSmallFilesToHDFS.java:

     

    /**
     * 
     */
    package com.hadoop.train;
    
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataInputStream;
    import org.apache.hadoop.fs.FSDataOutputStream;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.FileUtil;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.fs.PathFilter;
    import org.apache.hadoop.io.IOUtils;
    
    
    /**
     * @author 努力的凹凸曼
     * 合并小文件到HDFS
     *
     */
    public class MergeSmallFilesToHDFS {
    
        private static FileSystem hdfs = null; //定义HDFS上的文件系统对象
        private static FileSystem local = null; //定义本地文件系统对象
        
        /**
         * 
         * @function 过滤 regex 格式的文件
         *
         */
        public static class RegexExcludePathFilter implements PathFilter 
        {
    
            private final String regex;
    
            public RegexExcludePathFilter(String regex) {
                // TODO Auto-generated constructor stub
                this.regex = regex;
            }
    
            @Override
            public boolean accept(Path path) {
                // TODO Auto-generated method stub
                boolean flag = path.toString().matches(regex);
                return !flag;
            }
    
        }
        
        /**
         * 
         * @function 接受 regex 格式的文件
         *
         */
        public static class RegexAcceptPathFilter implements PathFilter
        {
    
            private final String regex;
    
            public RegexAcceptPathFilter(String regex) {
                // TODO Auto-generated constructor stub
                this.regex = regex;
            }
    
            @Override
            public boolean accept(Path path) {
                // TODO Auto-generated method stub
                boolean flag = path.toString().matches(regex);
                return flag;
            }
        
        }
        
        /**
         * @param args
         * @throws IOException 
         * @throws URISyntaxException 
         */
        public static void main(String[] args) throws URISyntaxException, IOException {
            // TODO Auto-generated method stub
            list();
    
        }
    
        private static void list() throws URISyntaxException, IOException {
            // TODO Auto-generated method stub
            Configuration conf = new Configuration();//读取Hadoop配置文件
            
            //设置文件系统访问接口,并创建FileSystem在本地的运行模式
            URI uri = new URI("hdfs://Centpy:9000");
            hdfs = FileSystem.get(uri, conf);
            
            local = FileSystem.getLocal(conf);//获取本地文件系统
            
            //过滤目录下的svn文件
            FileStatus[] dirstatus = local.globStatus(new Path("D://Code/EclipseCode/mergeSmallFilesTestData/*"),
                    new RegexExcludePathFilter("^.*svn$"));
            
            //获取D:\Code\EclipseCode\mergeSmallFilesTestData目录下的所有文件路径
            Path[] dirs = FileUtil.stat2Paths(dirstatus);
            FSDataOutputStream out = null;
            FSDataInputStream in = null;
            for(Path dir:dirs)
            {//比如拿2018-03-23为例
                
                //将文件夹名称2018-03-23的-去掉,直接,得到20180323文件夹名称
                String fileName = dir.getName().replace("-", "");//文件名称
    
                
                //只接受2018-03-23日期目录下的.txt文件
                FileStatus[] localStatus = local.globStatus(new Path(dir + "/*"), 
                        new RegexAcceptPathFilter("^.*txt$"));
                
                // 获得2018-03-23日期目录下的所有文件
                Path[] listPath = FileUtil.stat2Paths(localStatus);
                
                // 输出路径
                Path outBlock = new Path("hdfs://Centpy:9000/mergeSmallFiles/result/"+ fileName + ".txt");
                System.out.println("合并后的文件名称:"+fileName+".txt");
                
                // 打开输出流
                out = hdfs.create(outBlock);
                
                //循环操作2018-03-23日期目录下的所有文件
                for(Path p:listPath)
                {
                    in = local.open(p);// 打开输入流
                    IOUtils.copyBytes(in, out, 4096, false);// 复制数据
                    in.close();// 关闭输入流
                }
                
                if (out != null) {
                    out.close();// 关闭输出流
                }
            }
            
        }
    
    }

    测试结果

      运行程序之后会将本地D://Code/EclipseCode/mergeSmallFilesTestData路径下的每个文件夹下的n个.txt文件内容合并到一个.txt文件中,并存放到指定的HDFS路径("hdfs://Centpy:9000/mergeSmallFiles/result/")下。

     

    以上就是博主为大家介绍的这一板块的主要内容,这都是博主自己的学习过程,希望能给大家带来一定的指导作用,有用的还望大家点个支持,如果对你没用也望包涵,有错误烦请指出。如有期待可关注博主以第一时间获取更新哦,谢谢!

     

     版权声明:本文为博主原创文章,未经博主允许不得转载。

     

    展开全文
  • 前面我们学习了MapReduce编程思想和编程示例,那么本节课程同学们一起操练操练,动手完成下面的项目项目需求 一本英文书籍包含成千上万个单词或者短语,现在我们需要在大量的单词中,找出相同字母组成的所有...

    前面我们学习了MapReduce编程思想和编程示例,那么本节课程同学们一起操练操练,动手完成下面的项目。

    项目需求

    一本英文书籍包含成千上万个单词或者短语,现在我们需要在大量的单词中,找出相同字母组成的所有anagrams(字谜)。

    数据集

    下面是一本英文书籍截取的一部分单词内容。猛戳此链接下载数据集

    initiate
    initiated
    initiates
    initiating
    initiation
    initiations
    initiative
    initiatives
    initiator
    initiators
    initiatory
    inject
    injectant
    injected
    injecting
    injection
    injections
    injector
    injectors
    injects

    思路分析

    基于以上需求,我们通过以下几步完成:

    1、在 Map 阶段,对每个word(单词)按字母进行排序生成sortedWord,然后输出key/value键值对(sortedWord,word)。

    2、在 Reduce 阶段,统计出每组相同字母组成的所有anagrams(字谜)。

    数据处理示意流程

    在下面单词中,找出相同字母组成的字谜。

    cat
    tar
    bar
    act
    rat

    第一步:经过 map 阶段处理

    < act	cat >
    < art	tar>
    < abr	bar>
    < act	act>
    < art	rat>

    第二步:经过 reduce 阶段处理

    < abr	bar>
    < act	cat,act>
    < art	tar,rat>

    程序开发

    1、编写程序执行主类:AnagramMain

    package com.hadoop.test;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.conf.Configured;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    import org.apache.hadoop.util.Tool;
    import org.apache.hadoop.util.ToolRunner;
    public class AnagramMain extends Configured implements Tool{
        
        @SuppressWarnings( "deprecation")
        @Override
        public  int run(String[] args) throws Exception {
            Configuration conf = new Configuration();
            
            //删除已经存在的输出目录
            Path mypath = new Path(args[1]);
            FileSystem hdfs = mypath.getFileSystem(conf);
             if (hdfs.isDirectory(mypath)) {
                hdfs.delete(mypath, true);
            }
            Job job = new Job(conf, "testAnagram");
            job.setJarByClass(AnagramMain. class);    //设置主类
            
            job.setMapperClass(AnagramMapper. class);    //Mapper
            job.setMapOutputKeyClass(Text. class);
            job.setMapOutputValueClass(Text. class);
            job.setReducerClass(AnagramReducer. class);    //Reducer
            job.setOutputKeyClass(Text. class);
            job.setOutputValueClass(Text. class);
             FileInputFormat.addInputPath(job, new Path(args[0]));    //设置输入路径
            FileOutputFormat. setOutputPath(job, new Path(args[1]));    //设置输出路径
            job.waitForCompletion( true);
             return 0;
            
        }
    
        public static void main(String[] args) throws Exception{
            String[] args0 = { "hdfs://cloud004:9000/anagram/anagram.txt" ,
                     "hdfs://cloud004:9000/anagram/output"};
             int ec = ToolRunner.run( new Configuration(), new AnagramMain(), args0);
            System. exit(ec);
        }
    }

    2、编写Mapper:AnagramMapper

    package com.hadoop.test;
    import java.io.IOException;
    import java.util.Arrays;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Mapper;
    
    public class AnagramMapper extends Mapper< Object, Text, Text, Text> {
    
        private Text sortedText = new Text();
        private Text orginalText = new Text();
    
        public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
    
            String word = value.toString();
            char[] wordChars = word.toCharArray();//单词转化为字符数组
            Arrays.sort(wordChars);//对字符数组按字母排序
            String sortedWord = new String(wordChars);//字符数组转化为字符串
            sortedText.set(sortedWord);//设置输出key的值
            orginalText.set(word);//设置输出value的值
            context.write( sortedText, orginalText );//map输出
        }
    
    }

    3、编写Reducer:AnagramReducer

    package com.hadoop.test;
    import java.io.IOException;
    import java.util.StringTokenizer;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Reducer;
    
    public class AnagramReducer extends Reducer< Text, Text, Text, Text> {
       
        private Text outputKey = new Text();
        private Text outputValue = new Text();
    
       
        public void reduce(Text anagramKey, Iterable< Text> anagramValues,
                Context context) throws IOException, InterruptedException {
                String output = "";
                //对相同字母组成的单词,使用 ~ 符号进行拼接
                for(Text anagam:anagramValues){
                     if(!output.equals("")){
                         output = output + "~" ;
                     }
                     output = output + anagam.toString() ;
                }
                StringTokenizer outputTokenizer = new StringTokenizer(output,"~" );
                //输出anagrams(字谜)大于2的结果
                if(outputTokenizer.countTokens()>=2)
                {
                        output = output.replace( "~", ",");
                        outputKey.set(anagramKey.toString());//设置key的值
                        outputValue.set(output);//设置value的值
                        context.write( outputKey, outputValue);//reduce
                }
        }
    
    }

    编译和执行MapReduce作业

    1、将项目编译和打包为anagram.jar,使用 SSH 客户端将 anagram.jar上传至hadoop的/home/hadoop/djt目录下。

    2、使用cd /home/hadoop/djt 切换到当前目录,通过命令行执行任务。

    hadoop jar anagram.jar com.hadoop.test.AnagramMain

    查看运行结果

    任务的最终结果输出到 HDFS ,使用如下命令查看结果。

    [hadoop@cloud004 hadoop-2.2.0-x64]$ hadoop fs -cat /anagram/output/part-r-00000

    部分结果集如下所示。

    cehors    cosher,chores,ochres,ochers
    cehorst    troches,hectors,torches
    cehort    troche,hector
    cehortu    toucher,couther,retouch
    cehoss    coshes,choses
    cehrt    chert,retch
    cehstu    chutes,tusche
    cehsty    chesty,scythe
    ceht    etch,tech
    ceiijstu    jesuitic,juiciest
    ceiikst    ickiest,ekistic
    ceiilnos    isocline,silicone
    ceiilnoss    isoclines,silicones
    ceiimmnoorss    commissioner,recommission
    ceiimmnoorsss    recommissions,commissioners
    ceiimorst    isometric,eroticism
    ceiimost    semiotic,comities
    ceiinnopst    inceptions,inspection
    ceiinrsstu    scrutinies,scrutinise
    ceiinrst    citrines,crinites,inciters
    ceiinrt    citrine,inciter
    ceiinss    iciness,incises
    ceiintz    citizen,zincite
    ceiist    iciest,cities
    ceikln    nickel,nickle
    ceiklnr    crinkle,clinker
    ceiklnrs    clinkers,crinkles
    ceiklns    nickels,nickles
    ceiklrs    slicker,lickers
    ceiklrsst    sticklers,strickles
    ceiklrst    trickles,ticklers,stickler
    ceiklrt    tickler,trickle
    ceiklsst    slickest,stickles
    ceiklst    keltics,stickle,tickles
    ceiklt    tickle,keltic
    ceiknrs    nickers,snicker
    ceikorr    rockier,corkier
    ceikorst    stockier,corkiest,rockiest
    ceikpst    skeptic,pickets
    ceikrst    rickets,tickers,sticker
    ceil    lice,ceil
    ceilmop    compile,polemic
    ceilmopr    compiler,complier
    ceilmoprs    compliers,compilers
    ceilmops    polemics,complies,compiles
    ceilnoos    colonise,colonies
    ceilnors    incloser,licensor
    ceilnorss    inclosers,licensors

     

     

    转载于:https://www.cnblogs.com/bob-wzb/p/5145787.html

    展开全文
  • 一,项目业务背景  https://blog.csdn.net/shenchaohao12321/article/details/82958936 二,整体技术流程及架构  https://blog.csdn.net/shenchaohao12321/article/details/82959255 三,数据采集  ...

    本文转载于csdn博主‘一直不懂’

    一,项目业务背景

      https://blog.csdn.net/shenchaohao12321/article/details/82958936

    二,整体技术流程及架构

      https://blog.csdn.net/shenchaohao12321/article/details/82959255

    三,数据采集

      https://blog.csdn.net/shenchaohao12321/article/details/82959322

    四,数据预处理

      https://blog.csdn.net/shenchaohao12321/article/details/82959444

    五,数据仓库设计

      https://blog.csdn.net/shenchaohao12321/article/details/82960513

    六,ETL

      https://blog.csdn.net/shenchaohao12321/article/details/82961265

    七,统计分析

      https://blog.csdn.net/shenchaohao12321/article/details/82975362

    八,结果导出

      https://blog.csdn.net/shenchaohao12321/article/details/83020556

    九,工作流调度

      https://blog.csdn.net/shenchaohao12321/article/details/83020574

    十,数据展示

      https://blog.csdn.net/shenchaohao12321/article/details/83020653

    十一,项目代码

      https://blog.csdn.net/shenchaohao12321/article/details/83020719

    十二,有关hql语句的注意事项

      count(1)里面的数字表示对第几列的数据进行统计计数。

      group by  分组可以去重。

      having 与group by 一起使用 ,跟where的用处一样。

      row_number() over (partition by clumn_a  order by column_b asc/desc) as rn 

      对表的每行标定行数

      partition by clumn_a相当于表的分组,order by 相当于对表的排序,rn 行数序号的字段。

      concat(字段,字段)  表示将两个字段和为一个字段。

      distinct去重

      cast(......as int) 表示对字段的类型转换为int类型。

      select  '2018-11-11' as date......为每一个查询的行的表结构第一位加上字段名为date数据为'2018-11-11' 的列。

    转载于:https://www.cnblogs.com/songweideboke/p/9868886.html

    展开全文
  • 现在Hadoop已经发展成为包含多个子项目的集合。 虽然其核心内容是MapReduce和 Hadoop分布式文件系统(HDFS), 但Hadoop下的Common、Avro、Chukwa, Hive、HBase等子项目也是不可或缺的。 它们提供了互补性服务或在...

    现在Hadoop已经发展成为包含多个子项目的集合。 虽然其核心内容是MapReduce和 Hadoop分布式文件系统(HDFS), 但Hadoop下的Common、Avro、Chukwa, Hive、HBase等子项目也是不可或缺的。 它们提供了互补性服务或在核心层上提供了更高层的服务。

    l ) Core/Common :从Hadoop0.20版本开始,HadoopCore项目便更各为Common。
    Common是为Hadoop其他子项目提供支持的常用工具,它主要包括FileSystem、RPC和串
    行化库,它们为在廉价的硬件上搭建云计算环境提供基本的服务,并且为运行在该运平台上 的软件开发提供了所需的API。

    2)Avro: Avro是用于数据序列化的系统。它提供了丰富的数据结构类型、快速可压缩
    的工进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成
    功能。其中,代码生成器既不需要读写文件数据,也不需要使用或实现RPC协议,它只是一个可选的对静态类型语言的实现。
    Avro系统依赖于模式(Schema),Avro数据的读和写是在模式之下完成的。这样就可以减少写入数据的开销,提高序列化的速度并缩减其大小。同时,也可以方便动态脚本语言的使用,因为数据连同其模式都是自描述的。
    在RPC中,Avro系统的客户端和服务端通过握手协议进行模式的交换。因此当客户端和服务端拥有彼此全部的模式时,不同模式下的相同命名字段、丢失字段和附加字段等信息的一致性问题就得到了很好的解决。
    3)MapReduce : MapReduce是一种编程模型,用于大规模数据集(大于lTB)的并行运算。“映射”(map)、“化简”(reduce)等概念和它们的主要思想都是从函数式编程语言中借来的。它使得编程人员在不了解分布式并行编程的情况下也能方便地将自己的程序运行在分布式系统上。MapReduce在执行时先指定一个map(映射〉函数,把输入键值对映射成一 组新的键值对,经过一定的处理后交给reduce,reduce对相同key下的所有value进行处理 后再输出键值对作为最终的结果。

    4)HDFS: 是一个分布式文件系统 。 由于HDFS 具有高容错性(fault-tolerant)的特点 , 所以 可以 设计部署在低廉(lo w-cost)的硬件上。 它可以通过提供高 吞吐率(high throughput)采访问应用程序的数据, 适合那些有 着超大 数据集的应用程序 。 HDFS放宽了可移植操作系统接口(PO SIX, Portable Operating System Interface)的要求, 这样就 可以实现
    以流的形式 访问文件系统中的数据。 HDFS原本是开源的Apache项目Nutch的基础 结构 , 最后它成为了Hadoop的基础架构之 一 。

    以下是HDFS的设计目标:
    1.检测和快速恢复硬件故障 。 硬件故障是常见的问题, 整个 HDFS系统 由数百台或 数千台存储着 数据文件的服务器组成, 而如此多的服务器意味着高故障率 ,因此, 故障的检测和自动快速恢复是HDFS的一个核心目标。
    2.流式的数据访问 。 HDFS使应用程序能流式地访问它们的数据集 。 HDFS被设计成适合进行批量 处理, 而不是用户交互式的处理。 所以它重视 数据吞吐量, 而不是数据访问的反应速度。

    3.简化一致性模型 。大部分的HDFS 程序操作文件时需要 一次写人, 多次读取。 一个文件一旦经过创建写入关闭之后就不需要修改了从而简化了数据一致性和吞吐量的数据访问问题。

    4.通信协议 。 所有的通信协议都在TCP/IP 协议之上。 一个 客户端和明确配置了端口的名字节点(NameNode)建立连接之后, 它和名称节点(NameNode)的协议便是客户端协议(Client Protocal)。 数据节点(DataNode)和名字节点(NameNode)之间则用数据节点 协议(DataNode Protocal)。

    5) Chukwa : Chukwa是开源的数据收集系统 , 用于监控和分析大型分布式系统的数据。 Chukwa是在Hadoop的HDFS和 MapReduce框架之上搭建的, 它同时继承了Hadoop的可扩展性和健壮性 。Chukwa通过HDFS来存储数据, 并依赖于MapReduce任务处理数据。 Chukwa中也附带了灵活且强大的工具, 用于显示、 监视和分析 数据结果, 以便更好地利用所收集的数据。

    6) Hive : Hive最早是由Facebook设计的, 是一个建立在Hadoop 基础之上的数据仓库,它提供了一些用于数据整理、 特殊查询和分析存储在Hadoop文件中的数据集的工具。 Hive提供的是一种结构化数据的机制, 它支持类似于传统RDBMS中的SQL语言来帮助那些熟悉SQL的用户查询Hadoop中的数据, 该查询语言称为Hive QL 。 与此同时, 那些传统的Map Reduce编程人员也可以 在Mapper或Reducer中通过Hive QL查询数据。 Hive编译 器会把Hive QL编译成一组MapReduce任务, 从而方便 MapReduce编程人员进行Hadoop应用的开发。

    7) HBase : HBase是一个分布式的、 面向列的开源 数据库, 该技术来源于Google的论文Bigtable: 一个结构化数据的分布式存储系统飞如同Bigtable利用 了Google文件系统( Google File System)提供的分布式数据存储方式一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Hadoop项目的子项目。HBase不同于一般的关系数据库,其一,HBase是一个适合于存储非结构化数据的数据库:其二,HBase是基于列而不是基于行的模式。HBase和Bigtable使用相同的数据模型。用户将数据存储在一个表里,一个数据行拥有一个可选择的键和任意数量的列。由于HBase表示疏松的,用户可以给行定义各种不同的列。

    8) Pig: Pig是一个对大型数据集进行分析和评估的平台。Pig最突出的优势是它的
    结构能够经受住高度并行化的检验,这个特性让它能够处理大型的数据集。目前,Pig的底层由一个编译器组成,它在运行的时候会产生一些MapReduce程序序列,Pig的语
    言层由一种叫做PigLatin的正文型语言组成。

    展开全文
  • 现在Hadoop已经发展成为包含多个子项目的集合。虽然其核心内容是MapReduce和Hadoop分布式文件系统(HDFS),但 Hadoop下的Common、Avro、Chukwa、Hive、HBase等子项目也是不可或缺的。它们提供了互补性服务或在核心层...
  • hadoop论坛实战项目

    2015-08-14 21:40:00
    hadoop论坛实战项目 转载于:https://www.cnblogs.com/lsf2015/p/4731295.html
  • 1.2 Hadoop项目及其结构现在Hadoop已经发展成为包含很多项目的集合。虽然其核心内容是MapReduce和Hadoop分布式文件系统,但与Hadoop相关的Common、Avro、Chukwa、Hive、HBase等项目也是不可或缺的。它们提供了互补...
  • Hadoop实战之MapReducer项目结构分析

    千次阅读 2018-05-06 17:59:22
    一.MapReducer项目结构分析 1.前言 参考本例子前: 1.需要确保搭建好了hadoop集群环境。 2.安装了eclipse开发hadoop的环境。 3.这是关于MapReducer中的Mapper、Reduce、Job三个类的学习分析。 2.hadoop的...
  • Hadoop项目实战

    2017-03-29 17:57:00
    这个项目是流量经营项目,通过Hadoop的离线数据项目。 运营商通过HTTP日志,分析用户的上网行为数据,进行行为轨迹的增强。 HTTP数据格式为: 流程: 系统架构: 技术选型: 这里只针对其中的一...
  • hadoop实战练习

    2018-04-02 16:17:29
    本文介绍了hadoop实战项目的背景,技术选型,开发详细讲解
  • hadoop实战(二)

    2020-07-28 11:35:44
    引言: 哈哈,时隔几日,坏蛋哥又回来了,继上一篇hadoop实战练习(一),坏蛋哥准备继续写一个实战练习实例。苏格拉底曾说:所有科学都源于需求。那么我们就抛出今天实战项目的需求:百度采集了一段时间用户的访问...
  • Hadoop项目实战:新闻离线项目分析

    千人学习 2019-01-13 21:50:13
    本课程为项目实战课,项目各个环节既深入讲解理论知识,又结合项目业务进行实操,从而达到一站式掌握大数据离线项目
  • JavaEE+hadoop大数据实战项目开发19期视频教程(百度网盘链接) 视频,文档,源代码都有!
  • Hadoop项目实战:新闻离线项目分析 大数据高级架构师,多年大数据项目架构...
  • Hadoop实战》是一本系统且极具实践指导意义的hadoop工具书和参考书。内容全面,对hadoop整个技术体系进行了全面的讲解,不仅包括hdfs和mapreduce这两大核心内容,而且还包括hive、hbase、mahout、pig、zookeeper、...
  • 项目架构: idea创建sb项目: 至此,sb项目构建完毕,找到程序入口,测试成功! 搭建nginx环境: 1,安装c++依赖 cd /etc/yum.repos.d rm -rf * 上传 CentOS6-Base-163.repo 文件---->/etc/yum.repos.d yum ...
  • Hadoop实战教程视频

    千次阅读 2013-09-17 22:59:17
    Hadoop实战经典教程视频,通俗易懂的讲解,从介绍Hadoop到HDFS、MapReduce基本原理的讲解,最后结合两是小项目整合应用Hadoop技术。。。    资源来源:http://leezk.com/category/resource
  • hadoop实战

    2013-07-14 22:16:42
    今天开始hadoop学习首先我们要知道什么是hadoophadoop能做那些事,...Hadoop由ApacheSoftwareFoundation公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由GoogleLab开发的MapReduce和Google...
  • Hadoop概述  Hadoop是一个开源分布式云计算平台,基于Map/Reduce模型的,处理海量数据的离线分析工具。基于Java开发,建立在HDFS上,最早由Google提出,有兴趣的同学...Hadoop项目的结构如下:   Hadoop
  • Hadoop实战视频教程下载

    千次阅读 2014-12-05 10:51:30
    Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点、十大目标) 课程讲师:迪伦 课程分类:大数据 适合人群:初级 ...Hadoop实战视频教程下载:http://pan.baidu.com/s/1c0lGoZu Hadoo
  • 一.Hadoop实战之WordCount统计单词数目 1.前言: 上一篇文章MapReducer项目结构分析 分析了hadoop的计算模型MapReducer的项目结构,下面就仿照先做一个WordCount统计单词数目的实战,便于理解。 参考本例子前: ...
  • Hadoop实战(一)之统计平均分 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,011
精华内容 404
关键字:

hadoop实战项目