Spark SQL1.2与HDP2.2结合

1.hbase相同的rowkey里存在多条记录问题的调研解决方案

VERSIONS => 3,Hbase version 最多插入三条记录

将一个集群hbase中表 "VerticalDataTable" 数据插入另一张表时遇到问题,本来有十几个版本,但是只插入了3个版本(还是可以插入成功)

搜索后发现是因为在建表的时候,VERSIONS => 3默认为3, VERSIONS是跟columnfamily相关的所以需要修改表的VERSIONS 属性

alter table {NAME => ‘columnfamily‘, VERSIONS => ‘300‘}

用处:如果将VERSIONS => 1则只插入一个版本,这样就可以避免在相同的rowkey的情况下,有重复的记录

但平时我们做scan查询时:

HBASE中TIMERANGE和VERSION的使用

hbase(main):079:0> create ‘scores‘,{NAME=>‘course‘,VERSIONS=>2}
//版本为2
hbase(main):080:0> put ‘scores‘,‘Tom‘,‘course:math‘,‘97‘
hbase(main):082:0> put ‘scores‘,‘Tom‘,‘course:math‘,‘100‘
hbase(main):026:0> scan ‘scores‘
ROW COLUMN+CELL
Tom column=course:math, timestamp=1394097651029, value=100
1 row(s) in 0.0110 seconds
//HBASE默认scan出来的结果是最后一条时间戳的记录
hbase(main):032:0> scan ‘scores‘,{VERSIONS=>2}
ROW COLUMN+CELL
Tom column=course:math, timestamp=1394097651029, value=100
Tom column=course:math, timestamp=1394097631387, value=97
1 row(s) in 0.0130 seconds
//查出两条记录
hbase(main):029:0> alter ‘member‘,{NAME=>‘info‘,‘VERSIONS‘=>2}
//修改versions

2.hive表内去重数据解决方案

insert overwrite table store
  select t.p_key,t.sort_word from
    ( select p_key,
           sort_word ,
           row_number()over(distribute by p_key sort by sort_word) as rn
     from store) t
     where t.rn=1;

Hive上一个典型表内除重的写法, p_key为除重依据, sort_word 为排序依据,一般为时间   rn为排名。

2.关于用SparkSQL历史数据(DBMS)和大数据平台多数据源同时抽取的调研解决方案

Spark Submit 2014上,Databricks宣布放弃Shark 的开发,而转投Spark SQL,理由是Shark继承了Hive太多,优化出现了瓶颈

2015年3月13日 Databricks发布版本1.3.0, 此次版本发布的最大亮点是新引入的DataFrame API 参考这里 这里

目前HDP有支持Spark 1.2.0(Spark SQL在版本1.1.0中产生)

Apache Spark 1.2.0 on YARN with HDP 2.2 例子程序在此

HDP2.2支持Spark1.2.0,等待测试特性,特别是Spark SQL,要提前了解当前版本的bug

数据源支持:

External data source API在支持了多种如JSON、Avro、CSV等简单格式的同时,还实现了Parquet、ORC等的智能支持;同时,通过这个API,开发者还可以使用JDBC将HBase这样的外部系统对接到Spark中。可以将外部数据来源作为临时表挂在的文件系统之中,减少了全部加载数据过来的种种纠结

保存结果:

统一的load/save API

在Spark 1.2.0中,要想将SchemaRDD中的结果保存下来,便捷的选择并不多。常用的一些包括:

  • rdd.saveAsParquetFile(...)
  • rdd.saveAsTextFile(...)
  • rdd.toJSON.saveAsTextFile(...)
  • rdd.saveAsTable(...)

Spark SQL中缓存表一定要用cacheTable(“tableName”)这种形式,否则无法享受到列式存储带来的一系列好处

Using the JDBC data source and the JSON data source to join two tables together to find the traffic log fot the most recently registered users.

先测试HDP最大支持Spark多大版本,再测试其抽取的整合方式,再测试其性能。

时间: 2024-12-22 20:40:55

Spark SQL1.2与HDP2.2结合的相关文章

Spark SQL1.2测试

Spark SQL 1.2 背景:了解到HDP也能够支持Spark SQL,但官方文档是版本1.2,希望支持传统数据库.hadoop平台.文本格式的整合处理 虚线表示还未实现.支持从现有Apache Hive表以及流行的Parquet列式存储格式中读取数据,数据源API通过Spark SQL提供了访问结构化数据的可插拔机制(接口需要自己实现,后面附有).数据源 API可以作为Spark平台的统一数据接入.数据源API的另外一个优点就是不管数据的来源如何,用户都能够通过Spark支持的所有语言来操

