Exception: Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "BoneCP" plugin to create a ConnectionPool gave an error : The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH…
我尝试着在classpath中加n入mysql的驱动仍不行 解决方法:在启动的时候加入参数--driver-class中加入mysql 驱动 [hadoop@master spark-1.0.1-bin-hadoop2]$ bin/spark-shell --driver-class-path lib/mysql-connector-java-5.1.30-bin.jar 总结:1.spark的版本必须编译的时候加上了hive 1.0.0预编译版没有加入hive  1.0.1是含有hive的2.…
Spark 2.0以前版本:val sparkConf = new SparkConf().setAppName("soyo")    val spark = new SparkContext(sparkConf) Spark 2.0以后版本:(上面的写法兼容)直接用SparkSession:val spark = SparkSession      .builder      .appName("soyo")      .getOrCreate()    var…
添加配置文件 phoenixConnectMode.scala : package statistics.benefits import org.apache.hadoop.conf.Configuration import org.apache.spark.sql.{DataFrame, SQLContext} import org.apache.phoenix.spark._ object phoenixConnectMode { private val zookeeper = "node3…
Spark SQL读取数据Oracle的数据时,发现number类型的字段在读取的时候精度丢失了,使用的spark版本是Spark2.1.0的版本,竟然最后经过排查和网上查资料发现是一个bug.在Spark2.1.2以上的版本解决了这个问题. number类型的数据通过spark sql的jdbc读取的时候回变成DecimalType的类型.同时精度不会丢失,在2.1.2版本之前读取过来是IntType类型的. Spark issues列表: 通过JDBC读取Oracle数据打印的DataFra…
在hive里建一个数据库test,在数据库里建了一张表user,然后在Spark程序中使用Spark sql读取这张表 "select * form test.user" 当部署模式是spark stand模式和yarn-client模式时,程序可以正常运行,但yarn-cluster模式就报了找不到“test.user”表的错误. 解决办法: spark和hive整合,把hive-site.xml加到spark根目录的conf下,所以,要在提交Spark任务的时候,要把hive-si…
1.背景: 控制上游文件个数每天7000个,每个文件大小小于256M,50亿条+,orc格式.查看每个文件的stripe个数,500个左右,查询命令:hdfs fsck viewfs://hadoop/nn01/warehouse/…….db/……/partition_date=2017-11-11/part-06999 -files -blocks; stripe个数查看命令:hive --orcfiledump viewfs://hadoop/nn01/warehouse/…….db/tab…
spark可以通过读取hive的元数据来兼容hive,读取hive的表数据,然后在spark引擎中进行sql统计分析,从而,通过spark sql与hive结合实现数据分析将成为一种最佳实践.配置步骤如下: 1.启动hive的元数据服务 hive可以通过服务的形式对外提供元数据读写操作,通过简单的配置即可  编辑 $HIVE_HOME/conf/hive-site.xml,增加如下内容:<property><name>hive.metastore.uris</name>…
使用的是idea编辑器 spark sql从hive中读取数据的步骤:1.引入hive的jar包 2.将hive-site.xml放到resource下 3.spark sql声明对hive的支持 案例: def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession .builder() .appName(s"${this.getClass.getSimpleName}") .master(…
前一篇文章是Spark SQL的入门篇Spark SQL初探,介绍了一些基础知识和API,可是离我们的日常使用还似乎差了一步之遥. 终结Shark的利用有2个: 1.和Spark程序的集成有诸多限制 2.Hive的优化器不是为Spark而设计的,计算模型的不同,使得Hive的优化器来优化Spark程序遇到了瓶颈. 这里看一下Spark SQL 的基础架构: Spark1.1公布后会支持Spark SQL CLI . Spark SQL的CLI会要求被连接到一个Hive Thrift Server…
摘要:结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序. 本文分享自华为云社区<Hive on Spark和Spark sql on Hive有啥区别?>,作者:dayu_dls . 结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序.Hive和SparkSQL都不负责计算.Hive的默认执行引擎是mr,还可以运行在Spark和Tez.Spark可以连接多种数据源,然后…
通过Ambari2.7.3安装HDP3.1.0成功之后,通过spark sql去查询hive表的数据发现竟然无法查询 HDP3.0 集成了hive 3.0和 spark 2.3,然而spark却读取不了hive表的数据,准确来说是内表的数据. 原因hive 3.0之后默认开启ACID功能,而且新建的表默认是ACID表.而spark目前还不支持hive的ACID功能,因此无法读取ACID表的数据. 请看:https://issues.apache.org/jira/browse/SPARK-153…
1.拷贝hive-site.xml到spark/conf下,拷贝mysql-connector-java-xxx-bin.jar到hive/lib下 2.开启hive元数据服务:hive  --service metastore 3.开启hadoop服务:sh  $HADOOP_HOME/sbin/start-all.sh 4.开启spark服务:sh $SPARK_HOME/sbin/start-all.sh 5.进入spark-shell:spark-shell 6.scala操作hive(…
注意:将mysql的驱动包拷贝到spark/lib下,将hive-site.xml拷贝到项目resources下,远程调试不要使用主机名 import org.apache.spark._ import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.sql.hive.HiveContext import java.io.FileNotFoundException im…
读取数据库数据和ElasticSearch数据进行连接处理 import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext;…
简要介绍了SparkSQL与Hive on Spark的区别与联系 一.关于Spark 简介 在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题. 架构 Spark的架构如下图所示,主要包含四大组件:Driver.Master.Worker和Executor. Spark特点 Spark可以部署在YARN上 Spark原生支持对HDFS文件系统的访问 使用Scala语言编写 部署模型 单机模型:主要用来开发测试.特点:Driver.Mast…
R通过RJDBC包连接Hive 目前Hive集群是可以通过跳板机来访问 HiveServer, 将Hive 中的批量数据读入R环境,并进行后续的模型和算法运算. 1. 登录跳板机后需要首先在Linux下进行配置 从root权限切换到bzsys用户,才能够通过验证读取Hive.首先需要配置Hadoop的临时环境变量CLASSPATH路径 su bzsys export CLASSPATH=$CLASSPATH:/etc/hadoop/conf 2. 下载并安装RJDBC包 Linux下直接运行R的…
import java.sql.DriverManager import java.util.Properties import com.zhaopin.tools.{DateUtils, TextUtils} import org.apache.log4j.{Level, Logger} import org.apache.spark.sql.SparkSession /** * Created by xiaoyan on 2018/5/21. */ object IhrDownloadPg…
在spark streaming读取kafka的数据中,spark streaming提供了两个接口读取kafka中的数据,分别是KafkaUtils.createDstream,KafkaUtils.createDirectStream,前者会自动把offset更新到zk中,默认会丢数据,效率低,后者不会经过zk,效率更高,需要自己手动维护offse,通过维护护offset写到zk中,保障数据零丢失,只处理一次,下面来看看KafkaUtils.createDirectStream的使用,我把z…
从官网来copy过来的几种模式描述: Scala/Java Python Meaning SaveMode.ErrorIfExists(default) "error"(default) When saving a DataFrame to a data source, if data already exists, an exception is expected to be thrown. SaveMode.Append "append" When saving…
前面有一篇<在SQL中直接把查询结果转换为JSON数据>https://www.cnblogs.com/insus/p/10905566.html,是把table转换为json. 现反过来,当SQL从前端接收过来的数据是JSON的话,需要把它转换为TABLE.在MS SQL Server 2016有一个方法,OPENJSON. DECLARE @json_text NVARCHAR(MAX) SET @json_text = N' { "DB Type": [ {"…
话不多说,直接上代码 from pyhive import hivedef pyhive(hql): conn = hive.Connection(host='HiveServer2 host', port=10000, database='ods') cursor = conn.cursor() cursor.execute(hql) for result in cursor.fetchall(): return result 部署时遇到一个问题: Traceback (most recent…
找了很久错误,检查了配置文件,和spring配置数据源,都没有发现问题,最后上网查询了下,发现是由于配置文件后面有空格. 去除掉配置文件后面的空格就可以正常运行了.…
修改pop.xml中scope的值,如果是具体版本号,修改为如下即可解决 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> mysql存储日期类型的值与当前日期不一样的解决方法: 修改数据库链接URL为 url: jdbc…
Spark SQL是一个用来处理结构化数据的Spark组件,前身是shark,但是shark过多的依赖于hive如采用hive的语法解析器.查询优化器等,制约了Spark各个组件之间的相互集成,因此Spark SQL应运而生. Spark SQL在汲取了shark诸多优势如内存列存储.兼容hive等基础上,做了重新的构造,因此也摆脱了对hive的依赖,但同时兼容hive.除了采取内存列存储优化性能,还引入了字节码生成技术.CBO和RBO对查询等进行动态评估获取最优逻辑计划.物理计划执行等.基于这…
问题:我用 sqoop 把 Mysql 中的数据导入到 hive,使用了--delete-target-dir --hive-import --hive-overwrite 等参数,执行了两次. mysql 中只有 20 条记录.在 hive shell 中,查询导入到的表的记录,得到结果 20 条,是对的. 然而在 spark-shell 中,使用 spark sql 得到的结果却是 40 条. 又执行了一次 sqoop 的导入,hive 中仍然查询到 20 条,而 spark shell 中…
最近要在 Spark job 中通过 Spark SQL 的方式读取 Elasticsearch 数据,踩了一些坑,总结于此. 环境说明 Spark job 的编写语言为 Scala,scala-library 的版本为 2.11.8. Spark 相关依赖包的版本为 2.3.2,如 spark-core.spark-sql. Elasticsearch 数据 schema { "settings": { "number_of_replicas": 1 }, &qu…
1,JSON数据集 Spark SQL可以自动推断JSON数据集的模式,并将其作为一个Dataset[Row].这个转换可以SparkSession.read.json()在一个Dataset[String]或者一个JSON文件上完成. 请注意,作为json文件提供的文件不是典型的JSON文件.每行必须包含一个单独的,独立的有效JSON对象.有关更多信息,请参阅 JSON行文本格式,也称为换行符分隔的JSON. 对于常规的多行JSON文件,请将该multiLine选项设置为true.例如下面的例…
一 环境: spark-: hive-; scala-; hadoop--cdh-; jdk-1.8; mongodb-2.4.10; 二.数据情况: MongoDB数据格式{    "_id" : ObjectId("5ba0569cafc9ec432bd310a3"),    "id" : 7,    "name" : "7mongoDBi am using mongodb now",    "…
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单机的搭建,是因为作为个人学习的话,单机已足以,好吧,说实话是自己的电脑不行,使用虚拟机实在太卡了... 整个的集群搭建是在公司的测试服务搭建的,在搭建的时候遇到各种各样的坑,当然也收获颇多.在成功搭建大数据集群之后,零零散散的做了写笔记,然后重新将这些笔记整理了下来.于是就有了本篇博文. 其实我在搭…