zoukankan      html  css  js  c++  java
  • 大数据(MapReduce的编程细节及其Hive的安装,简单操作)

     


    MapReduce编程细节分析
    • MapReduce中,Reduce可以没有 (纯数据的清洗,不用Reduce)

        job.setNumReduceTasks(0);
    • 设置多个Reduce

      // 默认在MapReduce中 Reduce的数量是1 
      job.setNumReduceTasks(3);

      //为什么Reduce的数量可以设置为多个
      内存角度  并行角度

      //如果Reduce数量多个话,那么生成结果也是多个独立的文件,放置在同一个目录下
    • Partition 分区

      分区的作用: Map 输出的key,合理分配对应的Reduce进行处理
      默认的分区策略:
      key%reduceNum = 
      public class HashPartitioner<K, V> extends Partitioner<K, V> {
          public HashPartitioner() {
          }
      ​
          public int getPartition(K key, V value, int numReduceTasks) {
              return (key.hashCode() & 2147483647) % numReduceTasks;
          }
      }
      ​
      自定义分区策略
      public class MyPartitioner<K,V> extends Partitioner<K,V>{
          
      }
      job.setPartitionerClass(MyPartitioner.class);
       
    • Map的压缩

      1. core-site.xml
      2. mapred-site.xml

       

     

    • Combainer编程

      Map端的Reduce
      job.setCombinerClass(MyReduce3.class);
    • Counter计数器

       Counter counter = context.getCounter("lhcCounter", "mapCount");
      counter.increment(1L);
    Hive编程
    概念: Hive是apache组织开源的一个数据仓库框架,最开始是FaceBook提供的.

    1. 数据仓库
    数据库   DataBase
    存储的数据量级   小   价值高
    数据仓库 DataWareHouse
    存储的数据量级 大   价值低

    2. Hive底层依附的是Hadoop

    3. 以类SQL(HQL Hive Query Languge) 的方式运行MR,操作HDFS上的数据
    • Hive的原理分析

      Hive Hadoop on SQL
      SparkQL Spark on SQL
      Presto Impala kylin
    • Hive基本环境的搭建

      1. 搭建Hadoop
      2. Hive安装 加压缩
      3. 配置 
         hive-env.sh
         # Set HADOOP_HOME to point to a specific hadoop install directory
      HADOOP_HOME=/opt/install/hadoop-2.5.2
      ​
      # Hive Configuration Directory can be controlled by:
      export HIVE_CONF_DIR=/opt/install/apache-hive-0.13.1-bin/conf
         4. 在hdfs 创建  /tmp  数据库表对应的路径
                         /user/hive/warehouse
         5. 启动hive
      bin/hive
       
    • Hive的基本使用

      1. hive数据库
         show databases;
         create database if not exists lhc_140
         use lhc_140
      2. 表相关操作
         show tables;
         create table if not exists t_user(
          id int,
          name string
          )row format delimited fields terminated by '	';
      3. 插入数据 导入数据 本地操作系统文件 向 hive表 导入数据
         load data local inpath '/root/data3' into table t_user;
      4. SQL语句
         select * from t_user;
    • Hive与HDFS对应的一个介绍

      1. 数据库对应的就是一个HDFS目录
      lhc141  /user/hive/warehouse/mydb
      2. 表对应一个HDFS目录
      /user/hive/warehouse/mydb/t_user
      3. 表中的数据 对应的是 HDFS上的文件
       load data local inpath '/root/data3' into table t_user;
       bin/hdfs dfs -put /root/data3 /user/hive/warehouse/mydb/t_user
      
      
  • 相关阅读:
    top命令
    MySQL基准测试(三)--开源工具与实例演示
    MySQLdump之single-transaction详解
    牛刀小试MySQL--日志文件
    MySQL基准测试(二)--方法
    MySQL基准测试(一)--原因,策略,思路
    MySQL实验准备(二)--Python模拟数据(MySQL数据库)
    MySQL实验准备(一)--环境准备
    InnoDB存储引擎概览
    单机多实例mysq 8.0l部署安装
  • 原文地址:https://www.cnblogs.com/lhc-hhh/p/10324490.html
Copyright © 2011-2022 走看看