张子阳的博客

首页 读书 技术 店铺 关于
张子阳的博客 首页 读书 技术 店铺 关于

最新内容

通过一个方法(aggregate)理解spark的rdd

RDD(Resilient Distributed Dataset,弹性分布式数据集)是Spark的基本抽象和核心对象。它代表了一个具有容错性的,可以并行运算的元素集合。有两种途径创建RDD:将Driver Program中的集合类型转换成RDD,或者是引用外部存储系统中的数据集,例如文件系统、HDFS、HBase、数据库等。

在实际的应用中,也可以理解到Spark是一个独立的计算引擎。先从外部加载数据,然后执行分布式的并行运算,最后将运算结果进行显示、保存、或发给其他应用。其中执行分布式的并行运算属于核心的位置,理解RDD也就很关键,这篇文章想通过一个例子来讲述RDD。

发表: 2018-09-14 阅读: (21) 分类: 大数据处理

linux上配置计划任务(cron和crontab)

很多时候,我们需要定时执行某个应用或者某段脚本,在linux上,可以使用Crond服务,它有点类似于Windows上的任务计划程序。这篇文章将简单介绍crond的使用。

发表: 2018-09-13 阅读: (26) 分类: Linux

配置Hadoop集群JobHistoryServer

Hadoop自带一个Job History Server(作业历史服务,以下简称JHS),保存了作业执行的信息,例如作业名称、作业提交时间、作业启动时间、作业完成时间、作业配置信息、作业执行结果、使用的Map数、使用的Reduce数等等。JHS是一个独立的服务程序,可以运行在独立的服务器上,以分担整个集群的负载。默认情况下,JHS是不启动的。这篇文章主要介绍如何配置并运行JHS。

发表: 2018-09-07 阅读: (43) 分类: 大数据处理

我决定活得有趣

看到这本书是周末逛西西弗书店,被书名所吸引然后买下的。我自认为我的生活已经算比较充实和有趣了,总是有很多事情想要做。空闲的时候,不论是和朋友去户外活动、外出旅行、带孩子去周边玩一下、在家里看一天书或是打一天游戏都觉得很多乐趣。这本书的书名是《我决定活得有趣》,所以,没读之前我想其中一定描写的是作者的有趣生活吧。然而这是一本随笔集,文章都比较短小和浅显,记录的大多是生活中的一些琐事(至少我这么觉得),可能这些事情对作者造成了一些影响吧,但读者并没能引起太多共鸣。反正在我看过之后,并没有感觉有多少收获,也无法让生活变得更有趣。或者,随笔本来就是这种风格,而我对这种体裁不怎么感冒。

发表: 2018-09-07 阅读: (53) 推荐: 难度:

linux同步多台服务器的时间

今天在运行一个Spark作业时出现了一个异常,核心一句是:This token is expired. current time is 1535728077792 found 1535699829483 Note: System times on machines may be out of sync. Check system time and time zone。在4台服务器上执行了一遍date,发现其中有1台的日期和其他3台差了8个多小时,其余3台的服务器虽然日期近似,但也不完全相同,少则相差十几秒,多则相差一分钟。所以有必要将4台服务器(位于同一个集群)的日期调整为完全一致。

发表: 2018-08-31 阅读: (56) 分类: Linux

原则

这本书称得上是2018的年度图书了,不论走到哪家书店,这本书都被放置在显眼的位置,于是我就买来读了。然而,第一次买居然买错了,买成了有声书,只能在手机App上播放,无奈之下又买了纸质版。不过这个月的上下班时间,就在开车的路上“听书”了,还是有一定帮助的,至少后面继续翻看纸质书的时候效率提升了很多。

这本书的作者是瑞·达利欧,桥水基金(世界最大的对冲基金)的创始人,分享了他过去几十年来的工作和生活原则。起初我以为既然是原则,那么应该是为数不多的十几二十条,然而我错了,全书居然有500多条大小原则。其内容涵盖了处世哲学、工作方法、生活态度等方方面面。

发表: 2018-08-25 阅读: (188) 推荐: 难度:

配置Hadoop集群客户端

