构造以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. Qt下libusb-win32的使用(二)批量读写操作

    一.概述 学习libusb-win32的使用.使用批量传输方式与USB开发板进行数据读.写操作.上位机使用Qt做界面, 使用USB开发板的端点2作为批量传输端点. 二.实现 代码比较简单,直接给出,如 ...

  2. IOS设计模式第七篇之观察者设计模式

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 观察者设计模式 在观察者设计模式里面,一个对象通知其他的对象一些状态的改变.涉及这些对象不需要知道另一个对象---因此鼓励解耦设计模式.这个设计模式 ...

  3. STL 迭代器 iterator const

    STL迭代器很多时候可以当成指针来使用. 但是指针一般可以用const来控制访问. 那迭代器呢. #include <iostream> #include <vector> u ...

  4. WEB服务器控件对应生成的HTML标签 及最常应用事例

    首先得了解WEB服务器控件对应生成的HTML标签 label----------<span/>button---------<input type="submit" ...

  5. Android Studio 调试系列之分析堆栈调用

    Analyze a Stack Trace 方法:Thread.dumpStack() 一 代码中添加Thread.dumpStack() 二 Android  Studio查看堆栈log 三 借助A ...

  6. MongoDB3.4版本配置详解

    重要配置参数讲解如下 processManagement: fork: <true | false> 描述:是否以fork模式运行mongod/mongos进程,默认为false. pid ...

  7. MySQL DROP 大表时的注意事项

    对于表的删除,因为InnoDB引擎会在table cache层面维护一个全局独占锁一直到DROP TABLE完成为止,这样,对于表的其他操作会被HANG住.对于较大的表来说,DROP TABLE操作可 ...

  8. [原]openstack-kilo--issue(四) WARNING: nova has no endpoint in ! Available endpoints for this service:

    本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. 在安装kilo的时候出现了一个报错 nova endpoints WARNING ...

  9. FZU2110 Star【计算几何】

    Overpower often go to the playground with classmates. They play and chat on the playground. One day, ...

  10. Eigen中的基本函数 及其对应的matlab函数

    原文地址C++矩阵库 Eigen 快速入门 不仅有函数的基本形式,还有对应的matlab函数,用起来很方便. Eigen 矩阵定义 #include <Eigen/Dense> Matri ...