精华内容
下载资源
问答
  • Hadoop Hive Spark hive建表语句对表在hdfs上存储的file或block数量、以及后续spark读文件跑模型的影响 hive语句建的表在hdfs上存储的file个数( 即`fs -ls`命令展示的items个数)等于语句执行时候的reducer个数,...

    问题描述:

    前段时间使用hive语句建了两张较为相似的数据表,后来在spark上用这两张表跑相同的模型,发现两张表的模型训练时间不同,其中一张表跑起来非常慢。而两张表的字段数量和数据量并没有太大的差别,颇为奇怪。

    解决方法:

    先说结论:

    以上问题是两张表在hdfs上存储的文件数量不一样导致的,初始原因是在执行建表语句的时候两张表用的reducer个数不同。
    hive语句建的表在hdfs上存储的file个数( 即fs -ls命令展示的items个数)等于语句执行时候的reducer个数,而spark又是根据file的读取文件。所以若数据表的数据量过大而文件数量太少,导致每个文件过大,容易拖慢spark的执行速度。
    可以通过设置reducer个数调整在hadoop上存储的file个数,从而调节spark读取的每个文件的大小,进一步提高模型训练速度。
    需要注意:
    若file的大小若超过hdfs设置的block size,则会对应多个block(即,file数量总数大于等于block个数),
    hadoop集群上的有block.Size参数的设置,一般是64M、128M、256M等,hive上也有一个dfs.block.size参数,但是这个应该和map数量有关。

    可以从以下原理、命令自行实验理解,此处不再赘述。

    Hive部分:
    Map与Reducer个数的确定:
    Map数的计算公式:

    num_Map_tasks = max[${Mapred.min.split.size},
                    min(${dfs.block.size},  ${Mapred.max.split.size})]

    Reducer个数:
    1. 直接指定 : set mapred.reduce.tasks=100;
    2. 调整每个reducer处理的数据大小:

     num_Reduce_tasks = min[${Hive.exec.Reducers.max}, 
                          (${input.size} / ${ Hive.exec.Reducers.bytes.per.Reducer})]

    Mapred.min.split.size指的是数据的最小分割单元大小。
    Mapred.max.split.size指的是数据的最大分割单元大小。
    dfs.block.size指的是HDFS设置的数据块大小。

    Hadoop命令:
    查看表文件

    hadoop fs -ls /xx/xx.db/xxtable

    查看file和block

     hadoop fsck /xx/xx.db/dual    -files   -blocks  

    查看某个block的block.size设置值以及备份个数

     hadoop fs -stat "%o %r"  /xx/xx.db/dual/000000_0
    展开全文
  • 1 安装Hadoop 1.1 下载hadoop-2.7.x压缩包并解压至目标目录,修改$HODOOP_HOME/etc/hadoop下几个文件: hadoop-env.sh,检查JAVA_HOME、HADOOP_CONF_DIR配置是否正确; core-site.xml,加入如下配置: <...

    1 安装Hadoop

    1.1 下载hadoop-2.7.x压缩包并解压至目标目录,修改$HODOOP_HOME/etc/hadoop下几个文件:

    • hadoop-env.sh,检查JAVA_HOME、HADOOP_CONF_DIR配置是否正确;
    • core-site.xml,加入如下配置:
    <property>
           <name>hadoop.tmp.dir</name>
           <value>file:/data/hadoop-2.7.3/tmp</value>
    </property>
    <property>
           <name>fs.defaultFS</name>
           <value>hdfs://localhost:8000</value>
    </property>
    
    • hdfs-site.xml,加入如下配置:
        <property>
           <name>dfs.replication</name>
           <value>1</value>
        </property>
        <property>
            <name>dfs.http.address</name>
            <value>0.0.0.0:50070</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/data/hadoop-2.7.3/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/data/hadoop-2.7.3/tmp/dfs/data</value>
        </property>
    
    • yarn-site.xml,加入如下配置:
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    
    • mapred-site.xml,加入如下配置:
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
    

    1.2 修改/etc/profile,加入如下环境设置:

    export JAVA_HOME=/data/jdk1.8.0_141
    export SCALA_HOME=/data/scala-2.11.8
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export HADOOP_HOME=/data/hadoop-2.7.3
    export HIVE_HOME=/data/apache-hive-2.1.0
    export YARN_HOME=$HADOOP_HOME
    export HIVE_CONF_DIR=$HIVE_HOME/conf
    export SPARK_HOME=/data/spark-2.4.0-bin-hadoop2.7
    export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$SPARK_HOME/bin
    

    1.3 设置个人账号免密登陆

    使用ssh-keygen生成公私钥,一路enter;
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    1.4 初始化hadoop dfs

    hdfs namenode -format

    1.5 验证hadoop安装配置

    $HADOOP_HOME/sbin/start-all.sh
    观察控制台日志输出,应该可以看到hadoop各组件依次启动成功的日志(如有报错则逐个google解决之):
    Starting namenodes on [localhost]
    。。。
    Starting secondary namenodes [0.0.0.0]
    。。。
    starting yarn daemons
    。。。
    starting resourcemanager
    。。。
    localhost: starting nodemanager

    2 安装Hive

    2.1 下载安装mysql

    sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
    sudo yum install mysql-community-server
    sudo service mysqld start
    grep 'A temporary password' /var/log/mysqld.log |tail -1
    mysql -h localhost -u root -p${temporary password from above}
    mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'yourpasswd';
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;
    mysql> create database hive_db;
    

    2.2 下载hive-2.1.x压缩包并解压至目标目录,修改$HIVE_HOME/conf下几个文件:

    HADOOP_HOME=/data/hadoop-2.7.3
    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=/data/apache-hive-2.1.0/conf
    # Folder containing extra ibraries required for hive compilation/execution can be controlled by:
    export HIVE_AUX_JARS_PATH=/data/apache-hive-2.1.0/lib
    
    • hive-site.xml,修改/加入如下配置:
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive_db?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>yourpasswd</value>
    </property>
    <property>
      <name>hive.exec.local.scratchdir</name>
      <value>/data/apache-hive-2.1.0/iotmp</value>
      <description>Local scratch space for Hive jobs</description>
    </property>
    <property>
      <name>hive.downloaded.resources.dir</name>
      <value>/data/apache-hive-2.1.0/iotmp/${hive.session.id}_resources</value>
      <description>Temporary local directory for added resources in the remote file system.</description>
    </property>
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/data/apache-hive-2.1.0/warehouse</value>
      <description>location of default database for the warehouse</description>
    </property>
    <property>
      <name>hive.server2.logging.operation.log.location</name>
      <value>/data/apache-hive-2.1.0/iotmp/operation_logs</value>
      <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
    </property>
    

    2.3 初始化hive schema

    cp mysql-connector-java-5.1.37.jar /data/apache-hive-2.1.0/lib
    schematool -dbType mysql -initSchema --verbose

    2.4 验证安装使用

    hive --service metastore &
    hive -e “show databases”

    3 Spark安装

    3.1 下载解压安装配置scala

    过程跟jdk安装类似,不再赘述

    3.2 修改spark配置文件

    • 修改spark-env.sh,加入如下配置:
      JAVA_HOME=/data/jdk1.8.0_91
      SCALA_HOME=/data/scala-2.12.8
      SPARK_MASTER_HOST=localhost
      SPARK_MASTER_IP=localhost
      SPARK_MASTER_PORT=7077
      SPARK_MASTER_WEBUI_PORT=8080
      SPARK_WORKER_MEMORY=4g
      HADOOP_HOME=/data/hadoop-2.7.3
      HADOOP_CONF_DIR=/data/hadoop-2.7.3/etc/hadoop
      SPARK_DIST_CLASSPATH=/data/hadoop-2.7.3/etc/hadoop:/data/hadoop-2.7.3/share/hadoop/common/lib/:/data/hadoop-2.7.3/share/hadoop/common/:/data/hadoop-2.7.3/share/hadoop/hdfs:/data/hadoop-2.7.3/share/hadoop/hdfs/lib/:/data/hadoop-2.7.3/share/hadoop/hdfs/:/data/hadoop-2.7.3/share/hadoop/yarn/lib/:/data/hadoop-2.7.3/share/hadoop/yarn/:/data/hadoop-2.7.3/share/hadoop/mapreduce/lib/:/data/hadoop-2.7.3/share/hadoop/mapreduce/:/data/hadoop-2.7.3/contrib/capacity-scheduler/*.jar
    • 修改slaves配置文件:
      cp $SPARK_HOME/conf/slaves.template $SPARK_HOME/conf/slaves && echo localhost >> $SPARK_HOME/conf/slaves

    3.3 启动验证安装

    $SPARK_HOME/sbin/start-master.sh
    $SPARK_HOME/sbin/start-slave.sh
    $SPARK_HOME/bin/spark-shell
    

    4 问题

    在测试服务器安装spark后启动spark-shell,报错:

    Failed to initialize compiler: object java.lang.Object in compiler mirror not found.
    ** Note that as of 2.8 scala does not assume use of the java classpath.
    ** For the old behavior pass -usejavacp to scala, or if using a Settings
    ** object programmatically, settings.usejavacp.value = true.
    

    尝试更换spark版本/scala版本/java版本,以及传入指定的-Dscala.usejavacp=true均无法解决,在开发机本机没有这个问题,暂时遗留。
    系统内核版本:3.10.0-514.26.2.el7.x86_64
    操作系统版本:CentOS Linux release 7.2.1511 (Core)

    5 参考资料

    https://my.oschina.net/miger/blog/1818865
    https://tecadmin.net/install-mysql-5-7-centos-rhel/
    https://stackoverflow.com/questions/34408677/starting-hadoop-daemons-without-password
    https://www.mtyun.com/library/how-to-setup-scala-on-centos7

    展开全文
  • 大数据 | Hadoop Hive Spark简介

    千次阅读 2019-05-23 11:59:16
    Hadoop Hive Spark简介 1 前言 2 什么是Hadoop? 2.1 定义 2.2 解释Map-Reduce的原理 2.3 MapReduce的优缺点 2.4 什么是HBase? 3 Hive是啥? 3.1 为什么有SQL还要Hive? 3.2 什么是Hive? 3.3 Hive优缺点 3.4 Hive...

    1 前言

    之前就一直想总结这个系列,但由于种种原因拖延至今,昨晚京东深圳电话二面就问到了Map-Reduce原理,所以赶紧总结一波!

    2 什么是Hadoop?

    2.1 定义

    • Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。
    • Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理)
    • Hadoop的数据来源可以是任何形式,在处理半结构化和非结构化数据上与关系型数据库相比有更好的性能,具有更灵活的处理能力,不管任何数据形式最终会转化为key/value,key/value是基本数据单元
    • 用函数式变成Mapreduce代替SQL,SQL是查询语句,而Mapreduce则是使用脚本和代码,而对于适用于关系型数据库,习惯SQL的Hadoop有开源工具hive代替。
    • 总结:Hadoop就是一个分布式计算的解决方案.

    在这里插入图片描述

    2.2 解释Map-Reduce的原理

    通过上述定义可以知道,Hadoop的框架最核心的设计就是:HDFS和MapReduce

    • HDFS(Hadoop的分布式文件系统 Hadoop Distributed File System)为海量的数据提供了存储
    • MapReduce则为海量的数据提供了计算

    那究竟MapReduce是什么样一个计算过程呢?

    首先上两张图展示MapReduce的过程:
    在这里插入图片描述
    在这里插入图片描述
    结合上述两张图可以看出MapReduce的过程:
    在这里插入图片描述

    首先将任务分成不同的子任务,最后再将子任务的结果进行合并!对于每一个子任务都需要进行下面的3步操作:

    1. map操作。将单词进行切分,然后建立一个key-value的map。map的输出结果则是k-v,key为词汇,value则是词汇的个数
    2. shuffle操作。将相同的key对应的k-v对输出到同一个工作节点。
    3. reduce操作。对k-v对中同一个key对应的value值进行合并,并输出。
      在这里插入图片描述
      在这里插入图片描述

    更加具体一点,可以分为5步操作:

    • 任务分解。Hadoop将输入数据切分成不同部分,并将每个split交给一个map task处理
    • Map操作。Map后会得到这个task里面每个词以及它出现的次数。即一个k-v对
    • Shuffle操作。将相同的词放在一起,并对他们进行排序,分成若干个部分。即将同一个key的k-v对分发到同一个work节点
    • Reduce操作。将上述Shuffle的输出结果进行汇总。即对同一个k的value值进行求和汇总并输出。
    • 统计结果。统计reduce task的结果,输出到文件。

    注:Map -> Shuffle -> Reduce 的中间结果,包括最后的输出都是存储在本地磁盘上。

    2.3 MapReduce的优缺点

    优点:

    • 极强的扩展能力,可以在数千台机器上并发的执行。
    • 有很好的容错性
    • 向上的接口简洁。用户只需要写map和reduce函数,即可完成大规模数据的并行处理。

    缺点:

    • 不适合对实时性要求比较高的场景,比如交互式查询或者是流式计算(因为mapreduce的启动时间比较长)
    • 不适合迭代类的计算(比如机器学习类的应用)(因为mapreduce一次执行的过程里面,往往涉及到多次磁盘读写,以及网络的传输,迭代过程需要这样的开销多次,明显降低效率)

    2.4 什么是HBase?

    • Hbase是基于Hadoop的数据库
    • HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用HBase。

    3 Hive是啥?

    3.1 为什么有SQL还要Hive?

    当我们接触到Hive的时候,会发现它的语句和SQL非常类似,实现的功能也是一致,所以我们就有疑问了,为什么有了SQL还要Hive呢?

    • 为什么有了SQL还需要hive查询?因为数据量太大了,直接SQL太慢了,所以开发了Hadoop框架,但是Hadoop的mapper和readucer函数太难写了,所以转为了友好的hive,直接写HiveQL,但是底层是MapReduce的过程

    3.2 什么是Hive?

    那究竟什么是Hive呢?

    • Hive是基于Hadoop的数据仓库工具,可以存储,查询,分析数据,方便决策人员和数据分析人员统计分析历史数据
    • Hive可以借助查询语言SQL将HDFS上存储的结构化文件映射成一张数据库表,并提供类SQL查询功能
    • 本质是将浅学易懂的SQL转换为MapReduce程序,避免编写复杂的MapReduce程序

    3.3 Hive优缺点

    那么Hive的优缺点是啥呢?

    优点:

    • 简单容易上手:提供了类SQL查询语言HQL。
    • 定位是数据仓库偏向数据分析和计算方向
    • 可扩展:为超大数据集设计了计算/扩展能力(MR作为计算引擎,HDFS作为存储系统)
    • 延展性:Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数
    • 容错:良好的容错性,节点出现问题SQL仍可完成执行。有主有从。当主机挂掉,备机马上启动。即【高可用】单点故障。
    • 多接口。Beeline,JDBC,Thrift,Python,Rest

    缺点:

    • hive的效率比较低,延迟较高。默认为M/R为执行引擎,启动有延迟
    • hive的HQL表达能力有限。(迭代式算法无法表达,比如pagerank)

    3.4 Hive应用场景

    应用场景:

    • 数据挖掘
      • 用户行为分析
      • 兴趣分区
      • 区域展示
    • 非实时分析
      • 日志分析
      • 文本分析
    • 数据汇总
      • 每天/周用户点击情况
      • 流量统计
    • 作为数据仓库
      • 数据抽取
      • 数据加载
      • 数据转换

    4 Spark又是啥?

    4.1 基本定义

    在这里插入图片描述

    • Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。
    • spark的一个主要特点是能够在内存中进行计算,及时依赖磁盘进行复杂的运算,Spark依然比MapReduce更加高效
    • Spark拥有多种语言的函数式编程API,提供了除map和reduce之外更多的运算符,这些操作是通过一个称作弹性分布式数据集(resilient distributed datasets, RDDs)的分布式数据框架进行的
    • 由于RDD可以被缓存在内存中,Spark对迭代应用特别有效,因为这些应用中,数据是在整个算法运算过程中都可以被重用。大多数机器学习和最优化算法都是迭代的,使得Spark对数据科学来说是个非常有效的工具

    4.2 Spark的核心组件

    Spark库本身包含很多应用元素,这些元素可以用到大部分大数据应用中,其中包括对大数据进行类似SQL查询的支持,机器学习和图算法,甚至对实时流数据的支持。核心组件如下:

    • Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的。
    • Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。对熟悉Hive和HiveQL的人,Spark可以拿来就用。
    • Spark Streaming:允许对实时数据流进行处理和控制。很多实时数据库(如Apache Store)可以处理实时数据。Spark Streaming允许程序能够像普通RDD一样处理实时数据。
    • MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。之前可选的大数据机器学习库Mahout,将会转到Spark,并在未来实现。
    • GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作。

    由于这些组件满足了很多大数据需求,也满足了很多数据科学任务的算法和计算上的需要,Spark快速流行起来。不仅如此,Spark也提供了使用Scala、Java和Python编写的API;满足了不同团体的需求,允许更多数据科学家简便地采用Spark作为他们的
    大数据解决方案。

    4.3 Spark的优势

    总结:

    • 中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果。

    • Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足

    具体来说:

    • Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
    • Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟
    • 引进了名为弹性分布式数据集(RDD) 的抽象。RDD 是分布在一组节点中的只读对象集合。这些集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护 “血统”(即允许基于数据衍生过程重建部分数据集的信息)。RDD 被表示为一个 Scala 对象,并且可以从文件中创建它;一个并行化的切片(遍布于节点之间);另一个 RDD 的转换形式;并且最终会彻底改变现有 RDD 的持久性,比如请求缓存在内存中。
    • Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法

    四大特性:

    • 高效性。比Hadoop运行速度提高100倍。
    • 易用性。Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。
    • 通用性。Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。
    • 兼容性。Spark可以非常方便地与其他的开源产品进行融合。

    4.4 Spark和Hadoop的对比?

    • 迭代运算效率更高。Spark的中间数据放到内存中,对于迭代运算效率更高。即Spark更适合于迭代运算比较多的ML(机器学习)和DM(数据挖掘)运算。因为在Spark里面,有RDD的抽象概念。
    • Spark比Hadoop更通用
    • Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。

    Spark与Hadoop的结合:

    • Spark可以直接对HDFS进行数据的读写,同样支持Spark on YARN。
    • Spark可以与MapReduce运行于同集群中,共享存储资源与计算,数据仓库Shark实现上借用Hive,几乎与Hive完全兼容。

    4.5 应用场景

    • 适用于机器学习迭代算法。Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小(大数据库架构中这是是否考虑使用Spark的重要因素
    • 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合

    5 案例补充思考

    如果想统计下过去10年统计学论文出现最多的几个单词,看看大家都在研究些什么,那收集好论文后,该怎么办呢?

    • 方法1:遍历所有论文统计单词次数

      • 操作:写一个程序,把所有论文按顺序遍历一遍,统计每一个遇到的单词的出现次数,最后就可以知道哪几个单词最热门了。
      • 评价:数据集比较小时,是非常有效的,而且实现最简单,用来解决这个问题很合适。 但数据集大了效率太低。
    • 方法2:Python多进程的方式进行处理

      • 操作:采用多进程,一个进程处理一部分论文,多进程同时开始计数,最后将各自统计结果进行汇总!
      • 评价:保证电脑是有多个GPU;但是代码实现难度会有一些
    • 方法3: 把作业交给多个计算机去完成

      • 操作:可以使用方法1的程序,部署到N台机器上去,然后把论文集分成N份,一台机器跑一个作业。
      • 评价:这个方法跑得足够快,但是部署起来很麻烦,我们要人工把程序copy到别的机器,要人工把论文集分开,最痛苦的是还要把N个运行结果进行整合(当然我们也可以再写一个程序)。
    • 方法4:MapReduce进行处理

    参考

    展开全文
  • Hadoop Hive HBase Spark Storm概念解释
  • HadoopSparkHive
  • hadoop hbase hive spark对应版本

    千次阅读 2020-01-07 11:32:07
    hbase和hive之间版本对应关系 ...hivehadoophivespark之间版本对应关系 版本信息来自于hive源码包的pom.xml: hive-3.1.2 <hadoop.version>3.1.0</hadoop.version> <hbase.ve...

    hbase和hive之间版本对应关系

    在这里插入图片描述
    图片来源参考官网:
    http://hbase.apache.org/book.html#hadoop

    hive和hadoop、hive和spark之间版本对应关系

    版本信息来自于hive源码包的pom.xml:

    hive-3.1.2

    <hadoop.version>3.1.0</hadoop.version>
    <hbase.version>2.0.0-alpha4</hbase.version>
    <spark.version>2.3.0</spark.version>
    <scala.binary.version>2.11</scala.binary.version>
    <scala.version>2.11.8</scala.version>
    <zookeeper.version>3.4.6</zookeeper.version>

    hive-2.3.6

    <hadoop.version>2.7.2</hadoop.version>
    <hbase.version>1.1.1</hbase.version>
    <spark.version>2.0.0</spark.version>
    <scala.binary.version>2.11</scala.binary.version>
    <scala.version>2.11.8</scala.version>
    <zookeeper.version>3.4.6</zookeeper.version>

    参考其他的博客

    Hive Version Spark Version
    3.0.x 2.3.0
    2.3.x 2.0.0
    2.2.x 1.6.0
    2.1.x 1.6.0
    2.0.x 1.5.0
    1.2.x 1.3.1
    1.1.x 1.2.0

    参考博客链接:
    https://blog.csdn.net/weixin_44033089/article/details/86588595

    apache-hive-1.2.2-src <spark.version>1.3.1</spark.version>
    apache-hive-2.1.1-src <spark.version>1.6.0</spark.version>
    apache-hive-2.3.3-src <spark.version>2.0.0</spark.version>
    apache-hive-3.0.0-src <spark.version>2.3.0</spark.version>

    stackoverflow上可行的例子是:
    spark 2.0.2 with hadoop 2.7.3 and hive 2.1
    参考链接:
    https://stackoverflow.com/questions/42281174/hive-2-1-1-on-spark-which-version-of-spark-should-i-use

    qq群里有网友给出的版本是:
    Hive 2.6 spark2.2.0

    版本如下暂时没发现有什么兼容性问题:
    apache-hive-3.0.0-bin
    hadoop-3.0.3
    spark-2.3.1-bin-hadoop2.7

    参考博客链接:
    https://blog.csdn.net/appleyuchi/article/details/81171785

    flink

    版本信息来自于flink源码包的pom.xml:

    flink-1.9.1

    <hadoop.version>2.4.1</hadoop.version>
    <scala.version>2.11.12</scala.version>
    <scala.binary.version>2.11</scala.binary.version>
    <zookeeper.version>3.4.10</zookeeper.version>
    <hive.version>2.3.4</hive.version>

    展开全文
  • vagrant-hadoop-hive-spark:Vagrant项目启动运行当前版本的HadoopHiveSpark的单节点VM
  • Hadoop Hive HBase Spark Storm概念解释 Hadoop Hadoop是什么? 答:一个分布式系统基础架构。 Hadoop解决了什么问题? 答:解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理...
  • HadoopSpark等大数据框架介绍

    万次阅读 多人点赞 2018-08-09 17:06:40
    Hadoop无缝连接 Spark可以使用YARN作为它的集群管理器 读取HDFS,HBase等一切Hadoop的数据 Spark整体架构 Spark提供了多种高级工具,如: Shark SQL应用于即席查询(Ad-hoc query)、Spark Streaming应用于流式...
  • 700多万hadoophivespark性能测试

    千次阅读 2016-09-10 08:03:29
    ------------------rdd--------------- val rdd = sc.textFile("hdfs://master:9000/spark/SogouQ/") rdd.cache() rdd.count() 6/09/09 19:19:11 INFO scheduler.DAGScheduler: Job 1 finished: count at :2
  • otus-ecosystem-hadoop-spark-hive OTOT“ЭHadoopSparkHive
  • windows系统下eclipse集成hadoop,spark,hive开发环境
  • Hive Hadoop Spark优化

    2019-09-28 11:53:04
    Hive Hadoop Spark优化
  • hadoop+spark+hive Linux centos大数据集群搭建,简单易懂,从0到1搭建大数据集群
  • 大数据架构文档-hadoopsparkhive,hbase,指标,维度,元数据构建。 基于haddoop生态
  • 上一篇文章我们实现了Java+Spark+Hive+Maven实现和异常处理,但当运行直接在Windows系统运行时,会有Hive相关异常的输出,本文将帮助您如何在Windows系统上集成Hadoop+Spark+Hive开发环境。 一.开发环境 系统:...
  • hadoop+hive+spark部署文档
  • hivehadoopspark集成方案实践

    千次阅读 2015-05-05 10:09:13
    这几天我尝试了hadoop+spark+hive+mysql集成方案: 1. Hadoop: 提供HDFS服务 2. Spark: 实现map-reduce分析算法 3. Hive提供Spark计算的来源数据 4. Mysql存放Hive的元数据,以及计算的最终结果   首先,...
  • 搭建sparkhive,应先搭建hadoop hadoop搭建教程:http://blog.csdn.net/xiaoxiangzi222/article/details/52757168 spark搭建教程:http://blog.csdn.net/bitcarmanlee/article/details/51967323 hive搭建教程:...
  • hadoop+spark+hive+mysql集群搭建过程

    千次阅读 2016-07-28 10:33:32
    综合了网上的一些资料,利用虚拟机,搭建hadoop,spark,hive,mysql的分布式集群。 详细记录了搭建过程遇到的问题和解决方法。需要相关资料和虚拟机文件的可以邮件我。
  • 要提前安装Hadoop 下载spark并在虚拟机解压, 解压到usr/local 文件夹重命名为 spark 给当前用户这个文件夹的权限 ...修改spark的配置文件 spark-env.sh[外链...export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop
  • 常见java面试,大数据方面,hadoop原理,hive,hbase,spark面试等的常问问题
  • Downloading and installing HadoopInstalling Hadoop 2.x to Red Hat LinuxThis section including step by step procedures for installing Hadoop 2.6.4 to Fedora 23, and configuring

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,551
精华内容 19,420
关键字:

hadoophivespark