在Hadoop和Spark集群搭建好了以后,如果我们需要向集群中发送、获取文件,或者是执行MapReduce、Spark作业,通常是搭建一个外围的、集群的客户端,在这个客户端上进行操作。而不是直接在集群的NameNode或者DataNode上进行。此时,集群和客户端的结构如下图所示(简化图,没有考虑NameNode的高可用),本文将介绍如何快速搭建一个集群客户端(有时也叫gateway)。

发表: 2018-08-15 阅读: (101) 分类: 大数据处理

大数据常用组件默认端口号

一般来说,Hadoop集群是运行在内网中的,并不开放外网访问,然后通过一个gateway机器作为集群的客户端来提交作业,或者管理集群。此时,内网应当是互通的;如果内网仍需要开启防火墙,那么就需要将Hadoop所用到的端口号加入到防火墙的例外当中。

这篇文章列举了Hadoop生态系统下常用大数据组件的默认端口号,包括 HDFS、YARN、MapReduce、Hive、Spark、Zookeeper、Kakfa,其他的例如HBase、Sqoop等以后用到的时候再新增吧。

发表: 2018-08-13 阅读: (136) 分类: 大数据处理

安装和配置Hadoop集群(3节点)

安装和配置Hadoop(单节点) 这篇文章中,已经进行了Hadoop单机伪集群模式的部署。生产环境中,Hadoop都是以集群方式进行安装和部署的,否则,就不需要使用Hadoop了,分布式存储和分布式运算是Hadoop提供的核心功能。这篇文章将在单机安装的基础上,进行3个节点Hadoop集群的安装,因此如果你还没有单机安装过Hadoop,那么请先查看一下单机安装的这篇文章。

发表: 2018-08-12 阅读: (42) 分类: 大数据处理

使用源码编译Hadoop

Hadoop以两种方式发行,一种是binary格式的tar压缩包,一种是source源文件。考虑到暂时并无修改Hadoop源码的需求,简单起见,我都是直接使用编译好的binary包。然后,在运行Hadoop时,却会收到一个警告:“Unable to load native-hadoop library for your platform” 。在stackoverflow站点上,找到了相关问题的一个帖子,stackoverflow,按照其中的一个高票回复,按下面这样修改了一下环境变量,解决了这个问题。

