构造以spark为核心的数据仓库:
0.说明
    在大数据领域,hive作为老牌的数据仓库比较流行,spark可以考虑兼容hive。但是如果不想用hive做数据仓库也无妨,大不了我们用spark建立最新的数据仓库。
    sparkSQL的发展历程表明了,spark本身就可以做数据仓库,而不需要hive。sparkSQL作为数据仓库其元数据放到了Derby中,一般生产环境不会用Derby,而是使用
    MySQL或者postgreSQL.本文就是要告诉读者,如何将sparkSQL的元数据存放到mysql.
1.集群规划情况
    mysql chinac244<-->chinac242,这两节点做了主主备份。
    spark master chinac88<-->chinac82,这两节点做了HA
    spark slave  chinac88,chinac82,chinac27
2.配置文件(chinac27上修改,然后分发到集群)
   解压后将$HIVE_HOME/conf/hive-site.xml 复制到$SPARK_HOME/conf/hive-site.xml
   编辑此文件
 vim  $SPARK_HOME/conf/hive-site.xml
   修改如下内容
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://chinac244:3306/sparkmetadata?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property> <property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property> <property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property> <property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>chinac</value>
<description>password to use against metastore database</description>
</property>
3.修改时间属性(没做)
   然后修改Hive-site.xml中所有的时间属性,所有属性的单位为s(秒),删除s然后添加3个0,所有属性的单位为ms的删除ms,spark无法识别这些单位,而是把他们全当数字处理。
4.分发配置文件
    scp $SPARK_HOME/conf/hive-site.xml chinac82:$SPARK_HOME/conf/hive-site.xml
scp $SPARK_HOME/conf/hive-site.xml chinac88:$SPARK_HOME/conf/hive-site.xml

5.重启spark集群

 [root@chinac88 ~]#  ${SPARK_HOME}/sbin/stop-all.sh
[root@chinac88 ~]# nohup ${SPARK_HOME}/sbin/start-all.sh &
  启动效果如下
6.测试配置
    A,查看MySQL中数据库信息
    B,执行sparkSQL命令
  [root@chinac27 conf]# spark-sql --master spark://chinac88:7077,chinac82:7077
//1.创建数据表
CREATE TABLE testspark(id INT,name STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
   此语句将在mysql中生成sparkmetadata数据库,数据表
    此语句将在HDFS中生成相应的目录
7.进一步测试
       准备数据,效果如下
       加载数据,语句如下  
  LOAD DATA LOCAL INPATH '/root/software/test' OVERWRITE INTO TABLE testspark;
       此语句将上传文件到HDFS,查看数据,效果如下
       查询数据,能够看到加载后的数据。    
     SELECT * FROM testspark;
       删除表,同时会删除MySQL中的表信息和HDFS中的数据   
   DROP TABLE testspark;
8.至此,sparkSQL元数据被存放到了mysql中,我们再也不需要hive数据仓库了。直接用spark做数据仓库就可以了     

Spark SQL metaData配置到Mysql的更多相关文章

  1. spark sql metastore 配置 mysql

    本文主要介绍如何为 spark sql 的 metastore 配置成 mysql . spark 的版本 2.4.0 版本 hive script 版本为 hive 1.2.2 mysql 为 5. ...

  2. IDEA 中Spark SQL通过JDBC连接mysql数据库

    一.IDEA装驱动: 1.下载一个MySQL的JDBC驱动:mysql-connector-java-5.1.44.tar.gz2.在idea Open Moudle Settings 在 Moudl ...

  3. [Spark SQL_1] Spark SQL 配置

    0. 说明 Spark SQL 的配置基于 Spark 集群搭建  && Hive 的安装&配置 1. 简介 Spark SQL 是构建在 Spark Core 模块之上的四大 ...

  4. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  5. Spark SQL笔记——技术点汇总

    目录 概述 原理 组成 执行流程 性能 API 应用程序模板 通用读写方法 RDD转为DataFrame Parquet文件数据源 JSON文件数据源 Hive数据源 数据库JDBC数据源 DataF ...

  6. Spark之 使用SparkSql操作mysql和DataFrame的Scala实现

    通过读取文件转换成DataFrame数据写入到mysql中 package com.zy.sparksql import java.util.Properties import org.apache. ...

  7. Spark SQL Thrift Server 配置 Kerberos身份认证和权限管理

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 之前的博客介绍了通过Kerberos + Sentry的方式实现了hive server2的身份认证和权限管理功能,本文主 ...

  8. Spark操作dataFrame进行写入mysql,自定义sql的方式

    业务场景: 现在项目中需要通过对spark对原始数据进行计算,然后将计算结果写入到mysql中,但是在写入的时候有个限制: 1.mysql中的目标表事先已经存在,并且当中存在主键,自增长的键id 2. ...

  9. Spark SQL读取hive数据时报找不到mysql驱动

    Exception: Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "BoneC ...

随机推荐

  1. <转>特征工程(一)

    转自http://blog.csdn.net/han_xiaoyang/article/details/50481967 1. 引言 再过一个月就是春节,相信有很多码农就要准备欢天喜地地回家过(xia ...

  2. sklearn包学习

    1首先是sklearn的官网:http://scikit-learn.org/stable/ 在官网网址上可以看到很多的demo,下边这张是一张非常有用的流程图,在这个流程图中,可以根据数据集的特征, ...

  3. 【大数据系列】安装Ambari

    一.Ambari简介 The Apache Ambari project is aimed at making Hadoop management simpler by developing soft ...

  4. JS案例 - 可自动伸缩高度的textarea文本框

    文本框的默认现象: textarea如果设置cols和rows来规定textarea的尺寸,那么textarea的默认宽高是这俩属性设置的值,可以通过鼠标拖拽缩放文本框的尺寸. textarea如果设 ...

  5. Egret容器的鼠标默认事件

    容器的鼠标默认事件   touchEnabled touchChildren touchThrough DisplayObject false \ \ DisplayObjectContainer f ...

  6. 23种设计模式之享元模式(FlyWeight)

    享元模式是一种对象结构型模式,通过运用共享技术,有效地支持大量细粒度的对象.系统只使用少量的对象,而这些对象都很相似,状态变化很小,对象使用次数增多.享元对象能做到共享的关键是区分内部状态和外部状态. ...

  7. 【SPOJ419】Transposing is Fun Pólya定理+欧拉函数

    [SPOJ419]Transposing is Fun 题意:给你一个$2^a\times2^b$的矩阵,将$1...n$中的数依次从左到右,从上往下填到矩阵里,再把矩阵转置,然后把所有数从左到右,从 ...

  8. centos7下安装nmon后,无法运行,提示 cannot execute binary file或/lib64/ld64.so.1不存在

    在centos 7.1上安装nmon后,从管网(http://nmon.sourceforge.net/pmwiki.php?n=Site.Download)下载tar包解压后,两台机器一台提示 ca ...

  9. SAP全球企业官孙小群的生活智慧

    转自:http://www.programmer.com.cn/15373/ 一下为程序员杂志对孙小群(Xiaoqun Clever)的采访. 最早接触计算机是在高中,那时发现通过一个小小的Basic ...

  10. Django---简单from表单提交

    表单提交可能会报错,注意一行代码就可以解决: 简单配置路由: 简单表单提交: <form action="/index/" method="post"&g ...