- 浏览: 2183823 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
基础依赖环境
Apache Hadoop2.7.1
Apache Spark1.6.0
Apache Hive1.2.1
Apache Hbase0.98.12
(1)提前安装好scala的版本,我这里是2.11.7
(2)下载spark-1.6.0源码,解压进入根目录编译
(3)dev/change-scala-version.sh 2.11
修改pom文件,修改对应的hadoop,hbase,hive的版本
执行编译支持hive功能的spark
(4)mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.7.1 -Dscala-2.11 -DskipTests clean package
三种测试方式:
bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://h1:7077 examples/target/spark-examples_2.11-1.6.0.jar 100 bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster examples/target/spark-examples_2.11-1.6.0.jar 10 bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client examples/target/spark-examples_2.11-1.6.0.jar 10
(一):命令行Spark SQL接口调试
编译成功后,将提前安装好的hive/conf/hive-site.xml拷贝到spark的conf/目录下,
执行,spark-sql的启动命令,同时使用--jars 标签把mysql驱动包,hadoop支持的压缩包,以及通过hive读取hbase相关的jar包加入进来,启动
bin/spark-sql --jars lib/mysql-connector-java-5.1.31.jar, lib/hadoop-lzo-0.4.20-SNAPSHOT.jar, /ROOT/server/hive/lib/hive-hbase-handler-1.2.1.jar, /ROOT/server/hbase/lib/hbase-client-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-common-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-server-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-hadoop2-compat-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/guava-12.0.1.jar, /ROOT/server/hbase/lib/hbase-protocol-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/htrace-core-2.04.jar
(二):Intellj IDEA15.0里面代码调试:
sbt的依赖:
//下面不需要使用的依赖,大家可根据情况去舍 name := "scala-spark" version := "1.0" scalaVersion := "2.11.7" //使用公司的私服,去掉此行则使用默认私服 resolvers += "Local Maven Repository" at "http://xxxx:8080/nexus/content/groups/public/" //使用内部仓储 externalResolvers := Resolver.withDefaultResolvers(resolvers.value, mavenCentral = false) //Hadoop的依赖 libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.7.1" //% "provided" //Habse的依赖 libraryDependencies += "org.apache.hbase" % "hbase-client" % "0.98.12-hadoop2" // % "provided" libraryDependencies += "org.apache.hbase" % "hbase-common" % "0.98.12-hadoop2" //% "provided" libraryDependencies += "org.apache.hbase" % "hbase-server" % "0.98.12-hadoop2" //% "provided" //Spark的依赖 libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.6.0" //% "provided" //Spark SQL 依赖 libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "1.6.0" //% "provided" //Spark For Hive 依赖 libraryDependencies += "org.apache.spark" % "spark-hive_2.11" % "1.6.0" //java servlet 依赖 libraryDependencies += "javax.servlet" % "javax.servlet-api" % "3.0.1" //% "provided"
scala主体代码
def main(args: Array[String]) { //设置用户名 System.setProperty("user.name", "username"); System.setProperty("HADOOP_USER_NAME", "username"); //此处不需要设置master,方便到集群上,能测试yarn-client , yarn-cluster,spark 各种模式 val sc=new SparkConf().setAppName("spark sql hive"); val sct=new SparkContext(sc); //得到hive上下文 val hive = new org.apache.spark.sql.hive.HiveContext(sct); //执行sql,并打印输入信息 hive.sql("show tables ").collect().foreach(println); //关闭资源 sct.stop(); }
写好代码,在win上运行,有bug,/tmp/hive没有执行权限https://issues.apache.org/jira/browse/SPARK-10528
所以建议还是拿到linux上执行,而且win上只能调standalone模式,不能调yarn-cluster和yarn-client模式。
记住一个血的bug,在代码里的SparkConf()一定不要setMaster("")的值,否则你粗心了,在集群上执行各种模式时候会
出现莫名其妙的bug
//写代码方式,查询
//yarn集群模式 bin/spark-submit --class com.tools.hive.SparkHive --master yarn-cluster --files conf/hive-site.xml --jars lib/datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar scala-spark_2.11-1.0.jar //这是主体的jar,不用跟--jars放在一起,否则会有问题 //yarn客户端模式 bin/spark-submit --class com.tools.hive.SparkHive --master yarn-client --files conf/hive-site.xml --jars lib/datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar scala-spark_2.11-1.0.jar //这是主体的jar,不用跟--jars放在一起,否则会有问题 //spark alone模式 bin/spark-submit --class com.tools.hive.SparkHive --master spark://h1:7077 --files conf/hive-site.xml --jars lib/datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar scala-spark_2.11-1.0.jar //这是主体的jar,不用跟--jars放在一起,否则会有问题
以Spark SQL 方式查询,不一定非得让你写代码,这就是sql的魅力,spark sql也能使用sql通过hive的元数据,查询hdfs数据或者hbase表等
//yarn-cluster集群模式不支持spark sql
Error: Cluster deploy mode is not applicable to Spark SQL shell.
//yarn客户端模式 bin/spark-sql --master yarn-client --files conf/hive-site.xml --jars lib/datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar -e "select name , count(1) as c from info group by name order by c desc ;" //spark alone模式 bin/spark-sql --master spark://h1:7077 --files conf/hive-site.xml --jars lib/datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar -e "select name , count(1) as c from info group by name order by c desc ;"
Spark SQL + Hive + Hbase方式集成
//yarn客户端模式 bin/spark-sql --master yarn-client --files conf/hive-site.xml --jars lib/ datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar, lib/hadoop-lzo-0.4.20-SNAPSHOT.jar, /ROOT/server/hive/lib/hive-hbase-handler-1.2.1.jar, /ROOT/server/hbase/lib/hbase-client-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-common-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-server-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-hadoop2-compat-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/guava-12.0.1.jar, /ROOT/server/hbase/lib/hbase-protocol-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/htrace-core-2.04.jar -e "select * from dong limit 2 ;" //spark alone模式 bin/spark-sql --master spark://h1:7077 --files conf/hive-site.xml --jars lib/ datanucleus-api-jdo-3.2.6.jar, lib/datanucleus-rdbms-3.2.9.jar, lib/datanucleus-core-3.2.10.jar, lib/mysql-connector-java-5.1.31.jar, lib/hadoop-lzo-0.4.20-SNAPSHOT.jar, /ROOT/server/hive/lib/hive-hbase-handler-1.2.1.jar, /ROOT/server/hbase/lib/hbase-client-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-common-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-server-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/hbase-hadoop2-compat-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/guava-12.0.1.jar, /ROOT/server/hbase/lib/hbase-protocol-0.98.12-hadoop2.jar, /ROOT/server/hbase/lib/htrace-core-2.04.jar -e "select count(*) from dong ;"
总结:
使用某个spark命令提交任务时,如果对参数比较模糊,可以使用
bin/spark-xxx -h命令查看,参数介绍
另外spark 整合 hive关联hbase的时候或者spark整合hive 的时候,会出现很多问题,最常见的就是 :
(1)mysql驱动包找不到
(2)datanucleus相关的类找不到
(3)运行成功,而没有结果
(4).....
Spark SQL整合Hive时,一定要把相关的jar包和hive-site.xml文件,提交到 集群上,否则会出现各种莫名其妙的小问题,
经过在网上查资料,大多数的解决办法在Spark的spark-env.sh里面设置类路径,经测试没有生效,所以,还是通过--jars 这个参数来提交依赖的jar包比较靠谱。
参考链接:
winuitls.exe下载地址,如果再win上想远程连接spark alone集群提交任务,可能要用到:
http://teknosrc.com/spark-error-java-io-ioexception-could-not-locate-executable-null-bin-winutils-exe-hadoop-binaries/
http://zengzhaozheng.blog.51cto.com/8219051/1597902
有什么问题 可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园
评论
5 楼
qindongliang1922
2016-01-22
DARKER_ye 写道
4 楼
qindongliang1922
2016-01-22
www.myydan.cn 写道
3 楼
DARKER_ye
2016-01-22
2 楼
www.myydan.cn
2016-01-22
1 楼
www.myydan.cn
2016-01-22
发表评论
-
关于Hbase多版本存储的一个注意点
2018-04-19 11:39 1649我们知道hbase是一个多版本的管理系统,在0.96的版本之前 ... -
Scala里面的排序函数的使用
2018-01-09 20:20 2645排序方法在实际的应用场景中非常常见,Scala里面有三种排序 ... -
在Scala里面如何使用元组
2018-01-08 22:05 916元组在Scala语言中是一 ... -
Spark如何读取一些大数据集到本地机器上
2018-01-04 21:07 1680最近在使用spark处理分 ... -
使用Spark SQL的临时表解决一个小问题
2017-12-28 18:27 2453最近在使用spark处理一个业务场景时,遇到一个小问题,我在 ... -
Spark任务两个小问题笔记
2017-12-26 19:52 1649今天在用spark处理数据 ... -
Spark中foreachPartition和mapPartitions的区别
2017-12-25 21:19 3324spark的运算操作有两种类型:分别是Transformat ... -
Spark Streaming优雅的关闭策略优化
2017-12-07 19:26 4149前面文章介绍了不少有关Spark Streaming的off ... -
kafka版本不一致导致的一个小问题(二)
2017-12-04 21:37 8565背景介绍: 我们公司的实时流项目现在用的spark stre ... -
谈谈如何优雅的关闭正在运行中的Spark Streaming的流程序
2017-11-30 19:20 2302前面的文章,已经简 ... -
如何管理Spark Streaming消费Kafka的偏移量(三)
2017-11-28 23:41 5212前面的文章已经介绍了在spark streaming集成kaf ... -
理解Spark的运行机制
2017-11-23 21:52 1246Spark生态系统目前已经非常成熟了,有很多类型的任务都可以使 ... -
如何管理Spark Streaming消费Kafka的偏移量(二)
2017-11-16 19:30 4733上篇文章,讨论了在spar ... -
如何管理Spark Streaming消费Kafka的偏移量(一)
2017-11-14 20:42 4079最近工作有点忙,所以更新文章频率低了点,在这里给大家说声抱 ... -
在scala中使用spark sql解决特定需求(2)
2017-07-21 16:00 2282接着上篇文章,本篇来 ... -
在scala中使用spark sql解决特定需求
2017-07-20 19:53 1030spark sql一个强大之处就 ... -
理解数据仓库中星型模型和雪花模型
2017-07-06 17:29 4403在数据仓库的建设中, ... -
Spark如何在一个SparkContext中提交多个任务
2017-07-04 19:09 6756在使用spark处理数据的时候,大多数都是提交一个job执行, ... -
Spark如何读取Hbase特定查询的数据
2017-06-29 21:42 4446最近工作需要使用到Spark操作Hbase,上篇文章已经写 ... -
如何使用scala+spark读写hbase?
2017-06-12 19:48 3446最近工作有点忙,所以文章更新频率低了点,希望大家可以谅解,好 ...
相关推荐
在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
Hadoop+Hbase+Spark+Hive搭建指南 Hadoop是Apache开源的大数据处理框架,它提供了可靠的高效的数据存储和处理能力。Hbase是基于Hadoop的分布式NoSQL数据库,提供了高效的数据存储和检索能力。Spark是基于内存的数据...
在这个项目中,Spark可以与Hive集成,利用Spark SQL执行复杂的查询和分析,同时利用其内存计算能力提高处理速度。Spark也可以用于执行数据挖掘、特征工程和模型训练,帮助工厂管理层洞察生产效率、产品质量等关键...
基于Flink+ClickHouse构建的分析平台,涉及 Flink1.9.0 、ClickHouse、Hadoop、Hbase、Kafka、Hive、Jmeter、Docker 、HDFS、MapReduce 、Zookeeper 等技术
Spark SQL Spark Streaming 五、Flink 核心概念综述 开发环境搭建 Data Source Data Transformation Data Sink 窗口模型 状态管理与检查点机制 Standalone 集群部署 六、HBase 简介 系统架构及数据结构 基本环境搭建...
在构建大数据处理环境时,Hadoop、HBase、Spark和Hive是四个核心组件,它们协同工作以实现高效的数据存储、处理和分析。本教程将详细介绍如何在Ubuntu系统上搭建这些组件的集群。 1. **Hadoop**:Hadoop是Apache...
通过这些例子,你可以学习如何创建数据处理项目,如何在Spark中运行SQL查询,以及如何在Hive中创建表和执行数据分析任务。 总之,Eclipse集成Hadoop、Spark和Hive提供了一个高效的数据开发环境,让你能够利用大数据...
hadoop+spark+hive Linux centos大数据集群搭建,简单易懂,从0到1搭建大数据集群
毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现 1. Hadoop+Hive构建数据仓库 2. django+echarts网站开发 3. 数据清洗,数据模型构建 毕业设计,采用Hadoop+...
apache-hive-3.1.3-bin.tar.gz apache-zookeeper-3.5.10-bin.tar.gz hadoop-3.3.3.tar.gz spark-3.2.1-bin-hadoop3.2.tgz mysql-8.0.29-1.el8.x86_64.rpm-bundle
毕业设计,基于Hadoop+Spark+Hive+Sqoo开发的奥运会奖牌变化大数据分析,内含Java完整源代码,数据库脚本 基于Hadoop/Spark奥运会奖牌变化大数据分析实现 开发技术:Hadoop + Spark + Hive + Sqoop + Flask + ...
4. **执行Spark SQL操作**:当Spark SQL通过Hive接口执行DML(Data Manipulation Language)或DDL(Data Definition Language)操作时,Hive Hook会捕获这些操作的元数据变更。 5. **血缘信息收集和存储**:捕获的...
Hive提供了jdbc驱动,使得我们可以用Java代码来连接Hive并进行一些类关系型数据库的sql语句查询等操作。同关系型数据库一样,我们也需要将Hive的服务打开;在Hive 0.11.0版本之前,只有HiveServer服务可用,你得在...
集群搭建步骤详解。
apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 :sudo mkdir -p /export/server 创建好目录后要改变该目录的属主和属组 :sudo chown -R ljr:ljr /export 修改目录权限:sudo +771 -R /...
spark+hive+mysql+python+django+爬虫的基于大数据的酒店数据分析系统,可完美运行 spark+hive+mysql+python+django+爬虫的基于大数据的酒店数据分析系统,可完美运行 spark+hive+mysql+python+django+爬虫的基于...
在Windows 10环境下搭建Hadoop生态系统,包括JDK、MySQL、Hadoop、Scala、Hive和Spark等组件,是一项繁琐但重要的任务,这将为你提供一个基础的大数据处理平台。下面将详细介绍每个组件的安装与配置过程。 **1. JDK...
毕业设计 基于Hadoop+Hive+Kafka+Spark+ElasticSearch+Canal大数据酒店预订平台设计与实现源码+详细文档+全部数据资料 高分项目.zip毕业设计 基于Hadoop+Hive+Kafka+Spark+ElasticSearch+Canal大数据酒店预订平台...
在标题"spark-hive-2.11和spark-sql-以及spark-hadoop包另付下载地址"中,我们关注的是Spark与Hive的特定版本(2.11)的集成,以及Spark SQL和Spark对Hadoop的支持。这里的2.11可能指的是Scala的版本,因为Spark是用...
apache-hive-3.1.3-bin.tar.gz apache-zookeeper-3.5.10-bin.tar.gz hadoop-3.3.3.tar.gz spark-3.2.1-bin-hadoop3.2.tgz mysql-8.0.29-1.el8.x86_64.rpm-bundle