但同时,最高票的答复说,造成这个问题的原因是官方的binary是32位编译的,如果在64位系统上运行,需要重新编译(I assume you're running Hadoop on 64bit CentOS. The reason you saw that warning is the native Hadoop library $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 was actually compiled on 32 bit.)。众所周知,32位系统存在着最大4GB内存的问题,因此,我觉得还是下载Hadoop源码,然后重新编译一下比较稳妥。本文编译Hadoop版本是2.9.1。

发表: 2018-08-12 阅读: (27) 分类: 大数据处理

使用Spark进行数据统计并将结果转存至MSSQL

使用Spark读取Hive中的数据 中,我们演示了如何使用python编写脚本,提交到spark,读取并输出了Hive中的数据。在实际应用中,在读取完数据后,通常需要使用pyspark中的API来对数据进行统计或运算,并将结果保存起来。本节将演示这一过程。

发表: 2018-08-12 阅读: (99) 分类: 大数据处理

Hive中分区和分桶的概念和操作

在使用传统的RDBMS数据库(关系数据库),例如MySql时,对于一些大表,我们通常会进行分表操作,以提升查询效率。在Hive中也提供了类似的概念和操作,本文将对其进行讲述。

发表: 2018-08-09 阅读: (36) 分类: 大数据处理

旅行的路上拍大片

因为计划着国庆去西藏旅行一趟,因此买了这本书打算看一下。我最早摄影应该也是源于旅行,每次出去的时候,看到壮丽的风光,总想要记录下来,慢慢的也就喜欢上了摄影。关于旅行摄影,我一直觉得相比人像摄影要简单许多,风景已经很美,怎么拍都美,需要关注的主要就是构图了吧。而拍摄时机有时候都不是自己能决定的,而是按照每日行程,恰好在某个时间到了那里。

这本书分为了5个部分,分别是:器材、技巧、旅途、后期、手机摄影。和其他摄影书稍微不同的是:这本书的作者几乎对每幅作品的拍摄思想都进行了比较详细的讲述,所以文字篇幅还算比较大,不像有的摄影书,文字很少,都是图。

发表: 2018-08-05 阅读: (104) 推荐: 难度:

免密码从windows复制文件到linux

有时候,我们需要使用编码的方式将文件从Windows系统发送到Linux系统上,这篇文章将记录如何实现这一过程。

一个实际的例子是:现有的程序运行在Windows服务器上,需要将一些文件传输到运行在Linux的Hive数据仓库中。也许有更好的方案可以直接传给Hive,但一种间接的方案是先把文件发到Linux上,然后在Linux上使用load data读入到Hive中。

发表: 2018-07-25 阅读: (82) 分类: Linux

使用.net通过odbc访问Hive

写入数据到Hive表(命令行) 这篇文章中,我们通过命令行的方式和hive进行了交互。但在通常情况下,是通过编程的方式来操作Hive,Hive提供了JDBC和ODBC接口,因为公司的数据处理程序是使用.net开发并运行在windows server上的,因此这篇文章将介绍如何通过ODBC来访问Hive。

ODBC:Open Database Connectivity,开放数据库连接,是微软开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。

JDBC:Java Database Connectivity,Java数据库连接,是用于Java编程语言和数据库之间的数据库无关连接的标准Java API。

发表: 2018-07-25 阅读: (92) 分类: 大数据处理

使用Spark读取Hive中的数据

在默认情况下,Hive使用MapReduce来对数据进行操作和运算,即将HQL语句翻译成MapReduce作业执行。而MapReduce的执行速度是比较慢的,一种改进方案就是使用Spark来进行数据的查找和运算。Hive和Spark的结合使用有两种方式,一种称为Hive on Spark:即将Hive底层的运算引擎由MapReduce切换为Spark,官方文档在这里:Hive on Spark: Getting Started。还有一种方式,可以称之为Spark on Hive:即使用Spark来读取HIVE的表数据(数据仍存储在HDFS上)。

发表: 2018-07-25 阅读: (61) 分类: 大数据处理

配置Hive使用MySql存储元数据

默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。Derby是一个嵌入式的本地数据库,只能单进程进行访问,不允许多个连接。因此,Derby只适合本地测试,不适合用在生产环境。Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。

发表: 2018-07-24 阅读: (71) 分类: 大数据处理

一期一会:日系人像摄影教程

这本书也是端午节期间旅行时带着的,结果没有来得及看。假期结束后,又断断续续在周末休息的时候看完了。

这本书的副标题是:日系人像摄影教程。那么日系的风格是什么样的呢?就我的理解,简单来说,就是有点偏“性冷淡”风格的,画面简单、干净、明亮,饱和度不高,给人以朴素、清新的感觉。大家可以想象一下无印良品的风格,和带给我们的感受。除了日本的摄影风格以外,日本的很多轻音乐也是如此,简单、干净,能让人的整个身心都感觉到宁静。网易上有个对日本音乐的评论我一直都记得:有机会一定要去日本看一看,究竟是怎样的风景和文化才酝酿出了这样的音乐。扯得有点远了,但日系的这种恬静的风格是我比较喜欢的。

发表: 2018-07-23 阅读: (220) 推荐: 难度:

写入数据到Hive表(命令行)

搭建好Hadoop和Hive的运行环境之后,首先考虑到的,就是如何将数据写入到HIVE中。这篇文章将简单、快速地介绍如何通过命令行的方式,使用insert...values、load、insert...select 语句将数据写入到hive表重。并讲解了在写入数据时遇到的问题:多个小文件,以及相应的解决方案。

发表: 2018-07-21 阅读: (137) 分类: 大数据处理

安装和配置Hive

直接通过MapReduce来对存储在Hadoop HDFS上的数据进行查询和分析比较繁琐而且还需要编程。Hive是一个数据仓库系统,构建在HDFS之上,它提供了类似SQL的语法(HQL),可以将HQL翻译成MapReduce作业进行查询,是的对数据的管理和检索更为便利。

这篇文章记录了如何在linux上安装hive。因为hive基于Hadoop,所以需要先安装Hadoop,如果你还没有安装Hadoop,可以参考linux上安装和配置Hadoop(单节点)进行安装。

发表: 2018-07-17 阅读: (77) 分类: 大数据处理