- 浏览: 230564 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 1192Spark Streaming + Flume Integra ... -
Flume push数据到SparkStreaming
2016-06-19 15:16 1890上节http://kevin12.iteye.com/blog ... -
Spark Streaming 统计单词的例
2016-06-19 14:55 3测试Spark Streaming 统计单词的例子 1.准 ... -
Spark Streaming 统计单词的例子
2016-06-19 12:29 3631测试Spark Streaming 统计单词的例子 1.准备 ... -
Spark SQL窗口函数
2016-04-22 07:18 2507窗口函数又叫着窗口分析函数,Spark 1.4版本SparkS ... -
Spark SQL内置函数应用
2016-04-22 07:00 8567简单说明 使用Spark SQL中的内置函数对数据进行 ... -
Spark SQL操作Hive数据库
2016-04-13 22:37 17539本次例子通过scala编程实现Spark SQL操作Hive数 ... -
Hive分析搜索引擎的数据(搜狗实验室数据)
2016-03-13 12:48 1671搜狗实验室:http://www.sogou.com/labs ... -
Hive使用默认数据库derby报错及解决方法
2016-03-05 21:19 2982在使用derby数据库时,遇到了很多错误,报错信息和解决方法如 ... -
Hive1.2.1安装和使用(基于Hadoop2.6.0)
2016-03-05 20:22 8742安装hive,这里使用mysql作为hive的metastor ... -
eclipse开发hadoop环境搭建
2016-02-13 14:54 1349Hadoop2.6.0集群搭建完毕后,下面介绍一下eclips ... -
Spark RDD弹性表现和来源
2016-02-09 20:12 3817hadoop 的MapReduce是基于数 ... -
Spark内核架构
2016-02-07 12:24 9751.在将spark内核架构前,先了解一下Hadoop的MR,H ... -
spark集群HA搭建
2016-01-31 08:50 4441spark集群的HA图: 搭建spark的HA需要安装z ... -
Spark集群中WordCount运行原理
2016-01-31 07:05 2474以数据流动的视角解释一下wordcount运行的原理 pa ... -
eclipse开发spark程序配置在集群上运行
2016-01-27 08:08 9290这篇bolg讲一下,IDE开发的spark程序如何提交到集群上 ... -
eclipse开发spark程序配置本地运行
2016-01-27 07:58 12305今天简单讲一下在local模式下用eclipse开发一个简单的 ... -
spark1.6.0搭建(基于hadoop2.6.0分布式)
2016-01-24 10:11 5922本文是基于hadoop2.6.0的分布式环境搭建spark1. ... -
hadoop2.6.0集群的搭建方法
2016-01-23 22:37 33061.集群环境的安装 1.1工具软件版本说明(软件尽量去官网下载 ... -
Hadoop Shuffle(洗牌)过程
2014-03-25 14:26 995博客来源:http://www.wnt.c ...
相关推荐
spark下安装hive标准配置文档。Ubuntu安装hive,并配置mysql作为元数据库时候需要的标准hive-site.xml配置文件,可以根据这个文件联系我的博文内容就行修改,避免入坑。实现快捷启动hive。
CDH6针对hive on spark的调优文档,这个是生产的实战经验
项目实战:Java一站式解决Hive内用Spark取数,新建ES索引,灌入数据,并且采用ES别名机制,实现ES数据更新的无缝更新,底层采用Spark计算框架,数据较快。
使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...
spark-hive_2.11-2.3.0 spark-hive-thriftserver_2.11-2.3.0.jar log4j-2.15.0.jar slf4j-api-1.7.7.jar slf4j-log4j12-1.7.25.jar curator-client-2.4.0.jar curator-framework-2.4.0.jar curator-recipes-2.4.0....
hive-on-spark客户端
Hive on Spark源码分析,实际场景中会遇到需求:将Hive默认的执行引擎MapReduce换成Spark或者Tez。
这是每个学习spark必备的jar包,是根据我的个人试验后所得,官网正版,在spark官网下载。 资源包里不仅有需要的jar包,并且给不会再官网上下载的新手官方网址,可以自由下载资源
补丁文件包,依赖包,hive3.1.2-spark3.0.0和hive3.1.3-spark3.1.3二进制包已经全部放进该压缩
兼容spark3.0.0的hive包
Hive on Spark EXPLAIN statement : 讲述了 Common Join / Map join / Bucket Map Join / Sorted Merge Bucket Map Join / skew join 在explain 中的 树结构 。In Hive, command EXPLAIN can be used to show the ...
大数据笔记,包含Hadoop、Spark、Flink、Hive、Kafka、Flume、ZK...... 大数据笔记,包含Hadoop、Spark、Flink、Hive、Kafka、Flume、ZK...... 大数据笔记,包含Hadoop、Spark、Flink、Hive、Kafka、Flume、ZK.......
Spark 入门实战系列,适合初学者,文档包括十部分内容,质量很好,为了感谢文档作者,也为了帮助更多的人入门,传播作者的心血,特此友情转贴: 1.Spark及其生态圈简介.pdf 2.Spark编译与部署(上)--基础环境搭建....
hive on spark要求spark中不包含hive的jar包,必须重新编译,历尽艰辛终于搞好了,适配hive2.3、hadoop2.7.6环境。
// 具有子查询的sql String hql = "select id,name from (select id from table_1 where id={p0}) t1 inner join (select name --this is name\n from table_2) t2"; // 获取id字段的血缘 LineageNode idNode = ...
通用load/write方法 手动指定选项 Spark SQL的DataFrame接口支持多种数据源的操作。...修改配置项spark.sql.sources.default,可修改默认数据源格式。 scala> val df = spark.read.load(hdfs://hadoop001:9000/nam
spark-hive-thriftserver_2.11-2.1.spark-hive-thrift
最近工作中遇到将达梦抽取sql迁移到数仓进行计算的的时候发现sql和hivesql语法上有些许区别,只能去解决了不得不学习hivesql,通过实践总结出来了一些改造过程中的注意事项和两类sql的区别,省去大家学习踩坑过程,...
Hive_Sql语法详述,平时工作中遇到的问题,用于Hadoop平台的数据挖掘。
Hive入门与实战 PDF