zoukankan      html  css  js  c++  java
  • 读书笔记Hadoop实战6

    注:之前写过MapReduce程序,所以对Hadoop和MapReduce编程有一些了解,现在正在阅读《Hadoop实战》一书,这里主要是记下对自己有用的一些点,完全不能覆盖书中的全部要点。想要学习MapReduce入门的同学请移尊步,勿浪费时间。

    这里是我觉得不错的几个入门文章:

    http://www.cnblogs.com/forfuture1978/category/300670.html

    http://blog.csdn.net/aidayei/article/details/6580277

    http://www.cnblogs.com/mdyang/category/307547.html

    http://www.cnblogs.com/wycg1984/category/238035.html

    -----------------------------------------------------------敌我分割线------------------------------------------------------------

     

    向任务传递作业定制的参数

    Configuration类(JobConf的父类)有通用的setter方法来设置属性值,属性以键值对形式存储,键是String类型,值可以是常用类型的一种。例如:

             myJobConf.setInt(“myjob.myproperty”, Integer.parseInt(args[2]));

    使用时取出该值:在Mapper/Reducer的configure函数中

        public void configure(JobConf conf){
            int v = conf.getInt(“myjob.myproperty”, 0);
        }

     

    除了获取定制的参数,还可以获取JobConf中的其他一些配置信息。

     

    划分为多个输出

    继承MultipleOutputFormat,并实现函数

    protected String generateFileNameForKeyValue(K k, V v, String name);

    这样就能使每一个kv对的结果写入该返回值对应的名字的文件中了。

     

     

    使用数据库:

    DBOutputFormat是用于访问数据库的关键类。在driver中将输出格式设置为这个类。配置可以通过DBConfiguration来设置:

    public static void congifureDB(JobConf job,String driveClass,String dbUrl,String userName,String passwd);

    指定写入的表及字段,通过DBOutputFormat的setOutput方法:

    public static void setOutput(JobConf job, String tableName, String… fieldNames);

     

    使用DBOutputFormat使得输出键实现DBWritable接口。只有这个键被写到数据库。容易知道,write和read函数必须使用 PreparedStatement和ResultSet来实现序列化。

     

     

    感兴趣的Hadoop上的一些子项目:

    Pig:Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。http://www.cnblogs.com/skyme/archive/2012/06/04/2534876.html

     

    Hive: hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

     

    Hama和Mahout:

    Hama是矩阵计算软件包,用于计算乘机、逆、特征值、特征向量和其他矩阵运算。Mahout更专门针对基于Hadoop实现机器学习算法,如Naïve Bayes,k-means聚类,协同过滤等。

     

    --------END--------

  • 相关阅读:
    k8s管理
    Docker
    容器技术学习系列(一)-Docker基础知识学习
    Linux系统下DHCP服务安装部署和使用详解
    Linux下配置yum源为阿里云或网易的详解
    一道算法题目(1)
    SS命令和Netstat命令比较
    centos配置redis的主从复制(2)
    centos配置redis的主从复制(1)
    散列表(22)
  • 原文地址:https://www.cnblogs.com/apprentice89/p/2674180.html
Copyright © 2011-2022 走看看