自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (2)
  • 收藏
  • 关注

原创 JSON与AVRO数据文件的相互转换

JSON是一种常用的数据交换格式,很多系统都会使用JSON作为数据接口返回的数据格式,然而,由于JSON数据中包含大量的字段名字,导致空间的严重浪费,尤其是数据文件较大的时候,而AVRO是一种更加紧凑的数据序列化系统,占用空间相对较少,更利于数据在网络当中的传输,本文介绍如何使用`avro-tools`工具对这两种文件格式进行转换。

2017-01-09 21:36:23 18320 6

翻译 Flume 1.7.0 用户指南(上篇)

Apache Flume是一个分布式的,可靠的,且可用的系统,它可以用来有效地从许多不同的数据源收集,聚合和移动大量的日志数据到一个集中的数据中心进行存储。Apache Flume的使用不仅限于日志数据的聚合。因为数据源是可定制的,Flume可以用来传输大量的事件型数据,包括但不限于,如网络流量数据,社交媒体产生的数据,邮件信息和任何可能的数据源。

2016-12-24 16:19:14 3512

翻译 Hive 教程(官方Tutorial)

Hive是一个基于Apache Hadoop的数据仓库。对于数据存储与处理,Hadoop提供了主要的扩展和容错能力。Hive设计的初衷是:对于大量的数据,使得数据汇总,查询和分析更加简单。它提供了SQL,允许用户更加简单地进行查询,汇总和数据分析。同时,Hive的SQL给予了用户多种方式来集成自己的功能,然后做定制化的查询,例如用户自定义函数(User Defined Functions,UDFs).

2016-12-19 17:06:42 75165 5

翻译 HDFS的架构

Hadoop Distributed File System(HDFS)是一个分布式的文件系统,它可以运行在普通硬件之上。它与其他的分布式文件系统有许多相似之处,然而,它与其他的分布式文件系统的区别也很明显。HDFS的容错能力极强,最初的设计是可将其部署在廉价的硬件之上。HDFS对应用数据提供了高吞吐量的访问,适合那些具有大量数据集的应用。

2016-12-15 11:12:55 3058

原创 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 37316 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 22434 32

原创 Hive和Spark SQL优化

优化步骤问题定位,通过日志和代码分析,定位任务耗时长的原因hive任务,对于hive任务,可以通过日志查看哪个application、以及是哪个阶段耗时较长,另外,可以通过stage编号,结合explain查看执行计划,可以得知耗时较长的application对应的是sql中的哪个操作,便于具体分析原因。如果是map阶段较长,很可能是并发不够,如果是reduce较长,且长时间留停在99...

2020-05-05 22:36:29 1386

原创 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 3239

翻译 Hive的设计与架构

本文包含Hive的设计与架构的详细信息,具体内容如下:Hive架构Hive数据模型元数据 Motivation元数据对象元数据架构元数据接口Hive查询语言(HIveQL)编译器优化器Hive APIsHive 架构图中展示了Hive的主要组成部分,以及与Hadoop的交互,如图所述,Hive的主要组件有:UI – 提供给用户的接口,用于对系统提交查询...

2019-12-14 10:38:03 545

原创 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 563

原创 Hive数据倾斜解决思路

Hive数据倾斜总结发生倾斜的根本原因在于,shuffle之后,key的分布不均匀,使得大量的key集中在某个reduce节点,导致此节点过于“忙碌”,在其他节点都处理完之后,任务的结整需要等待此节点处理完,使得整个任务被此节点堵塞,要解决此问题,主要可以分为两大块:一是尽量不shuffle;二是shuffle之后,在reduce节点上的key分布尽量均匀。倾斜探查join key倾斜se...

2019-09-10 21:02:56 2146

原创 Mac系统搭建Hive源码远程调试环境

环境准备JDK这个一定需要,不管是Hadoop,还是Hive的运行,都依赖这个。HadoopHadoop的安装比较简单,从官网下载一个包,解压,然后配置几个核心的xml就可以了。Hive源码从官网下载一个Hive的源码包,我下载的是3.1.1Intellij IDEA建议下载community版Maven编译Hive源码时需要启动Hadoop切换到Hadoop的安装目录...

2019-03-03 14:29:14 895

原创 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 628

原创 Hive中的Predicate Pushdown Rules(谓词下推规则)

谓词下推概念谓词下推 Predicate Pushdown(PPD):简而言之,就是在不影响结果的情况下,尽量将过滤条件提前执行。谓词下推后,过滤条件在map端执行,减少了map端的输出,降低了数据在集群上传输的量,节约了集群的资源,也提升了任务的性能。PPD 配置PPD控制参数:hive.optimize.ppd Default Value: true Added ...

2018-07-22 19:48:21 12271 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 533

原创 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 801

原创 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 1580

原创 java.lang.StackOverflowError 异常处理

今天在使用maven打包项目的时候,报了以下异常:[ERROR] error: java.lang.StackOverflowError,修改JVM参数最大栈可以解决

