spark on yarn模式下配置spark-sql访问hive元数据

时间:2022-12-18 19:05:53

spark on yarn模式下配置spark-sql访问hive元数据

目的:在spark on yarn模式下,执行spark-sql访问hive的元数据。并对比一下spark-sql 和hive的效率。

软件环境:

  • hadoop2.7.3
  • apache-hive-2.1.1-bin
  • spark-2.1.0-bin-hadoop2.7
  • jd1.8

hadoop是伪分布式安装的,1个节点,2core,4G内存。

hive是远程模式。

  1. spark的下载地址:

    http://spark.apache.org/downloads.html

    解压安装spark

    tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz.tar

    cd spark-2.1.0-bin-hadoop2.7/conf

    cp spark-env.sh.template spark-env.sh

    cp slaves.template slaves

    cp log4j.properties.template log4j.properties

    cp spark-defaults.conf.template spark-defaults.conf

  2. 修改spark的配置文件

    cd $SPARK_HOME/conf

    vi spark-env.sh

    export JAVA_HOME=/usr/local/jdk
    export HADOOP_HOME=/home/fuxin.zhao/soft/hadoop-2.7.3
    export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop

    vi spark-defaults.conf

    spark.master                     spark://ubuntuServer01:7077
    spark.eventLog.enabled true
    spark.eventLog.dir hdfs://ubuntuServer01:9000/tmp/spark
    spark.serializer org.apache.spark.serializer.KryoSerializer
    spark.driver.memory 512m
    spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
    #spark.yarn.jars hdfs://ubuntuServer01:9000/tmp/spark/lib_jars/*.jar

    vi slaves

    ubuntuServer01
  3. ** 配置spark-sql读取hive的元数据**

    ##将hive-site.xml 软连接到spark的conf配置目录中:
    cd $SPARK_HOME/conf
    ln -s /home/fuxin.zhao/soft/apache-hive-2.1.1-bin/conf/hive-site.xml hive-site.xml
    ##将连接 mysql-connector-java-5.1.35-bin.jar拷贝到spark的jars目录下
    cp $HIVE_HOME/lib/mysql-connector-java-5.1.35-bin.jar $SPARK_HOME/jars
  4. 测试spark-sql:

    先使用hive创建几个数据库和数据表,测试spark-sql是否可以访问

    我向 temp.s4_order表导入了6万行,9M大小的数据。

    #先使用hive创建一下数据库和数据表,测试spark-sql是否可以访问
    hive -e "
    create database temp;
    create database test;
    use temp;
    CREATE EXTERNAL TABLE t_source(
    `sid` string,
    `uid` string
    ); load data local inpath '/home/fuxin.zhao/t_data' into table t_source;
    CREATE EXTERNAL TABLE s4_order(
    `orderid` int ,
    `retailercode` string ,
    `orderstatus` int,
    `paystatus` int,
    `payid` string,
    `paytime` timestamp,
    `payendtime` timestamp,
    `salesamount` int,
    `description` string,
    `usertoken` string,
    `username` string,
    `mobile` string,
    `createtime` timestamp,
    `refundstatus` int,
    `subordercount` int,
    `subordersuccesscount` int,
    `subordercreatesuccesscount` int,
    `businesstype` int,
    `deductedamount` int,
    `refundorderstatus` int,
    `platform` string,
    `subplatform` string,
    `refundnumber` string,
    `refundpaytime` timestamp,
    `refundordertime` timestamp,
    `primarysubordercount` int,
    `primarysubordersuccesscount` int,
    `suborderprocesscount` int,
    `isshoworder` int,
    `updateshowordertime` timestamp,
    `devicetoken` string,
    `lastmodifytime` timestamp,
    `refundreasontype` int )
    PARTITIONED BY (
    `dt` string);
    load data local inpath '/home/fuxin.zhao/20170214003514' OVERWRITE into table s4_order partition(dt='2017-02-13');
    load data local inpath '/home/fuxin.zhao/20170215000514' OVERWRITE into table s4_order partition(dt='2017-02-14');
    "

输入spark-sql命令,在终端中执行如下一些sql命令:

启动spark-sql客户端:

spark-sql --master yarn

在启动的命令行中执行如下sql:

	show database;
use temp;
show tables;
select * from s4_order limit 100;
select count(*) ,dt from s4_order group dt;
select count(*) from s4_order ;
insert overwrite table t_source select orderid,createtime from s4_order;

spark on yarn模式下配置spark-sql访问hive元数据

spark on yarn模式下配置spark-sql访问hive元数据

select count() ,dt from s4_order group dt; // spark-sql耗时 11s; hive执行耗时30秒

select count(
) from s4_order ; // spark-sql耗时2s;hive执行耗时25秒。

直观的感受是spark-sql 的效率大概是hive的 3到10倍,由于我的测试是本地的虚拟机单机环境,hadoop也是伪分布式环境,资源较匮乏,在生产环境中随着集群规模,数据量,执行逻辑的变化,执行效率应该不是这个比例。

