
Spark/hive/hbase/hadoop
文章平均质量分 85
大愚若智_
.
展开
-
Hadoop高可用(HA)方案总结
一 、Hadoop1.0时期的NameNode及Secondary NameNode在早期的hadoop时代,hdfs集群存在严重的单点问题,即集群只有一个NameNode节点,尽管有SecondaryNameNode,CheckPointNode,BackupNode这些机制来对单点的问题做一定的防反,但单点问题是依然存在的。在主NameNode挂掉之后,集群的管理不能自动的切换到另外一个N...原创 2020-04-24 10:11:36 · 1042 阅读 · 0 评论 -
hive自定义函数开发与部署
在利用Hive或者Spark-sql进行数据分析任务时,经常会遇到一些Mysql等传统数据库中有的函数而hive中没有,或者需要自己定义一些复杂的字符串处理、复杂计算计算逻辑的时候,找不到可以用的Hive函数时。尽管可以编写一些map-reduce等程序来向集群提交任务,但毕竟不如操作SQL来爽快。为此,hive和Spark-sql都提供了一些接口类,我们基本这些接口类可以定义自己的Hive函数,...原创 2020-04-20 15:38:37 · 822 阅读 · 0 评论 -
用户标签Http接口性能调优
项目背景:用户画像库有10+亿级别用户的用户画像数据,存储库为Hbase rowkey设计为用户ID的Hash值并经过域分区设计 使得记录基本能分布在各个region上,满足前端根据用户ID查询用户画像数据的需求、同时避免Hbase 在读写时出现热点region。问题: 前端APP的访问需求是并发500、峰值TPS达到30000TPS、响应时间50ms内。这对一个普通的应用而言并不难,在数据...原创 2020-04-03 11:23:16 · 411 阅读 · 0 评论 -
hbase写ES丢数据参数调优总结
通过ES对百亿级hbase数据构建索引,在读取Hbase至写入hbase过程中,发现有写入缓慢及数据丢失的现象,经过本人排查、调优后的一些经验总结如下,方便遇到相关问题的同学参考:hbase写ES丢数据总结1、ES连接池打满 新的ES写入线程获取连接时会失败,旧的连接在提交Bulk时可能出错 DO: 1、增加重试及休眠时间随重试次数延长 2、减少并发打开ES连接的线程...原创 2020-04-03 11:15:43 · 969 阅读 · 0 评论 -
spark.mllib源码阅读-回归算法1-LinearRegression
Spark实现了三类线性回归方法:1、LinearRegression:普通线性回归模型2、LassoRegression:加L1正则化的线性回归3、RidgeRegression:加L1正则化的线性回归Spark采用了模型和训练分离定义的方式,模型和模型的迭代计算都很清晰:如LinearRegressionModel和LinearRegressionWithSGD,LassoModel和Lass原创 2017-03-23 10:25:33 · 2677 阅读 · 0 评论 -
spark.mllib源码阅读-分类算法3-SVM
Spark2.1版本目前只实现了linear SVM(即线性支持向量机),非线性SVM及核技巧目前还没有实现。因此本篇主要介绍的是Spark中的线性SVM及参数求解。SVM的理论及推导可以参考支持向量机通俗导论(理解SVM的三层境界)由于Spark实现的是线性SVM,在此,我将简单介绍一下线性分类器与线性可分、线性SVM、线性不可分下的线性SVM等基本概念与原理,最后再结合Spark介绍以下线性S原创 2017-03-31 13:35:01 · 3548 阅读 · 0 评论 -
spark.mllib源码阅读-回归算法2-IsotonicRegression
IsotonicRegression是Spark1.3版本引入的一个带约束的回归模型。IsotonicRegression又称保序回归,保序回归确保拟合得到一个非递减逼近函数的条件下 最小化均方误差,相关的介绍可以阅读http://fa.bianp.net/blog/2013/isotonic-regression/,借用该文的一篇图来说明一下图中横轴为序号,纵轴y为输入数据,假设x为要拟合的数据原创 2017-03-24 13:22:53 · 2718 阅读 · 0 评论 -
spark.mllib源码阅读-分类算法1-LogisticRegression
传统的线性回归模型z(x)=wx+b,其输出为负无穷至正无穷的区间,如果输出值为一个事件发生的概率,那么就要求输出区间为[0,1],传统的一些线性回归模型就不能work了,一个很简单的想法就是在z(x)线性输出的基础上增加一个从0到1光滑的单调递增的函数。同时对于很多事件来说,在事件确定发生的概率区间内 条件的微弱变化几乎不影响事件的发生,而在事件发生与不发生的交界区间 条件的微弱变化对事件发生的原创 2017-03-25 15:20:47 · 3104 阅读 · 0 评论 -
spark.mllib源码阅读-分类算法4-DecisionTree
本篇博文主要围绕Spark上的决策树来讲解,我将分为2部分来阐述这一块的知识。第一部分会介绍一些决策树的基本概念、Spark下决策树的表示与存储、结点分类信息的存储、结点的特征选择与分类;第二部分通过一个Spark自带的示例来看看Spark的决策树的训练算法。另外,将本篇与上一篇博文"spark.mllib源码阅读bagging方法"的bagging子样本集抽样方法结合,也就理解了Spark下的决原创 2017-04-11 09:58:52 · 4450 阅读 · 0 评论 -
spark.mllib源码阅读-分类算法5-GradientBoostedTrees
Gradient-Boosted Trees(GBT或者GBDT) 和 RandomForests 都属于集成学习的范畴,相比于单个模型有限的表达能力,组合多个base model后表达能力更加丰富。关于集成学习的理论知识,包括GBT和Random Forests的一些比较好的参考资料:周志华教授的"Ensemble Methods: Foundations and Algorithms",系统的原创 2017-04-19 15:23:38 · 4525 阅读 · 0 评论 -
spark.mllib源码阅读-聚类算法1-KMeans
KMeans聚类是聚类分析比较简单的一种,由于其简单、高效、易于理解实现等优点被广泛用于探索性数据分析中。 关于KMeans算法的介绍、分析的相关文章可谓汗牛充栋,留给我能写的东西并不多了,在这里,我通过罗列相关文章的方式,将涉及KMeans聚类的各方面做一个尽量详尽的总结。最后简单介绍一下Spark下KMeans聚类的实现过程。KMeans聚类算法原理:关于KMeans算法的原理及单机版实现,可原创 2017-04-21 15:16:18 · 4427 阅读 · 1 评论 -
spark.mllib源码阅读-分类算法2-NaiveBayes
朴素贝叶斯模型简述:贝叶斯模型通过使用后验概率和类的概率分布来估计先验概率,具体的以公式表达为P(Y)可以使用训练样本的类分布进行估计。如果X是单特征也很好估计,但如果X={x1,x2,..,xn}等n个特征构成,那估计n个特征的联合概率分布P(X)=P(x1,x2,...,xn)将变得非常困难。由于贝叶斯模型的参数难于估计,限制了其的应用。朴素贝叶斯模型是贝叶斯模型的简化版本,通过假设特征之间独原创 2017-03-29 17:47:08 · 3686 阅读 · 0 评论 -
spark.mllib源码阅读-优化算法3-Optimizer
Spark中的求解器,根据输入的训练数据及设定的迭代次数、正则化项、参数收敛精度等进行迭代求解模型的参数。Spark内部实现来两类求解器,基于随机梯度下降(miniBatch选取样本)的GradientDescent、基于大规模数值优化算法的LBFGS。在整体架构上,两个类都继承自Optimizer,并需要调用Gradient和UpdaterGradientDescentGradientDesce原创 2017-03-22 16:14:51 · 2840 阅读 · 0 评论 -
spark.mllib源码阅读-优化算法2-Updater
Updater是Spark中进行机器学习时对用于更新参数的轮子,参数更新的过程是1、第i轮的机器学习求解得到的参数wi2、第i+1轮计算得到的梯度值3、正则化选项来计算第i+1轮的机器学习要求解的参数wi+1 Spark实现了三类Updater,SimpleUpdater、L1Updater及SquaredL2Updater,他们之间关系为SimpleUpdater:无正则化的Updater,直接原创 2017-03-21 15:11:52 · 2121 阅读 · 0 评论 -
hadoop入门级总结一:HDFS
虽然hadoop经历了多年的发展,作为技术人员都或多或少的使用过或者了解过。这里还是做一个简单的总结,主要原因是之前主要是做hadoop的开发,对hadoop的运维知之甚少,但真正的接触到hadoop运维的工作的时候,其实会发现,对hadoop的一整套框架和理论知识都需要系统的学习,才能把工作做得更好,同时做基于hadoop的数据分析工作的时候,也时常会涉及到一些hadoop参数的调优。因此,在这原创 2016-07-07 21:29:16 · 4032 阅读 · 0 评论 -
hadoop入门级总结二:Map/Reduce
在上一篇博客:hadoop入门级总结一:HDFS中,简单的介绍了hadoop分布式文件系统HDFS的整体框架及文件写入读出机制。接下来,简要的总结一下hadoop的另外一大关键技术之一分布式计算框架:Map/Reduce。一、Map/Reduce是什么:Map/Reduce是在2004年谷歌的一篇论文中提出大数据并行编程框架,由两个基本的步骤Map(映射)和Reduce(化简)组成,Map/Red原创 2016-07-09 17:12:57 · 4744 阅读 · 0 评论 -
hadoop入门级总结三:hive
认识hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务运行 Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive定义了简单的类 SQL 查原创 2016-07-26 19:48:46 · 1598 阅读 · 0 评论 -
初识Spark2.0之Spark SQL
内存计算平台spark在今年6月份的时候正式发布了spark2.0,相比上一版本的spark1.6版本,在内存优化,数据组织,流计算等方面都做出了较大的改变,同时更加注重基于DataFrame数据组织的MLlib,更加注重机器学习整个过程的管道化。当然,作为使用者,特别是需要运用到线上的系统,大部分厂家还是会继续选择已经稳定的spark1.6版本,并且在spark2.0逐渐成熟之后才会开始考虑系统原创 2016-08-21 16:49:12 · 19074 阅读 · 2 评论 -
Spark编译及spark开发环境搭建
最近需要将生产环境的spark1.3版本升级到spark1.6(尽管spark2.0已经发布一段时间了,稳定可靠起见,还是选择了spark1.6),同时需要基于spark开发一些中间件,因此需要搭建一套windows下的spark的开发环境,方便代码的编写和调试。中间遇到了比较多的问题,在此也做一个记录/总结。Spark编译编译条件:官方给出的spark预编译版本是不支持spark on hive原创 2016-09-04 10:07:07 · 3216 阅读 · 0 评论 -
hive数据导出至本地文件,如何指定分隔符
有时候需要将hive库中的部分数据导入至本地,这样子做可视化和小规模的数据挖掘实验都是比较方便的。数据导入至本地的HQL语法如下: INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1;但是hive对字段分隔时默认使用的分隔符是^A,使用文本编辑器打开文件显示出来就是乱码,同时,后续提取字段值时需要指定这个特殊的分隔符,在p原创 2016-12-21 11:46:04 · 20354 阅读 · 2 评论 -
maven环境下使用java、scala混合开发spark应用
熟悉java的开发者在开发spark应用时,常常会遇到spark对java的接口文档不完善或者不提供对应的java接口的问题。这个时候,如果在java项目中能直接使用scala来开发spark应用,同时使用java来处理项目中的其它需求,将在一定程度上降低开发spark项目的难度。下面就来探索一下java、scala、spark、maven这一套开发环境要怎样来搭建。1、下载scala sdkht原创 2017-01-09 16:42:06 · 9465 阅读 · 0 评论 -
使用Spark集群进行ETL的架构介绍
什么是ETL:ETL(extract提取、transform转换、load加载)。ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘提供决策支持的数据。使用Spark开发ETL系统的优势:1、由于海量的日志记录、交易记录,单机进行ETL变得越来越困难。搭建一套具备大规模数据处理能力的E原创 2017-01-13 14:11:49 · 27270 阅读 · 7 评论 -
hbase大规模数据写入的优化历程
业务背景:由于需要将ngix日志过滤出来的1亿+条用户行为记录存入Hbase数据库,以此根据一定的条件来提供近实时查询,比如根据用户id及一定的时间段等条件来过滤符合要求的若干行为记录,满足这一场景的技术包括:Solr,Elasticsearch,hbase等,在此选用了Hbase来实践。step 1 :直接hbase建表,然后读取记录文件逐条写入Hbase。由于hbase实际的写入速度远原创 2016-06-04 09:42:26 · 16786 阅读 · 7 评论 -
spark.mllib源码阅读-优化算法1-Gradient
Spark中定义的损失函数及梯度,在看源码之前,先回顾一下机器学习中定义了哪些损失函数,毕竟梯度求解是为优化求解损失函数服务的。监督学习问题是在假设空间F中选取模型f作为决策函数,对于给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致,用一个损失函数(lossfunction)或代价函数(cost function)来度量预测错误的程度。损失函数是f(原创 2017-03-20 13:03:10 · 3122 阅读 · 0 评论 -
hive数据类型及其数据转换
由于需要使用hive sql进行数据查询,同时涉及多个不同类型的字段的组合,看Hive sql的文档相关和资料才知道,hive是支持大部分基础数据类型之间的相互转换的。那么,hive本身支持哪些数据类型呢?从hive内置数据类型中,Hive支持的数据类型包括以下这些:数据类型所占字节开始支持版本TINYINT1byte,-128 ~ 127原创 2016-04-08 21:39:36 · 41239 阅读 · 0 评论