2017-06-24 22:58:04 14721

原创 Apache Hadoop YARN Architecture

Apache Hadoop YARN ArchitectureYARN的基本理念是要将资源管理器和作业调度/监控分离成独立的守护进程。这个理念就是说,要有一个全局的ResourceManager(RM)和每个应用有一个ApplicationMaster (AM),一个应用可以是一个单一的作业,也可以是作业中的一个有向无环图(DAG)。ResourceManager和NodeManager

2017-04-15 12:25:19 535

原创 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 1216

原创 Hadoop源码学习-脚本命令(hadoop fs -ls)执行细节

Hadoop有提供一些脚本命令,以便于我们对HDFS进行管理,可以通过命令hadoop fs进行查看: 通过以上使用说明可以发现,里面提供了大多数和我们在本地操作文件系统相类似的命令,例如,cat查看文件内容,chgrp改变用户群组权限,chmod改变用户权限,chown改变用户拥有者权限,还有创建目录,查看目录,移动文件,重命名等等。hadoop fs -ls这里,我们来看看命令hadoop

2017-04-02 22:18:13 23891 1

原创 Hadoop源码学习-编译源码

编译源码非常简单,步骤如下:下载源代码安装依赖软件或库编译打包 下载源码官方下载并解压,过程略查看编译要求切换到解压后的hadoop源码根目录 此目录下有个BUILDING.txt文件,里面有对building的详细说明,以Linux为例,要求如下:Unix SystemJDK 1.7+Maven 3.0 or laterFindbugs ...

2017-04-02 11:37:00 4155

原创 log4j 的简单示例

在项目的开发过程中,往往需要使用日志的功能,不仅便于调试,更是为了以后问题的排查。本文是一个简单的log4j的示例。

2017-01-19 16:10:39 3112

原创 使用flume将avro文件上传到hdfs上

使用flume将avro文件上传到hdfs上场景介绍:把一个文件夹下的avro文件上传到hdfs上。source使用的是spooldir,sink使用的是hdfs。

2017-01-13 11:28:03 3692

原创 使用Maven对JAVA程序打包-带主类、带依赖

很多时候,我们需要对编写的程序进行打包,这个时候,我们可以借助一些项目构建工具,如maven, sbt, ant等,这里我使用的是maven。

2017-01-05 20:39:54 24201 4

原创 Apache Avro 1.8.1 入门指南(Java)

Apache Avro是一个数据序列化系统。序列化就是将对象转换成二进制流,相应的反序列化就是将二进制流再转换成对应的对象。因此,Avro就是用来在传输数据之前,将对象转换成二进制流,然后此二进制流达到目标地址后,Avro再将二进制流转换成对象。

2016-12-23 15:33:18 8385 1

翻译 Hive DML操作

Hive 数据操纵语言(DML)操作

2016-12-16 09:55:03 2635

原创 Linux Shell 日期格式

Linux Shell 日期格式

2016-12-15 20:03:31 1354

原创 Hadoop源码学习-以创建目录为例

在终端输入命令hadoop fs -mkdir dir时,最后是转换成运行JAVA程序,执行类FsShell,并传递相应的参数。在类FsShell里的执行过程类FsShell是使用命令hadoop fs时执行的类,它的功能就是:运行一个通用文件系统客户端,能够对文件系统进行相关操作。

2016-12-13 13:58:33 2287

原创 Hadoop源码学习-运行实例

Hadoop源码学习,以运行实例开始

2016-12-12 15:44:49 2284

原创 配置git push时无需输入用户名和密码

使用github,在git push时,需要输入用户名和密码,这会很不方便,本文介绍使用ssh来实现无需输入用户名和密码。

2016-11-24 16:22:55 5619

翻译 配置ssh无密码登录

配置ssh无密码登录

2016-11-11 13:39:45 4287

原创 Flume 1.7.0安装与实例

Flume 1.7.0安装与实例

2016-11-03 19:48:10 19226

原创 Hive安装与配置

Hive的安装与配置

2016-11-02 14:54:13 919

原创 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 15403 2

原创 在JAVA中使用sqljdbc连接MS SQL SERVER

在JAVA中使用sqljdbc连接MS SQL SERVER

2016-09-20 17:17:24 791

原创 No 'Access-Control-Allow-Origin' header is present on the requested resource

使用Angularjs ajax调用restful接口的跨域问题

2016-08-31 20:13:48 2693

原创 使用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 5736 2

原创 Spark使用explode展开嵌套的JSON数据

Spark使用explode展开嵌套的JSON数据

2016-08-17 08:47:08 17056 2

原创 ubuntu安装sbt

ubuntu 安装sbt

2016-08-16 10:31:10 877

httpcore-4.4.1.jar

在使用httpclient时,会用到这个JAR,一般情况,使用了httpclient时,一般也把这个包加上。

2015-07-28

httpclient-4.5.jar

使用HttpClient类时需要用到的JAR包

2015-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除