spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下:
1、下载源码
2、下载Maven,并配置
此配置简单,就略过
3、使用maven进行打包:
打包命令:
mvn -Pyarn -Dhadoop.version=2.3.0-cdh5.0.0 -Phive -Phive-thriftserver -DskipTests clean package
上面的hadoop.version可以根据自己的需要设置相应的版本
注:在windows环境下编译时,由于编译需要的内存很大,因此要设置一下maven使用的内存数据,
进入MAVEN_HOME/bin/ 目录,修改mvn.bat文件,定位到下面一行位置,此行已被注释
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
然后在下一行增加下面内容,并保存
set MAVEN_OPTS= -Xms1024m -Xmx1024m -XX:MaxPermSize=512m
编译时可能会失败,这是由于网络中断的原因,多试几次就能成功
4、将SPARK_SRC_HOME\assembly\target\scala-2.10\spark-assembly-1.4.0-hadoop2.3.0-cdh5.0.0.jar 文件替换掉SPARK_HOME/lib 目录下的 spark-assembly*.jar文件
SPARK_SRC_HOME:为spark源码路径
SPARK_HOME:spark安装路径
5、cp HIVE_HOME/conf/hive-site.xml SPARK_HOME/conf/
将hive安装目录下的hive-site.xml文件复制到spark的conf目录下
6、进入SPARK_HOME/bin/ 运行 ./spark-sql --master spark://masterIp:7077
7、查询hive表数据
> select * from test2;
15/07/16 14:07:13 INFO ParseDriver: Parsing command: select * from test2
15/07/16 14:07:13 INFO ParseDriver: Parse Completed
15/07/16 14:07:20 INFO BlockManagerInfo: Removed broadcast_0_piece0 on 192.168.209.140:51413 in memory (size: 1671.0 B, free: 267.3 MB)
15/07/16 14:07:20 INFO BlockManagerInfo: Removed broadcast_0_piece0 on 192.168.209.141:35827 in memory (size: 1671.0 B, free: 267.3 MB)
15/07/16 14:07:21 WARN HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore.
15/07/16 14:07:21 INFO deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
15/07/16 14:07:22 INFO MemoryStore: ensureFreeSpace(377216) called with curMem=0, maxMem=280248975
15/07/16 14:07:22 INFO MemoryStore: Block broadcast_1 stored as values in memory (estimated size 368.4 KB, free 266.9 MB)
15/07/16 14:07:22 INFO MemoryStore: ensureFreeSpace(32203) called with curMem=377216, maxMem=280248975
15/07/16 14:07:22 INFO MemoryStore: Block broadcast_1_piece0 stored as bytes in memory (estimated size 31.4 KB, free 266.9 MB)
15/07/16 14:07:22 INFO BlockManagerInfo: Added broadcast_1_piece0 in memory on 192.168.209.141:35827 (size: 31.4 KB, free: 267.2 MB)
15/07/16 14:07:22 INFO SparkContext: Created broadcast 1 from processCmd at CliDriver.java:423
15/07/16 14:07:23 INFO FileInputFormat: Total input paths to process : 1
15/07/16 14:07:23 INFO SparkContext: Starting job: processCmd at CliDriver.java:423
15/07/16 14:07:23 INFO DAGScheduler: Got job 1 (processCmd at CliDriver.java:423) with 2 output partitions (allowLocal=false)
15/07/16 14:07:23 INFO DAGScheduler: Final stage: ResultStage 1(processCmd at CliDriver.java:423)
15/07/16 14:07:23 INFO DAGScheduler: Parents of final stage: List()
15/07/16 14:07:23 INFO DAGScheduler: Missing parents: List()
15/07/16 14:07:23 INFO DAGScheduler: Submitting ResultStage 1 (MapPartitionsRDD[5] at processCmd at CliDriver.java:423), which has no missing parents
15/07/16 14:07:23 INFO MemoryStore: ensureFreeSpace(7752) called with curMem=409419, maxMem=280248975
15/07/16 14:07:23 INFO MemoryStore: Block broadcast_2 stored as values in memory (estimated size 7.6 KB, free 266.9 MB)
15/07/16 14:07:23 INFO MemoryStore: ensureFreeSpace(4197) called with curMem=417171, maxMem=280248975
15/07/16 14:07:23 INFO MemoryStore: Block broadcast_2_piece0 stored as bytes in memory (estimated size 4.1 KB, free 266.9 MB)
15/07/16 14:07:23 INFO BlockManagerInfo: Added broadcast_2_piece0 in memory on 192.168.209.141:35827 (size: 4.1 KB, free: 267.2 MB)
15/07/16 14:07:23 INFO SparkContext: Created broadcast 2 from broadcast at DAGScheduler.scala:874
15/07/16 14:07:23 INFO DAGScheduler: Submitting 2 missing tasks from ResultStage 1 (MapPartitionsRDD[5] at processCmd at CliDriver.java:423)
15/07/16 14:07:23 INFO TaskSchedulerImpl: Adding task set 1.0 with 2 tasks
15/07/16 14:07:24 INFO TaskSetManager: Starting task 0.0 in stage 1.0 (TID 1, 192.168.209.139, ANY, 1435 bytes)
15/07/16 14:07:24 INFO TaskSetManager: Starting task 1.0 in stage 1.0 (TID 2, 192.168.209.140, ANY, 1435 bytes)
15/07/16 14:07:24 INFO BlockManagerInfo: Added broadcast_2_piece0 in memory on 192.168.209.140:51413 (size: 4.1 KB, free: 267.3 MB)
15/07/16 14:07:24 INFO BlockManagerInfo: Added broadcast_1_piece0 in memory on 192.168.209.140:51413 (size: 31.4 KB, free: 267.2 MB)
15/07/16 14:07:25 INFO BlockManagerInfo: Added broadcast_2_piece0 in memory on 192.168.209.139:44770 (size: 4.1 KB, free: 267.3 MB)
15/07/16 14:07:30 INFO BlockManagerInfo: Added broadcast_1_piece0 in memory on 192.168.209.139:44770 (size: 31.4 KB, free: 267.2 MB)
15/07/16 14:07:34 INFO TaskSetManager: Finished task 1.0 in stage 1.0 (TID 2) in 10767 ms on 192.168.209.140 (1/2)
15/07/16 14:07:39 INFO DAGScheduler: ResultStage 1 (processCmd at CliDriver.java:423) finished in 15.284 s
15/07/16 14:07:39 INFO StatsReportListener: Finished stage: org.apache.spark.scheduler.StageInfo@9aa2a1b
15/07/16 14:07:39 INFO DAGScheduler: Job 1 finished: processCmd at CliDriver.java:423, took 15.414215 s
15/07/16 14:07:39 INFO TaskSetManager: Finished task 0.0 in stage 1.0 (TID 1) in 15287 ms on 192.168.209.139 (2/2)
15/07/16 14:07:39 INFO TaskSchedulerImpl: Removed TaskSet 1.0, whose tasks have all completed, from pool
15/07/16 14:07:39 INFO StatsReportListener: task runtime:(count: 2, mean: 13027.000000, stdev: 2260.000000, max: 15287.000000, min: 10767.000000)
15/07/16 14:07:39 INFO StatsReportListener: 0% 5% 10% 25% 50% 75% 90% 95% 100%
15/07/16 14:07:39 INFO StatsReportListener: 10.8 s 10.8 s 10.8 s 10.8 s 15.3 s 15.3 s 15.3 s 15.3 s 15.3 s
15/07/16 14:07:39 INFO StatsReportListener: task result size:(count: 2, mean: 15663.000000, stdev: 15.000000, max: 15678.000000, min: 15648.000000)
15/07/16 14:07:39 INFO StatsReportListener: 0% 5% 10% 25% 50% 75% 90% 95% 100%
15/07/16 14:07:39 INFO StatsReportListener: 15.3 KB 15.3 KB 15.3 KB 15.3 KB 15.3 KB 15.3 KB 15.3 KB 15.3 KB 15.3 KB
15/07/16 14:07:39 INFO StatsReportListener: executor (non-fetch) time pct: (count: 2, mean: 72.195332, stdev: 18.424154, max: 90.619485, min: 53.771178)
15/07/16 14:07:39 INFO StatsReportListener: 0% 5% 10% 25% 50% 75% 90% 95% 100%
15/07/16 14:07:39 INFO StatsReportListener: 54 % 54 % 54 % 54 % 91 % 91 % 91 % 91 % 91 %
15/07/16 14:07:39 INFO StatsReportListener: other time pct: (count: 2, mean: 27.804668, stdev: 18.424154, max: 46.228822, min: 9.380515)
15/07/16 14:07:39 INFO StatsReportListener: 0% 5% 10% 25% 50% 75% 90% 95% 100%
15/07/16 14:07:39 INFO StatsReportListener: 9 % 9 % 9 % 9 % 46 % 46 % 46 % 46 % 46 %
111
222
333
444
555
666
777
888
999111
222
333
444
555
666
777
888
999111
............
Time taken: 26.523 seconds, Fetched 889 row(s)
15/07/16 14:07:39 INFO CliDriver: Time taken: 26.523 seconds, Fetched 889 row(s)
spark-sql>
由于我是自己笔记本上的虚拟机上运行,同时只有两个work节点,所以运行会慢一点,但不影响功能
看到有的同学会要求先启动thriftserver,经测试可以不需要手动启动,在运行./spark-sql时会自动启动
同时hive-site.xml也不需要修改任何配置
相关推荐
通用load/write方法 手动指定选项 Spark SQL的DataFrame接口支持多种数据源的操作。...修改配置项spark.sql.sources.default,可修改默认数据源格式。 scala> val df = spark.read.load(hdfs://hadoop001:9000/nam
《Spark 2.3.0 与 Hive 集成详解——无 Hive JAR 包版本...在使用时,需要自行配置 Hive 的元数据访问,实现 Hive on Spark 的功能。这种精简的集成方式有助于提高系统的灵活性和可维护性,同时满足特定场景下的需求。
《Hive on Spark安装配置详解》 在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,常用于大规模数据集的查询和分析。然而,Hive默认使用MapReduce作为执行引擎,由于MapReduce的磁盘I/O特性,其性能相对较...
总结起来,将Hive metastore迁移到达梦数据库涉及创建数据库用户和表空间、修改Hive配置文件以及初始化元数据等步骤。这个过程不仅可以提升元数据管理的性能,还可以利用达梦数据库的特性来增强数据安全性。然而,...
《Hive on Spark实施详解》 在大数据处理领域,Hive和Spark分别是两个重要的组件,它们各自在数据仓库和分布式计算方面发挥着重要作用。当Hive与Spark结合使用,即Hive on Spark,可以实现更高效的数据处理。本文将...
**SpringBoot整合Hive-JDBC详解** 在大数据处理领域,Hadoop生态中的Hive作为一个数据仓库工具,常常用于处理大规模的数据分析任务。而SpringBoot作为Java开发中的微服务框架,以其简洁的配置和快速的开发能力深受...
《Hive案例数据集详解》 Hive是Apache软件基金会开发的一个开源大数据处理框架,它构建在Hadoop之上,提供了一种SQL-like的查询语言(HQL)来处理大规模的数据。这个“Hive案例数据集.rar”文件包含了丰富的示例...
Hive 是构建在 Hadoop 上的数据仓库工具,用于将结构化的数据文件映射为一张数据库表,并提供 SQL 类似的查询语言(HQL)来查询数据。Hive 是分析大量数据的利器,尤其适合离线批处理。 5. **Spark**: Spark 是...
《Spark大数据处理实战练习题详解》 Spark作为大数据处理领域的重要工具,因其高效、易用的特性备受开发者青睐。为了帮助大家深入理解和掌握Spark的核心功能,我们整理了一系列的Spark考试练习题,涵盖从基础概念到...
前言 大数据学习路线 大数据技术栈思维导图 大数据常用软件安装指南 一、Hadoop 分散文件存储系统 —— HDFS 多元计算框架——MapReduce ...Spark SQL 外部数据源 Spark SQL常用聚合函数 Spark SQL JOIN 操作 火花流:
Hive是基于Hadoop的数据仓库工具,允许用户使用SQL-like语言(HQL)进行数据分析。在本项目中,Hive可能用于构建数据仓库,对收集到的货运数据进行结构化存储,便于后续的离线分析和报告生成。 5. **数据集成与...
2. **Hive安装与配置**:学习如何在本地或集群环境中安装和配置Hive,包括依赖库的安装、环境变量的设置和Hive-site.xml配置文件的详解。 3. **Hive数据模型**:理解Hive的数据模型,包括表、分区、桶等概念,以及...
Spark SQL用于结构化数据处理,能与Hive等SQL系统无缝集成;Spark Streaming用于实时流数据处理;MLlib则提供了丰富的机器学习算法;GraphX则针对图数据进行处理。 二、Scala与Spark的结合 Scala是一种静态类型的...
2. **Spark SQL**:Spark 的 SQL 接口,支持标准 SQL 查询,可以与多种数据源(如 Hive、Parquet)交互。 3. **Spark Streaming**:用于实时流数据处理,通过微批处理的方式实现高吞吐和低延迟。 4. **MLlib**:...
### Spark 2.0 新特性详解 #### 一、核心改进与新特性 **1.1 Spark Core & Spark SQL** **1.1.1 API 改进** - **DataFrame与Dataset统一**: DataFrame现在被视为Dataset[Row]的一个类型别名,这使得用户能够更加...
### Hadoop环境搭建之Hive 2.1.1配置详解 #### 一、概述 在构建大数据处理环境时,Apache Hive 是一个重要的组件,它提供了SQL查询功能,使用户能够方便地对存储在Hadoop文件系统(HDFS)中的大规模数据集进行数据...
它与Hive兼容,可以处理Hive表,并将SQL查询转换为Spark作业。 3. **Spark Streaming**:Spark Streaming处理实时数据流,通过微批处理将流数据分解为小批次进行处理,提供了高吞吐量和低延迟的流处理能力。 4. **...
【Hive安装详解】 Hive是Apache软件基金会的一个开源...总之,安装Hive需要规划好整体的大数据生态环境,配置MetaStore,启动服务,并通过SQL语句进行数据管理。在实际应用中,理解其工作原理并进行性能调优是关键。
Hive是构建在Hadoop之上的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL-like查询语言(HQL)来查询数据。Hive主要应用于数据汇总、分析和报告,简化了对大规模数据集的查询和分析过程。 ...