一.序言
这里介绍用idea 跑程序去连接spark-sql->hive-metastore 的小例子,关于服务器上得保证spark-sql/spark-shell 正确执行,然后再用本地的程序去实现,我这里版本用的spark1.4.1+hive1.2.1+hadoop 2.7.1.
二.连接代码
结合笔记1的代码
2.1 maven 配置:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>1.4.1</version> </dependency> <!-- 这里如果用hadoop1.2.1 版本,必须引入,上面最好忽略h2 版本 --> <!--<dependency>--> <!--<groupId>org.apache.hadoop</groupId>--> <!--<artifactId>hadoop-client</artifactId>--> <!--<version>1.2.1</version>--> <!--</dependency>--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.10</artifactId> <version>1.4.1</version> </dependency>
2.java 代码
public static final String master = "spark://master:7077"; public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("demo1").setMaster(master); conf.set("spark.executor.memory", "256M"); JavaSparkContext sc = new JavaSparkContext(conf); HiveContext sqlContext = new org.apache.spark.sql.hive.HiveContext(sc.sc()); DataFrame df = sqlContext.sql("select * from data_center.shop limit 10"); Row[] rows = df.collect(); for(Row row : rows){ System.out.println(row); } }
3.scala 代码
object hello extends App { var master = "spark://master:7077"; val conf = new org.apache.spark.SparkConf().setAppName("demo").setMaster(master) conf.set("spark.executor.memory", "128M").set("worker_max_heapsize", "64M") val sc = new org.apache.spark.SparkContext(conf) val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc) sqlContext.sql("use data_center") var df = sqlContext.sql("select * from orderinfo limit 10"); var dd = df.collect(); }
4.hive-site.xml 文件配置:
这里我就不贴出来了,从服务器上拷贝下来的,然后改了些 文件存放的路径就行了。项目目录是:
三.常见异常:
3.1 服务器内存不够
WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
设置小点就行了:
conf.set("spark.executor.memory", "128M")
3.2 版本问题:这里一般是服务器上的版本和本地版本有不一致造成的,看着改吧!
Server IPC version 9 cannot communicate with client version 4
3.3 版本或者 hosts 地址没配对
Failed on local exception: java.io.IOException: Connection reset by peer; Host Details : local host is: "xxx/10.1.50.190"; destination host is: "xxx":9000;
3.4还有其他权限,路径 等乱起八糟的问题,看着改就行了
小结:
1.我们数据库数据放到hdfs 上,然后利用spark-sql 进行查询的方式,这里仅仅是简单连接,挺方便的
2.中途遇到的问题大多是版本问题,如果不用maven 最好把saprk/lib 下面的和 hive/lib hadoop/lib 等下面的文件弄到本地,不容易冲突。
3.纠结纠结,总会好的~。~
相关推荐
cmd = "ssh root@10.195.11.200 \"/usr/local/spark-3.1.2-bin-hadoop2.7/bin/spark-sql --master spark://gpmaster:7077 --executor-memory 2G --total-executor-cores 2 --conf spark.sql.storeAssignmentPolicy=...
本篇笔记将深入探讨Spark的核心概念、架构设计以及实际应用,旨在帮助读者全面理解并掌握Spark。 1. Spark概述: Spark最初由加州大学伯克利分校AMPLab开发,其设计理念是提供一个快速、通用且可扩展的大数据处理...
### Spark SQL 学习笔记知识点总结 #### 一、Spark SQL 概述 - **定义**:Spark SQL 是 Apache Spark 的一个模块,用于处理结构化数据。它提供了 DataFrame 和 Dataset API,以及支持 SQL 查询的能力。这些特性...
"Spark笔记"可能涵盖了以下几个关键知识点: 1. Spark架构:Spark采用Master-Worker模式,Master节点管理任务调度,Worker节点运行任务。Spark的核心组件包括Driver、Executor和Cluster Manager。Driver负责解析并...
2. Spark SQL:它是Spark处理结构化数据的模块,能够与Hive、Parquet和其他SQL兼容格式进行交互。Spark SQL通过DataFrame API提供了SQL查询功能,使得开发人员可以使用SQL或者DataFrame API进行数据处理。 3. Spark...
此应用程序(CSJB)是Spark应用程序,它将在Spark SQL中自动将所有Cassandra表注册为架构RDD,并启动嵌入式Apache HiveThriftServer,以使这些RDD准备通过“ jdbc:hive2”协议使用。 使用此网桥/服务器,您可以...
Jupyter笔记本服务器准备在远程Spark主服务器上运行带有Scala内核的Spark 在/ 上查看使用自定义jar,SBT打包,集群HDFS,Scala以及在笔记本上进行数据可视化的Scala运行Spark / Scala Notebook的 查看 用法 创建...
Spark 学习之路,包含 Spark Core,Spark SQL,Spark Streaming,Spark mllib 学习笔记 * [spark core学习笔记及代码 * [spark sql学习笔记及代码 * [spark streaming学习笔记及代码 Spark 消息通信 ### Spark ...
本学习笔记集中介绍了Spark SQL在spark-shell中的操作方法,以及如何使用Spark进行数据清洗和转换成DataFrame的操作。 首先,Spark SQL是Spark用于处理结构化数据的一个组件,它提供了SQL接口,可以执行SQL查询。...
Jupyter Notebook 是一个开源的Web应用程序,支持多种编程语言,如 Python、R 和 Scala,而 Spark Notebook 特别针对 Scala 和 Spark 优化,使得大数据处理更加便捷。 ### 安装与启动 Spark Notebook 要开始使用 ...
Spark笔记1.docx Spark 是什么? Spark 是一个基于内存的统一分析引擎,用于大规模数据处理,包括离线计算、实时计算和快速查询(交互式查询)。它具有快、易用和通用等特点,可以进行离线计算、交互式查询、实时...
Spark SQL是Spark处理结构化数据的主要组件,引入DataFrame API,提供了更高级别的抽象,使得SQL查询和程序化操作可以无缝切换。DataFrame通过 Catalyst Optimizer 进行高效的查询优化。 五、Spark Streaming Spark...
代码、SQL 查询、标记甚至 JavaScript。 Spark 的使用是开箱即用的,它只是由名为sparkContext的隐式变量启用。 您还应该检查网站,。 讨论 加油! 邮件列表 有两个不同的邮件列表,每个列表都针对特定的讨论: ...
在这里,它将作为编写和展示Spark程序的平台,便于理解和调试代码,同时也方便生成报告或演示。 在压缩包文件 "The-Spark-Foundation-Task-1-main" 中,我们可以期待找到以下内容: 1. **代码文件**:可能包含一个...
Spark SQL学习笔记 Spark SQL是Apache Spark平台下的一个模块,提供了一个编程抽象叫做DataFrame,并且作为分布式SQL查询引擎的作用。Spark SQL是Spark平台下的一个重要组件,主要用于处理结构化数据。 Spark SQL...
### Spark学习笔记 #### Spark概览 ##### 1. Spark简介 - **定义**:Apache Spark是一种快速且通用的大规模数据处理系统,旨在为大规模数据处理提供高效的支持。 - **起源**:Spark最初由美国加州大学伯克利分校的...
2. Spark SQL:用于处理结构化数据,支持SQL查询,可以与Hive等数据库集成。 3. Spark Streaming:处理实时流数据,通过微批处理实现高吞吐量。 4. MLlib:机器学习库,提供了多种算法和工具。 5. GraphX:图计算...