- 博客(88)
- 资源 (2)
- 收藏
- 关注
原创 JSON与AVRO数据文件的相互转换
JSON是一种常用的数据交换格式,很多系统都会使用JSON作为数据接口返回的数据格式,然而,由于JSON数据中包含大量的字段名字,导致空间的严重浪费,尤其是数据文件较大的时候,而AVRO是一种更加紧凑的数据序列化系统,占用空间相对较少,更利于数据在网络当中的传输,本文介绍如何使用`avro-tools`工具对这两种文件格式进行转换。
2017-01-09 21:36:23 18483 6
翻译 Flume 1.7.0 用户指南(上篇)
Apache Flume是一个分布式的,可靠的,且可用的系统,它可以用来有效地从许多不同的数据源收集,聚合和移动大量的日志数据到一个集中的数据中心进行存储。Apache Flume的使用不仅限于日志数据的聚合。因为数据源是可定制的,Flume可以用来传输大量的事件型数据,包括但不限于,如网络流量数据,社交媒体产生的数据,邮件信息和任何可能的数据源。
2016-12-24 16:19:14 3542
翻译 Hive 教程(官方Tutorial)
Hive是一个基于Apache Hadoop的数据仓库。对于数据存储与处理,Hadoop提供了主要的扩展和容错能力。Hive设计的初衷是:对于大量的数据,使得数据汇总,查询和分析更加简单。它提供了SQL,允许用户更加简单地进行查询,汇总和数据分析。同时,Hive的SQL给予了用户多种方式来集成自己的功能,然后做定制化的查询,例如用户自定义函数(User Defined Functions,UDFs).
2016-12-19 17:06:42 76593 5
翻译 HDFS的架构
Hadoop Distributed File System(HDFS)是一个分布式的文件系统,它可以运行在普通硬件之上。它与其他的分布式文件系统有许多相似之处,然而,它与其他的分布式文件系统的区别也很明显。HDFS的容错能力极强,最初的设计是可将其部署在廉价的硬件之上。HDFS对应用数据提供了高吞吐量的访问,适合那些具有大量数据集的应用。
2016-12-15 11:12:55 3081
原创 CentOS7使用本地库(Local Repository)安装Ambari-2.4.1和HDP-2.5.0
前言大多数情况下,我们在linux环境中安装软件都是使用在线安装的方式,比如centOS的 yum,ubuntu的apt-get,但是,有些时候,我们需要安装软件,但并没有网络,或网速并不快,比如公司的集群,很可能是没有外网的,有些库是国外的库,下载速度非常慢,这个时候,如果有个本地库,这个问题就能比较好的解决了 。当然,并不是说所有的软件都做成本地库,这里只是把安装Ambari和HDP的库本地化。
2016-11-15 11:15:49 37424 1
翻译 使用SparkSQL/DataFrame读取HBase表
HBase-Spark Connector手段DataSource是在Spark-1.2.0引入的,在简单的HBase KV存储和复杂的关系型SQL查询之间架起了桥梁,使得用户可以在HBase上使用Spark执行复杂的数据分析工作。HBase Dataframe是一个标准的Spark Dataframe,能够与任何其他的数据源进行交互。
2016-08-13 08:53:50 22513 32
原创 Hive和Spark SQL优化
优化步骤问题定位,通过日志和代码分析,定位任务耗时长的原因hive任务,对于hive任务,可以通过日志查看哪个application、以及是哪个阶段耗时较长,另外,可以通过stage编号,结合explain查看执行计划,可以得知耗时较长的application对应的是sql中的哪个操作,便于具体分析原因。如果是map阶段较长,很可能是并发不够,如果是reduce较长,且长时间留停在99...
2020-05-05 22:36:29 1423
原创 Hive中Map任务和Reduce任务数量计算原理
Hive中Map任务和Reduce任务数计算原理MapReduce原理Map阶段(以FileInputFormat为例)步骤:map, partition, sort, combinerInputFormat负责计算分片,一个分片对应一个Map任务,InputFormat而且还负责创建RecordReader,通过RecordReader的next()方法,然后循环调用map()方法...
2020-04-30 16:37:19 3369
翻译 Hive的设计与架构
本文包含Hive的设计与架构的详细信息,具体内容如下:Hive架构Hive数据模型元数据 Motivation元数据对象元数据架构元数据接口Hive查询语言(HIveQL)编译器优化器Hive APIsHive 架构图中展示了Hive的主要组成部分,以及与Hadoop的交互,如图所述,Hive的主要组件有:UI – 提供给用户的接口,用于对系统提交查询...
2019-12-14 10:38:03 578
原创 mac环境下kylin安装异常
find: -printf: unknown primary or operator Current HIVE_LIB is not valid, please export HIVE_LIB=‘YOUR_LOCAL_HIVE_LIB’find: -printf: unknown primary or operatorCurrent HIVE_LIB is not valid, please ...
2019-09-29 20:56:30 589
原创 Hive数据倾斜解决思路
Hive数据倾斜总结发生倾斜的根本原因在于,shuffle之后,key的分布不均匀,使得大量的key集中在某个reduce节点,导致此节点过于“忙碌”,在其他节点都处理完之后,任务的结整需要等待此节点处理完,使得整个任务被此节点堵塞,要解决此问题,主要可以分为两大块:一是尽量不shuffle;二是shuffle之后,在reduce节点上的key分布尽量均匀。倾斜探查join key倾斜se...
2019-09-10 21:02:56 2259
原创 Mac系统搭建Hive源码远程调试环境
环境准备JDK这个一定需要,不管是Hadoop,还是Hive的运行,都依赖这个。HadoopHadoop的安装比较简单,从官网下载一个包,解压,然后配置几个核心的xml就可以了。Hive源码从官网下载一个Hive的源码包,我下载的是3.1.1Intellij IDEA建议下载community版Maven编译Hive源码时需要启动Hadoop切换到Hadoop的安装目录...
2019-03-03 14:29:14 907
原创 Hadoop YARN
概述Map输入key/value对,输出key/value对中间结果。Map是独立的任务,它将输入记录转换成中间记录,转换的中间记录与输入记录不需要保持相同的类型。对于一个输入key/value对,可能产出0个或多个输出key/value对。The Hadoop Map-Reduce framework spawns one map task for each InputSplit gene...
2018-09-20 16:45:55 641
原创 Hive中的Predicate Pushdown Rules(谓词下推规则)
谓词下推概念谓词下推 Predicate Pushdown(PPD):简而言之,就是在不影响结果的情况下,尽量将过滤条件提前执行。谓词下推后,过滤条件在map端执行,减少了map端的输出,降低了数据在集群上传输的量,节约了集群的资源,也提升了任务的性能。PPD 配置PPD控制参数:hive.optimize.ppd Default Value: true Added ...
2018-07-22 19:48:21 12562 4
翻译 Kafka快速入门
本文翻译自Kafka官网的Quickstart,主要面向没有使用过kafka、但想快速入门的同学。Kafka 快速入门下载先下载kafka压缩包,并解压。 下载地址:https://kafka.apache.org/downloads 然后解压并切换目录:> tar -xzf kafka_2.11-1.1.0.tgz> cd kafka_2.11-1.1.0...
2018-05-04 16:23:12 560
原创 JVM选项配置
解释:-Xms: 初始堆大小-Xmx: 最大堆大小-Xmn: 年轻代大小-XX:+PrintGCDetails 打印gc日志详情-XX:SurvivorRatio=8 eden与survivor的比例,当为8的时候,eden占年轻代的80%,survivor区总的占20%,但survivor区要再分成两个survivor,所以,survivor大小为10%-XX:MinHeapFre...
2018-03-05 15:46:10 821
原创 Hive 异常情况
FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. GC overhead limit exxceeded2018-01-08 21:35:44 End of local task; Time Taken: 1.155 sec.Execution co
2018-01-09 15:23:37 1601
原创 java.lang.StackOverflowError 异常处理
今天在使用maven打包项目的时候,报了以下异常:[ERROR] error: java.lang.StackOverflowError,修改JVM参数最大栈可以解决
2017-06-24 22:58:04 14770
原创 Apache Hadoop YARN Architecture
Apache Hadoop YARN ArchitectureYARN的基本理念是要将资源管理器和作业调度/监控分离成独立的守护进程。这个理念就是说,要有一个全局的ResourceManager(RM)和每个应用有一个ApplicationMaster (AM),一个应用可以是一个单一的作业,也可以是作业中的一个有向无环图(DAG)。ResourceManager和NodeManager
2017-04-15 12:25:19 550
原创 HDFS高可用 -Quorum Journal Manager
High Availibility 高可用要实现Hadoop的高可用,有两种方式: - Quorum Journal Manager - Network File SystemUsing Quorum Journal Manager对于这种方式,根据对官方文档的理解,我画了个图,如下: 图上表述了一个集群大概的样子,有3个DataNode, 有两个NameNode,一个是Active
2017-04-05 21:18:46 1231
原创 Hadoop源码学习-脚本命令(hadoop fs -ls)执行细节
Hadoop有提供一些脚本命令,以便于我们对HDFS进行管理,可以通过命令hadoop fs进行查看: 通过以上使用说明可以发现,里面提供了大多数和我们在本地操作文件系统相类似的命令,例如,cat查看文件内容,chgrp改变用户群组权限,chmod改变用户权限,chown改变用户拥有者权限,还有创建目录,查看目录,移动文件,重命名等等。hadoop fs -ls这里,我们来看看命令hadoop
2017-04-02 22:18:13 23966 1
原创 Hadoop源码学习-编译源码
编译源码非常简单,步骤如下:下载源代码安装依赖软件或库编译打包 下载源码官方下载并解压,过程略查看编译要求切换到解压后的hadoop源码根目录 此目录下有个BUILDING.txt文件,里面有对building的详细说明,以Linux为例,要求如下:Unix SystemJDK 1.7+Maven 3.0 or laterFindbugs ...
2017-04-02 11:37:00 4202
原创 使用flume将avro文件上传到hdfs上
使用flume将avro文件上传到hdfs上场景介绍:把一个文件夹下的avro文件上传到hdfs上。source使用的是spooldir,sink使用的是hdfs。
2017-01-13 11:28:03 3737
原创 使用Maven对JAVA程序打包-带主类、带依赖
很多时候,我们需要对编写的程序进行打包,这个时候,我们可以借助一些项目构建工具,如maven, sbt, ant等,这里我使用的是maven。
2017-01-05 20:39:54 24485 4
原创 Apache Avro 1.8.1 入门指南(Java)
Apache Avro是一个数据序列化系统。序列化就是将对象转换成二进制流,相应的反序列化就是将二进制流再转换成对应的对象。因此,Avro就是用来在传输数据之前,将对象转换成二进制流,然后此二进制流达到目标地址后,Avro再将二进制流转换成对象。
2016-12-23 15:33:18 8456 1
原创 Hadoop源码学习-以创建目录为例
在终端输入命令hadoop fs -mkdir dir时,最后是转换成运行JAVA程序,执行类FsShell,并传递相应的参数。在类FsShell里的执行过程类FsShell是使用命令hadoop fs时执行的类,它的功能就是:运行一个通用文件系统客户端,能够对文件系统进行相关操作。
2016-12-13 13:58:33 2309
原创 配置git push时无需输入用户名和密码
使用github,在git push时,需要输入用户名和密码,这会很不方便,本文介绍使用ssh来实现无需输入用户名和密码。
2016-11-24 16:22:55 5643
原创 Maven 报错:Failed to read artifact descriptor for ***包
Maven 报错:Failed to read artifact descriptor for org.apache.hadoop:hadoop-common:jar:2.4.0
2016-10-26 19:22:13 15469 2
原创 No 'Access-Control-Allow-Origin' header is present on the requested resource
使用Angularjs ajax调用restful接口的跨域问题
2016-08-31 20:13:48 2708
原创 使用sbt assembly构建Spark项目
sbt-assembly是一个sbt插件,作用类似于Maven,用于创建一个包含依赖的JAR包场景:我在用sbt构建spark项目,但是在用sbt package打包生成jar包时,这个jar包并不没有包含项目的依赖,导致这个jar包提交到spark集群运行时,worker不能找到相应的类,sbt-assembly这个插件可以解决这个问题,可以将项目的依赖一同打包进jar包里。
2016-08-21 16:21:17 5836 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人