最新内容
文章: 291
阅读: 1045728
今日阅读: 225
今日访客: 137
因为计划着国庆去西藏旅行一趟,因此买了这本书打算看一下。我最早摄影应该也是源于旅行,每次出去的时候,看到壮丽的风光,总想要记录下来,慢慢的也就喜欢上了摄影。关于旅行摄影,我一直觉得相比人像摄影要简单许多,风景已经很美,怎么拍都美,需要关注的主要就是构图了吧。而拍摄时机有时候都不是自己能决定的,而是按照每日行程,恰好在某个时间到了那里。
这本书分为了5个部分,分别是:器材、技巧、旅途、后期、手机摄影。和其他摄影书稍微不同的是:这本书的作者几乎对每幅作品的拍摄思想都进行了比较详细的讲述,所以文字篇幅还算比较大,不像有的摄影书,文字很少,都是图。
有时候,我们需要使用编码的方式将文件从Windows系统发送到Linux系统上,这篇文章将记录如何实现这一过程。
一个实际的例子是:现有的程序运行在Windows服务器上,需要将一些文件传输到运行在Linux的Hive数据仓库中。也许有更好的方案可以直接传给Hive,但一种间接的方案是先把文件发到Linux上,然后在Linux上使用load data读入到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。
在默认情况下,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上)。
默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。Derby是一个嵌入式的本地数据库,只能单进程进行访问,不允许多个连接。因此,Derby只适合本地测试,不适合用在生产环境。Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。
这本书也是端午节期间旅行时带着的,结果没有来得及看。假期结束后,又断断续续在周末休息的时候看完了。
这本书的副标题是:日系人像摄影教程。那么日系的风格是什么样的呢?就我的理解,简单来说,就是有点偏“性冷淡”风格的,画面简单、干净、明亮,饱和度不高,给人以朴素、清新的感觉。大家可以想象一下无印良品的风格,和带给我们的感受。除了日本的摄影风格以外,日本的很多轻音乐也是如此,简单、干净,能让人的整个身心都感觉到宁静。网易上有个对日本音乐的评论我一直都记得:有机会一定要去日本看一看,究竟是怎样的风景和文化才酝酿出了这样的音乐。扯得有点远了,但日系的这种恬静的风格是我比较喜欢的。
搭建好Hadoop和Hive的运行环境之后,首先考虑到的,就是如何将数据写入到HIVE中。这篇文章将简单、快速地介绍如何通过命令行的方式,使用insert...values、load、insert...select 语句将数据写入到hive表重。并讲解了在写入数据时遇到的问题:多个小文件,以及相应的解决方案。
直接通过MapReduce来对存储在Hadoop HDFS上的数据进行查询和分析比较繁琐而且还需要编程。Hive是一个数据仓库系统,构建在HDFS之上,它提供了类似SQL的语法(HQL),可以将HQL翻译成MapReduce作业进行查询,是的对数据的管理和检索更为便利。
这篇文章记录了如何在linux上安装hive。因为hive基于Hadoop,所以需要先安装Hadoop,如果你还没有安装Hadoop,可以参考linux上安装和配置Hadoop(单节点)进行安装。
Hadoop生态圈仍处于欣欣向荣的发展态势,不断涌现新的技术和名词。Hadoop的HDFS、YARN、MapReduce仍是最基础的部分,这篇文章记录了如何一步步在linux上安装单节点的Hadoop,之后就可以在它上面做一些练习了。截至目前(2018.7.16),Hadoop的最新版本是3.0.3,但使用最新版本的问题是:当你遇到问题时,所能找到的资料或者书籍都是针对较晚版本的。因此,对一项技术,如果没有达到特别熟悉,安装次新、或者次次新版本是一个相对稳妥的做法。所以,我选择安装的是2.9.1版本。
Hadoop有三种安装方式:独立(Standalone),单机单进程;伪分布(Pseudo-Distributed),单机多进程;完全分布(Fully-Distributed),多机多进程。这篇文章记录了伪分布模式安装的步骤。
Apache Spark被称为第三代大数据处理平台,也当前应用最广泛的大数据处理方案,这篇文章将介绍如何在Linux系统(Cent OS7)上以单机模式(Stand alone)模式安装Apache Spark。当前的最新稳定版是2.3.1。
此定义来源于网络,非官方定义:第一代Hadoop,第二代Storm,第三代Spark,第四代Flink。因为Flink比较新,从应用的广泛度方面而言不及Spark,相关的资料也比较少,因此在生产环境使用时,最好选用Spark。在试验环境,可以对Flink做一些尝试。
很多的开源项目都是使用java语言开发的,都需要在服务器上安装java才能运行起来。这篇文章简单介绍了在linux上安装java的步骤。
java已经更新到了10,但是因为很多应用,比如hadoop都是采用之前的版本开发,例如java8,所以建议安装java8。以避免出现版本过高带来的兼容性问题。
在部署和配置集群的时候,集群中的多台服务器需要通信,对于一些复杂的应用,例如consul、hadoop等,往往是客户端通信占用一个端口、Web UI占用一个端口、集群内的主机之间通信占用一个或多个端口。这样在测试环境部署的时候,如果启用防火墙,往往会因为漏掉放行某台服务器的某个端口,而造成连接失败。
所以,在测试环境下,为了节约时间,尽快地测试和部署集群,可以关掉防火墙(正式环境下根据情况自行判断了,如果是在阿里云、腾讯云,在云主机外部有一层可配置的“安全组”策略,在这个位置也可以配置防火墙)。
这本书是公司一位负责数据库的同事推荐的,正好数据中心也在重构和优化,以应对更加海量的数据,所以便花了些时间读完了这本书。
这本书首先按照按照数据处理的流程,将数据处理分成了下面几个步骤
- 数据产生:可以是后台业务数据、日志数据、客户端埋点数据、爬虫数据、其他第三方数据等。
- 数据采集和传输:数据源主要分为文本和数据库两种。
- 数据存储:将采集来的数据进行持久化保存
- 数据应用:当前主要还是“看”,未来可以利用深度学习、数据挖掘、机器学习等方式获得更多价值。
按照数据存储的实效性,将数据处理分为了三类:
- 离线处理:今天处理昨天或者更久前的数据,时间单位通常是天。
- 近线处理:处理15分钟或者1小时之前的数据,时间单位通常是分钟。
- 实时处理:处理即时收到数据,时效主要取决于传输和存储速度,时间单位通常是秒甚至毫秒。
Kafka分布式消息系统(搭建Kafka集群) - Part.3
在前面两篇文章中,我们了解了基本概念,也安装、配置好了zookeeper集群,在这篇文章中,我们将一步步搭建kafka集群。
在 搭建zookeeper集群 中,我们已经配置了系统环境,并且下载、解压了kafka安装包,所以这篇文章更多的是配置。kafka和zookeeper一样,都是使用java开发的,之前java环境已经安装过了,所以这篇文章也不再演示。如果你还没有看过上一篇,那么建议先看 上一篇。
Kafka分布式消息系统(搭建Zookeeper集群) - Part.2
kafka使用zookeeper来管理Brokers(kafka服务进程)、执行partition(分区)的leader选举、当出现变更时向kafka发送通知(新建topic、删除topic、broker上线、broker下线)。zookeeper通常配置为集群,一般3个或者5个,其中一个为leader,其余为follower。kafka强依赖于zookeeper,如果没有zookeeper则无法运行,这篇文章主要讲述如何在CentOS 7上搭建zookeeper集群,简单起见,以root身份登录系统并进行操作。
本来打算给这篇文章起名叫“搭建Kafka消息队列集群”,然而,和RabbitMQ不同,Kafka并没有实现消息队列的协议(例如AMQP,Advanced Message Queuing Protocol,提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计),所以尽管在使用方式上像极了队列,但并不算是严格意义上的消息队列。而按照官方的定义:A distributed streaming platform(分布式流数据平台),又显得太抽象,所以,我还是从实际出发,因为在项目中将Kafka用作一个数据传输和缓冲的中介,于是将标题命名为了“搭建Kafka数据传输服务集群”,关键词是:数据传输服务。
近期公司在做一些后台架构方面的改造,例如对数据中心,数据采集/传输/清洗/存储方面的优化,因此,我想有必要了解一些其他公司是如何做系统架构和转型的,于是购买了这本书。通读完以后,对阿里的中台架构有一个鸟瞰式的了解,也了解到了其中的庞大和复杂。这样的系统规模,对于大多数公司都是难以实现的,既难以开发也难以维护,毕竟很少有公司达到阿里这样的量级(不管是面对的客户访问量还是技术人员的数量)。但是,从这本书中,至少看到了架构的一些演化过程、可能遇到的问题、可选的解决方案。这样,在公司逐步发展时遇到类似问题时,至少有一个解决问题的方向,然后按这个方向再去寻找具体的解决办法。
我习惯旅行的时候带一两本书,因为旅行的时候总是会有不少等待的时间,比如说等飞机、等排队过关、等同行的同伴购物。我不是很喜欢玩手机,因为显示屏看久了总是觉得眼睛很累,这时候拿一本轻松的书看一下最合适不过了。因此,在端午假期出行期间,我便带上了这本书并读完了它。
以前我总是拍风景,拍得多了,觉得有一点无聊;同时也为了给旅途中同行的人多留一些纪念,所以开始拍一些人像。然后发现人像比风景难拍多了,风景主要是构图以及掌握好拍摄的时机(例如清晨或傍晚,光线最有层次感的时候)。人像则不同,除了构图和拍摄时间以外,还需要想好Pose,做好表情,选择目光注视的方向,有时候还需要抓拍。除此以外,人像也分为风景照(以景色作为人的背景)、旅拍、肖像、写真、私房等等很多种。
买这本书,也是想学习一下人像摄影方面的知识。这本书的作者是一位入行仅4年的职业女摄影师,她所喜欢和擅长的风格是温暖唯美型的,书中的配图也很好地提现了这一点,可以看到很多风格清新唯美的美女。
基于Docker的持续集成方案(安装和配置docker镜像仓库) - Part.5
在《基于Docker的持续集成方案》中,有一个安装和配置环节,即私有的docker镜像仓库,本文将对此进行介绍。