最新内容
文章: 298
阅读: 1142899
今日阅读: 417
今日访客: 351

这本书称得上是2018的年度图书了,不论走到哪家书店,这本书都被放置在显眼的位置,于是我就买来读了。然而,第一次买居然买错了,买成了有声书,只能在手机App上播放,无奈之下又买了纸质版。不过这个月的上下班时间,就在开车的路上“听书”了,还是有一定帮助的,至少后面继续翻看纸质书的时候效率提升了很多。
这本书的作者是瑞·达利欧,桥水基金(世界最大的对冲基金)的创始人,分享了他过去几十年来的工作和生活原则。起初我以为既然是原则,那么应该是为数不多的十几二十条,然而我错了,全书居然有500多条大小原则。其内容涵盖了处世哲学、工作方法、生活态度等方方面面。


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

一般来说,Hadoop集群是运行在内网中的,并不开放外网访问,然后通过一个gateway机器作为集群的客户端来提交作业,或者管理集群。此时,内网应当是互通的;如果内网仍需要开启防火墙,那么就需要将Hadoop所用到的端口号加入到防火墙的例外当中。
这篇文章列举了Hadoop生态系统下常用大数据组件的默认端口号,包括 HDFS、YARN、MapReduce、Hive、Spark、Zookeeper、Kakfa,其他的例如HBase、Sqoop等以后用到的时候再新增吧。

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

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

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