- 浏览: 234767 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
lwb314:
你的这个是创建的临时的hive表,数据也是通过文件录入进去的, ...
Spark SQL操作Hive数据库 -
yixiaoqi2010:
你好 我的提交上去 总是报错,找不到hive表,可能是哪里 ...
Spark SQL操作Hive数据库 -
bo_hai:
target jvm版本也要选择正确。不能选择太高。2.10对 ...
eclipse开发spark程序配置本地运行
spark sql 官网:http://spark.apache.org/docs/latest/sql-programming-guide.html#starting-point-sqlcontext
首先要配置好hive,保存元数据到mysql中,参考:http://kevin12.iteye.com/blog/2280777
然后配置Spark SQL,
1.配置hive-site.xml
在master1上的/usr/local/spark/spark-1.6.0-bin-hadoop2.6/conf目录创建hive-site.xml文件,内容如下:
这个配置信息从hive的目录$HIVE_HOME/conf/hive-default.xml.template文件中找到的,默认情况下的value是空值;
2.配置驱动
将$HIVE_HOME/lib/mysql-connector-java-5.1.35-bin.jar 中的mysql驱动拷贝到$SPARK_HOME/lib/下面即可。
注意:
因为之前我spark环境配置了Zookeeper,做HA,现在不在练习HA,将HA的配置去掉。如果不去掉,必须启动Zookeeper集群才可以单独一台节点上启动spark-shell等;
因为我在master1、worker1、worker2上安装了Zookeeper,所以,要将这三台节点上的$SPARK_HOME/conf/spark-env.sh文件中的SPARK_DAEMON_JAVA_OPTS去掉,并且将配置HA是注释的SPARK_MASTER_IP参数的注释去掉;
export SPARK_MASTER_IP=master1
#export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master1:2181,worker1:2181,worker2:2181 -Dspark.deploy.zookeeper.dir=/spark"
3.启动hive的metastore后台进程
将日志打印到/root/logs/hive目录下,如果目录不存在则先创建
root@master1:~/logs# hive --service metastore >> /root/logs/hive/metastore.log 2>& 1&
因为配置了上面的hive.metastore.uris,所以必须启动hive的service metastore后台进程才可以执行./spark-shell --master spark://master1:7077和./spark-sql --master spark://master1:7077命令。
在$SPARK_HOME/bin下执行 ./spark-shell --master spark://master1:7077命令。
然后依次执行下面的命令
scala> val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
scala> hiveContext.sql("show databases").collect.foreach(println)
scala> hiveContext.sql("use testdb").collect.foreach(println)
scala> hiveContext.sql("show tables").collect.foreach(println)
res5: org.apache.spark.sql.DataFrame = [tableName: string, isTemporary: boolean]
scala> hiveContext.sql("show tables").collect.foreach(println)
[student,false]
[student2,false]
[student3,false]
[student4,false]
[tbsogou,false]
[tmp_pre_hour_seach_info,false]
scala> hiveContext.sql("select d,count(*)cnt from tbsogou group by d ").collect.foreach(println)
当同时用hive和spark sql运行查询时,如果没有资源spark sql会打印下面的语句,一直等待资源释放,获取资源后会执行spark sql进行查询;
先将$SPARK_HOME下面的examples/src/main/resources/中的所有文件都上传到hdfs的/library/examples/src/main/resources/目录中以备后用。
首先要配置好hive,保存元数据到mysql中,参考:http://kevin12.iteye.com/blog/2280777
然后配置Spark SQL,
1.配置hive-site.xml
在master1上的/usr/local/spark/spark-1.6.0-bin-hadoop2.6/conf目录创建hive-site.xml文件,内容如下:
<configuration> <property> <name>hive.metastore.uris</name> <value>thrift://master1:9083</value> <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property> </configuration>
这个配置信息从hive的目录$HIVE_HOME/conf/hive-default.xml.template文件中找到的,默认情况下的value是空值;
2.配置驱动
将$HIVE_HOME/lib/mysql-connector-java-5.1.35-bin.jar 中的mysql驱动拷贝到$SPARK_HOME/lib/下面即可。
注意:
因为之前我spark环境配置了Zookeeper,做HA,现在不在练习HA,将HA的配置去掉。如果不去掉,必须启动Zookeeper集群才可以单独一台节点上启动spark-shell等;
因为我在master1、worker1、worker2上安装了Zookeeper,所以,要将这三台节点上的$SPARK_HOME/conf/spark-env.sh文件中的SPARK_DAEMON_JAVA_OPTS去掉,并且将配置HA是注释的SPARK_MASTER_IP参数的注释去掉;
export SPARK_MASTER_IP=master1
#export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master1:2181,worker1:2181,worker2:2181 -Dspark.deploy.zookeeper.dir=/spark"
3.启动hive的metastore后台进程
将日志打印到/root/logs/hive目录下,如果目录不存在则先创建
root@master1:~/logs# hive --service metastore >> /root/logs/hive/metastore.log 2>& 1&
因为配置了上面的hive.metastore.uris,所以必须启动hive的service metastore后台进程才可以执行./spark-shell --master spark://master1:7077和./spark-sql --master spark://master1:7077命令。
在$SPARK_HOME/bin下执行 ./spark-shell --master spark://master1:7077命令。
然后依次执行下面的命令
scala> val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
scala> hiveContext.sql("show databases").collect.foreach(println)
scala> hiveContext.sql("use testdb").collect.foreach(println)
scala> hiveContext.sql("show tables").collect.foreach(println)
res5: org.apache.spark.sql.DataFrame = [tableName: string, isTemporary: boolean]
scala> hiveContext.sql("show tables").collect.foreach(println)
[student,false]
[student2,false]
[student3,false]
[student4,false]
[tbsogou,false]
[tmp_pre_hour_seach_info,false]
scala> hiveContext.sql("select d,count(*)cnt from tbsogou group by d ").collect.foreach(println)
当同时用hive和spark sql运行查询时,如果没有资源spark sql会打印下面的语句,一直等待资源释放,获取资源后会执行spark sql进行查询;
16/03/25 20:13:04 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 16/03/25 20:13:19 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 16/03/25 20:13:34 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
先将$SPARK_HOME下面的examples/src/main/resources/中的所有文件都上传到hdfs的/library/examples/src/main/resources/目录中以备后用。
Starting Point: SQLContext valsc:SparkContext// An existing SparkContext.valsqlContext=neworg.apache.spark.sql.SQLContext(sc)// this is used to implicitly convert an RDD to a DataFrame.importsqlContext.implicits._ Creating DataFrames valsc:SparkContext// An existing SparkContext.valsqlContext=neworg.apache.spark.sql.SQLContext(sc) valdf=sqlContext.read.json("examples/src/main/resources/people.json")// Displays the content of the DataFrame to stdoutdf.show() DataFrame Operations val sc: SparkContext // An existing SparkContext. val sqlContext = new org.apache.spark.sql.SQLContext(sc) // Create the DataFrame val df = sqlContext.read.json("examples/src/main/resources/people.json") // Show the content of the DataFrame df.show() // age name // null Michael // 30 Andy // 19 Justin // Print the schema in a tree format df.printSchema() // root // |-- age: long (nullable = true) // |-- name: string (nullable = true) // Select only the "name" column df.select("name").show() // name // Michael // Andy // Justin // Select everybody, but increment the age by 1 df.select(df("name"), df("age") + 1).show() // name (age + 1) // Michael null // Andy 31 // Justin 20 // Select people older than 21 df.filter(df("age") > 21).show() // age name // 30 Andy // Count people by age df.groupBy("age").count().show() // age count // null 1 // 19 1 // 30 1
发表评论
-
SparkStreaming pull data from Flume
2016-06-19 17:29 1227Spark Streaming + Flume Integra ... -
Flume push数据到SparkStreaming
2016-06-19 15:16 1938上节http://kevin12.iteye.com/blog ... -
Spark Streaming 统计单词的例
2016-06-19 14:55 3测试Spark Streaming 统计单词的例子 1.准 ... -
Spark Streaming 统计单词的例子
2016-06-19 12:29 3680测试Spark Streaming 统计单词的例子 1.准备 ... -
Spark SQL窗口函数
2016-04-22 07:18 2557窗口函数又叫着窗口分析函数,Spark 1.4版本SparkS ... -
Spark SQL内置函数应用
2016-04-22 07:00 8640简单说明 使用Spark SQL中的内置函数对数据进行 ... -
Spark SQL操作Hive数据库
2016-04-13 22:37 17599本次例子通过scala编程实现Spark SQL操作Hive数 ... -
Hive分析搜索引擎的数据(搜狗实验室数据)
2016-03-13 12:48 1850搜狗实验室:http://www.sogou.com/labs ... -
Hive使用默认数据库derby报错及解决方法
2016-03-05 21:19 3085在使用derby数据库时,遇到了很多错误,报错信息和解决方法如 ... -
Hive1.2.1安装和使用(基于Hadoop2.6.0)
2016-03-05 20:22 8823安装hive,这里使用mysql作为hive的metastor ... -
eclipse开发hadoop环境搭建
2016-02-13 14:54 1387Hadoop2.6.0集群搭建完毕后,下面介绍一下eclips ... -
Spark RDD弹性表现和来源
2016-02-09 20:12 3854hadoop 的MapReduce是基于数 ... -
Spark内核架构
2016-02-07 12:24 10111.在将spark内核架构前,先了解一下Hadoop的MR,H ... -
spark集群HA搭建
2016-01-31 08:50 4520spark集群的HA图: 搭建spark的HA需要安装z ... -
Spark集群中WordCount运行原理
2016-01-31 07:05 2509以数据流动的视角解释一下wordcount运行的原理 pa ... -
eclipse开发spark程序配置在集群上运行
2016-01-27 08:08 9363这篇bolg讲一下,IDE开发的spark程序如何提交到集群上 ... -
eclipse开发spark程序配置本地运行
2016-01-27 07:58 12410今天简单讲一下在local模式下用eclipse开发一个简单的 ... -
spark1.6.0搭建(基于hadoop2.6.0分布式)
2016-01-24 10:11 5973本文是基于hadoop2.6.0的分布式环境搭建spark1. ... -
hadoop2.6.0集群的搭建方法
2016-01-23 22:37 33701.集群环境的安装 1.1工具软件版本说明(软件尽量去官网下载 ... -
Hadoop Shuffle(洗牌)过程
2014-03-25 14:26 1037博客来源:http://www.wnt.c ...
相关推荐
### 基于CDH 6.3.0 搭建 Hive on Spark 及相关配置和调优 #### 概述 随着大数据技术的发展,Hadoop生态系统不断成熟与完善,其中Apache Hive作为数据仓库工具,支持通过SQL语句进行查询、分析存储在Hadoop文件系统...
在本项目实战中,我们将探讨如何使用Java编程语言,结合Spark和Hive,将Hive中的数据高效地导入到ElasticSearch(ES)中,并利用ES的别名机制实现数据更新的平滑过渡。以下是对这个流程的详细解析: 1. **Hive数据...
Spark SQL是Spark的一个模块,它扩展了Spark的功能,允许用户直接使用SQL来交互式地查询和操作数据集。Spark SQL还支持多种数据源,包括HDFS、Cassandra和HBase等。 4. Presto与Impala: Presto和Impala是两种高...
针对Spark的学习,可以参加一系列的实战课程,例如"决战大数据‘Spark纯实战’公益大讲坛",涵盖了Spark集群部署、编程模型、内核运行、SQL、Hive on Spark、Streaming、GraphX、SparkR、Tachyon、运维与调优等多个...
- **企业级优化**:包括分区、桶、优化查询(如 Join 优化、Subquery 优化等)、Hive on Spark 提升性能。 - **实战项目**:Hive 常用于广告点击率分析、用户行为分析、日志处理等大数据场景。 - **常见错误及解决...
总结来说,Hive教程涵盖了Hive的基础知识和实战技能,从安装配置到实际操作,再到高级特性和接口使用,为学习者提供了全面的学习路径。通过这个教程,你不仅可以理解Hive的工作原理,还能掌握实际操作Hive的技能,...
9. **Spark SQL**:Spark SQL提供了SQL接口和DataFrame API,允许用户在Spark上执行结构化查询,并与Hive、HDFS等数据源无缝集成。 10. **Spark Streaming**:Spark Streaming处理实时数据流,通过微批处理模拟流...
2. Spark on AWS:Amazon Elastic MapReduce (EMR) 提供了预配置的Spark集群,用户可以通过AWS管理控制台或CLI轻松创建和管理。 3. Spark on Azure:Azure HDInsight 提供托管的Spark服务,与Azure其他服务深度集成...
11.分布式SQL引擎(spakr-sql和Spark ThriftServer) 12.Catalyst 优化器 第四章、离线综合实战 1.综合实战概述(需求、调研、业务) 2.环境搭建(大数据环境和应用开发环境) 3.项目初始化(工具类和属性文件) 4....
《Hudi-0.9.0在Windows上的IDFEA集成Spark3.0与Flink-1.12.x实战指南》 Hudi(Hadoop Upsert Delta Tables)是一款开源的、面向大数据处理的实时更新工具,它允许对HDFS上的数据进行插入、更新和删除操作,提供了一...
- **Hive on Tez与Hive on Spark**:优化查询执行引擎,提升性能。 9. **大数据实战** - **数据清洗**:在Hive中处理缺失值、异常值和重复值。 - **数据分析**:使用SQL进行大数据的统计分析,如聚类、关联规则...
Hive是一个建立在Hadoop之上的数据仓库工具,它提供了SQL-like查询语言HiveQL。Hive的安装步骤包括: 1. **获取安装包**:下载Hive安装包,如`apache-hive-1.2.1-bin.tar.gz`。 2. **解压安装包**:将安装包解压到...
1. Spark SQL:提供SQL查询和DataFrame/Dataset API,适用于结构化数据处理。 2. Spark Streaming:处理连续数据流,实现实时计算。 3. MLlib:Spark的机器学习库,包含各种算法和工具。 4. GraphX:处理图数据,...
它可能涵盖Spark的基本概念,如RDD(弹性分布式数据集)、Spark SQL、Spark Streaming以及Spark MLlib机器学习库的使用。读者可能能从中了解到如何从零开始搭建Spark环境,执行批处理和实时流处理任务,并掌握Spark...
- Hive 的安装配置与使用方法。 - Pig 语法及数据分析流程。 - 使用SQL进行大数据集的查询与分析。 3. **数据深入分析的机器学习与图形计算:** - Mahout 和 Spark MLlib 的基本概念及其应用场景。 - 图形计算...
- **数据分析**:使用SQL-on-Hadoop引擎(如Impala、Hive)或数据可视化工具(如Tableau)进行查询和分析。 - **数据安全**:确保数据的隐私和安全性,采用加密、访问控制和审计策略。 在商业环境中,大数据已广泛...
4. 数据计算与查询:SQL-on-Hadoop解决方案如Presto、Hive、Impala等,使得在大数据环境中进行SQL查询成为可能。这些工具的使用场景、性能对比和优化技巧将在书中得到详细解释。 5. 流处理:随着实时数据处理需求的...
在实际的数据仓库项目中,可能会使用Hadoop、Spark等大数据处理框架进行数据预处理,用SQL Server、Oracle、Hive等作为数据仓库存储,使用Python或Java进行ETL编写,最后利用BI工具进行数据展现。这个“数据仓库项目...