spark on yarn模式下配置spark-sql访问hive元数据的更多相关文章

  1. spark 在yarn模式下提交作业

    1.spark在yarn模式下提交作业需要启动hdfs集群和yarn,具体操作参照:hadoop 完全分布式集群搭建 2.spark需要配置yarn和hadoop的参数目录 将spark/conf/目 ...

  2. spark on yarn模式下内存资源管理(笔记2)

    1.spark 2.2内存占用计算公式 https://blog.csdn.net/lingbo229/article/details/80914283 2.spark on yarn内存分配** 本 ...

  3. spark on yarn模式下内存资源管理(笔记1)

    问题:1. spark中yarn集群资源管理器,container资源容器与集群各节点node,spark应用(application),spark作业(job),阶段(stage),任务(task) ...

  4. Spark on YARN模式的安装(spark-1.6.1-bin-hadoop2.6.tgz + hadoop-2.6.0.tar.gz)(master、slave1和slave2)(博主推荐)

    说白了 Spark on YARN模式的安装,它是非常的简单,只需要下载编译好Spark安装包,在一台带有Hadoop YARN客户端的的机器上运行即可.  Spark on YARN简介与运行wor ...

  5. spark跑YARN模式或Client模式提交任务不成功(application state: ACCEPTED)

    不多说,直接上干货! 问题详情 电脑8G,目前搭建3节点的spark集群,采用YARN模式. master分配2G,slave1分配1G,slave2分配1G.(在安装虚拟机时) export SPA ...

  6. spark跑YARN模式或Client模式提交任务不成功(application state: ACCEPTED)(转)

    不多说,直接上干货! 问题详情 电脑8G,目前搭建3节点的spark集群,采用YARN模式. master分配2G,slave1分配1G,slave2分配1G.(在安装虚拟机时) export SPA ...

  7. spark on yarn模式里需要有时手工释放linux内存

    为什么要提出这个问题? spark跑YARN模式或Client模式提交任务不成功(application state: ACCEPTED) 然后执行 [spark@master spark--bin- ...

  8. Spark- Spark Yarn模式下跑yarn-client无法初始化SparkConext,Over usage of virtual memory

    在spark yarn模式下跑yarn-client时出现无法初始化SparkContext错误. // :: INFO mapreduce.Job: Task Id : attempt_142829 ...

  9. flink on yarn模式下两种提交job方式

    yarn集群搭建,参见hadoop 完全分布式集群搭建 通过yarn进行资源管理,flink的任务直接提交到hadoop集群 1.hadoop集群启动,yarn需要运行起来.确保配置HADOOP_HO ...

随机推荐

  1. YYModel 源码解读(二)之NSObject+YYModel.h (1)

    本篇文章主要介绍 _YYModelPropertyMeta 前边的内容 首先先解释一下前边的辅助函数和枚举变量,在写一个功能的时候,这些辅助的东西可能不是一开始就能想出来的,应该是在后续的编码过程中 ...

  2. 字符串 中的split 与数组中的join

    关于基础,总是隔一段时间,就得看一次,要不不用总是忘,今天又重新看了,一下字符串对象的split,然后就想到了数组对象的join. var str='wo shi yi ge js'; var str ...

  3. 02Spring_Ioc和DI介绍

    什么是IOC? IoC: 控制反转, 解决程序对象紧密耦合问题(工厂+反射+ 配置文件), 将程序中原来构造对象的权限,交给IoC容器来构造,当程序需要对象,找IoC容器获取.

  4. F7控件

    //动态给F7加过滤 waf("#costSubject").wafPromptStandard("option", "filteritem&quot ...

  5. 如何在ecshop订单中显示客户给商家的留言

    ecshop后台->订单管理->订单打印 在你想要加入的位置加入 客户给商家的留言:{$order.postscript} ok啦,很简单咯

  6. 2天驾驭DIV+CSS (实战篇)(转)

     这是去年看到的一片文章,感觉在我的学习中,有不少的影响.于是把它分享给想很快了解css的兄弟们.本文是实战篇. 基础篇[知识一] “DIV+CSS” 的叫法是不准确的[知识二] “DIV+CSS” ...

  7. apk反编译(6)ProGuard 工具 android studio版官方教程[作用,配置,解混淆,优化示例]

    ProGuard In this document Enabling ProGuard (Gradle Builds) Configuring ProGuard Examples Decoding O ...

  8. docker使用教程

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  9. SQLServer之修改UNIQUE约束

    使用SSMS数据库管理工具修改UNIQUE约束 1.连接数据库,选择数据表->右键点击->选择设计(或者展开键,选择要修改的键,右键点击,选择修改,后面步骤相同). 2.选择要修改的数据列 ...

  10. Python网络爬虫之三种数据解析方式

    1. 正则解析 正则例题 import re # string1 = """<div>静夜思 # 窗前明月光 # 疑是地上霜 # 举头望明月 # 低头思故乡 ...