Spark SQL1.2 和Spark SQL1.3的测试

Spark1.2 1. 文本导入 创建RDD的形式,测试txt文本 master=spark://master:7077 ./bin/spark-shell scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc) sqlContext: org.apache.spark.sql.SQLContext = [email protected] scala> import sqlContext.createSchemaRDD i

Spark SQL1.3测试

Spark SQL 1.3 参考官方文档:Spark SQL and DataFrame Guide 概览介绍参考:平易近人.兼容并蓄——Spark SQL 1.3.0概览 DataFrame提供了一条联结所有主流数据源并自动转化为可并行处理格式的渠道,通过它Spark能取悦大数据生态链上的所有玩家,无论是善用R的数据科学家,惯用SQL的商业分析师,还是在意效率和实时性的统计工程师. 以一个常见的场景 -- 日志解析为例,有时我们需要用到一些额外的结构化数据(比如做IP和地址的映射),通常这样的

Spark(四): Spark-sql 读hbase

SparkSQL是指整合了Hive的spark-sql cli, 本质上就是通过Hive访问HBase表,具体就是通过hive-hbase-handler, 具体配置参见:Hive(五):hive与hbase整合 目录: SparkSql 访问 hbase配置 测试验证 SparkSql 访问 hbase配置:  拷贝HBase的相关jar包到Spark节点上的$SPARK_HOME/lib目录下,清单如下: guava-14.0.1.jar htrace-core-3.1.0-incubati

Spark 伪分布式 & 全分布式 安装指南

0.前言 3月31日是 Spark 五周年纪念日,从第一个公开发布的版本开始,Spark走过了不平凡的5年:从刚开始的默默无闻,到13年的鹊起,14年的大爆发.Spark核心之上有分布式的机器学习,SQL,streaming和图计算库. 4月1日 spark 官方正式宣布 Spark 2.0 对Spark重构,更好支持手机等移动终端.Databricks创始人之一hashjoin透漏了相关的重构方法:利用Scala.js项目把Spark代码编译成JavaScript,然后利用Safari / C

Spark 1.0.0 横空出世 Spark on yarn 部署(hadoop 2.4)

就在昨天,北京时间5月30日20点多.Spark 1.0.0终于发布了:Spark 1.0.0 released 根据官网描述,Spark 1.0.0支持SQL编写:Spark SQL Programming Guide 个人觉得这个功能对Hive的市场的影响很小,但对Shark冲击很大,就像win7和winXP的关系,自相残杀嘛? 这么着急的发布1.x 版是商业行为还是货真价实的体现,让我们拭目以待吧~~~~ 本文是CSDN-撸大湿原创,如要转载请注明出处,谢谢:http://blog.csd

强者联盟——Python语言结合Spark框架

引言:Spark由AMPLab实验室开发,其本质是基于内存的高速迭代框架,"迭代"是机器学习最大的特点,因此很适合做机器学习. 得益于在数据科学中强大的表现,Python语言的粉丝遍布天下,现在又遇上强大的分布式内存计算框架Spark,两个领域的强者走到一起,自然能碰出更加强大的火花(Spark能够翻译为火花).因此本文主要讲述了PySpark. 本文选自<全栈数据之门>. 全栈框架 Spark由AMPLab实验室开发,其本质是基于内存的高速迭代框架,"迭代&qu

HDP安装(五):HDP2.4.2安装

HDP(Hortonworks Data Platform)是hortworks推出的100%开源的hadoop发行版本,以YARN 作为其架构中心,包含pig.hive.phoniex.hbase.storm.spark等大量组件,在最新的2.4版本,监控UI实现与grafana集成. 安装过程: 集群规划 软件包下载:  (HDP2.4的安装包过大,推荐离线安装) HDP安装部署 集群规划: 192.168.2.89   hdp1     (ambari) 192.168.2.2     h

Spark 1.0.0 部署Hadoop 2.2.0上

源码编译 我的测试环境: 系统:Centos 6.4 - 64位 Java:1.7.45 Scala:2.10.4 Hadoop:2.2.0 Spark 1.0.0 源码地址:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0.tgz 解压源码,在根去根目录下执行以下命令(sbt编译我没尝试) ./make-distribution.sh --hadoop 2.2.0 --with-yarn --tgz --with-hive 几个重要参数 --ha