最新内容
文章: 291
阅读: 1035934
今日阅读: 186
今日访客: 111
搭建好了Kafka集群以后,最常见的两个需求就是:1、将数据从数据源采集并发送到Kafka的topic中;2、将数据从Kafka中取出,(进行运算后),然后再转存到其他的位置。完成这一工作,通常我们会使用各种语言的kafka库,调用相应的API,来完成读写kafka的操作。因为这种操作是非常常见的,因此kafka包含了一个名为Kafka Connect的组件,专门来完成这项工作。
Spark Sql的核心对象DataFrame提供了Sql查询的能力,极大的方便了数据的查询和统计。如果要对DataFrame进行Sql查询,需要指定Scheme信息。而文本文件往往缺少Scheme信息,这篇文章将演示3种从文本文件创建DataFrame,并设置其Scheme的方式。
这本书是2014年出版的,我到现在2018年才买来读,已经重印了30次了,可见还是很受欢迎的。这是一本大数据人文方面的书籍,没有涉及具体技术方面的内容,非技术领域的读者也可以无障碍阅读。书的名称是“数据之巅”,其实我觉得“大数据简史”可能更适合。因为它主要是从美国建国之初的人口普查,讲到当下的智慧城市、云存储和云计算。
这本书的主题尽管是围绕着数据的产生、收集、统计、应用来讲述的,但是作者的知识面比较广,尤其是对美国政体和历史了解很多,因此做了很多的拓展,可以学到些相关的其他知识。
Kafka分布式消息系统(Kafka Manager) - Part.5
在前一节中,我们通过控制台访问了Kafka集群,对topic进行了创建、删除、查看、读写等操作。使用控制台的方式简单快捷,但不够直观。Kafka官方并没有提供一个管理的UI界面,但存在很多第三方UI,比较流行的是Yahoo的Kafka-manager 和 Landoop的Kafka-topics-ui。这篇文章简单介绍一下Kafka-manager。
Kafka分布式消息系统(通过控制台访问) - Part.4
在前面的三篇文章中,介绍了Kafka的相关概念,并且搭建了一个3节点的Kafka和Zookeeper集群。接下来,就可以对集群进行访问。访问的方式通常为各种编程语言的Kafka库,或者是使用命令行脚本。各种语言的编程库,可以在这个页面获得:https://cwiki.apache.org/confluence/display/KAFKA/Clients。这篇文章主要讲述如何通过命令行来访问Kafka集群,包括查看所有Topic(主题)、创建Topic、查看Topic详情、写入数据到Topic、读取Topic内容,以及删除Topic。
这是一本小说,作者是东野圭吾。他的小说,我看的第一本是《解忧杂货铺》。没办法,每次浏览图书畅销榜,点到“小说”一栏时,总会看到他的几本书,其余的还有诸如《白夜行》等。我不太看小说,因此如果看,就想看最好的。于是我特意上知乎查了一下,东野圭吾最好看的小说时哪几本,尽管答复各不相同,但有好几个都提到了这本书。于是在国庆出行期间我就带上了这本书,在一些诸如乘机这样的等待时间里看完了它。
Spark 问题解决:no org.apache.spark.deploy.master.Master to stop
今天更新了配置,想要重启一下集群,在执行stop-all.sh脚本时,出现了这样的提示:no org.apache.spark.deploy.master.Master to stop,意思是当前没有运行spark进程。
这就奇怪了,当我运行jps查看时,发现Master和Worker进程都是存在的 ...
这本书的作者写了一个三部曲《人类简史》(A brief history of humankind)、《未来简史》(Homo Deus:A Brief History of Tomorrow)和这本《今日简史》(21 Lessons for the 21st Century)。其实将“今日”和“简史”联系起来是蛮牵强的一件事,从原书名来看,直译应当是“21世纪的21个议题”。估计是为了凑成一个“简史三部曲”,而特意修改的。
作者的前两本书我都看了,因此在书店看到这本更贴近当下世界的书,就立即买下了。这本书从当前如火如荼的大数据和人工智能,谈到民族主义、宗教、恐怖主义、世俗主义,可以说范围非常广。对于人工智能部分,一些设想让人有脑洞大开的感觉,例如人类社会的阶级分化(超人类和无用阶级),像科幻小说一样。而对于宗教的一些讲述,绝对会让宗教人士相当不快。
这本书内容宽泛,在实际生活中又缺乏体会,很难写出一些读后感,下面摘要书中的一些观点。当然,还有很多观点,每个人关注的角度不同,有兴趣的还是看一下全书吧。
RDD(Resilient Distributed Dataset,弹性分布式数据集)是Spark的基本抽象和核心对象。它代表了一个具有容错性的,可以并行运算的元素集合。有两种途径创建RDD:将Driver Program中的集合类型转换成RDD,或者是引用外部存储系统中的数据集,例如文件系统、HDFS、HBase、数据库等。
在实际的应用中,也可以理解到Spark是一个独立的计算引擎。先从外部加载数据,然后执行分布式的并行运算,最后将运算结果进行显示、保存、或发给其他应用。其中执行分布式的并行运算属于核心的位置,理解RDD也就很关键,这篇文章想通过一个例子来讲述RDD。
Hadoop自带一个Job History Server(作业历史服务,以下简称JHS),保存了作业执行的信息,例如作业名称、作业提交时间、作业启动时间、作业完成时间、作业配置信息、作业执行结果、使用的Map数、使用的Reduce数等等。JHS是一个独立的服务程序,可以运行在独立的服务器上,以分担整个集群的负载。默认情况下,JHS是不启动的。这篇文章主要介绍如何配置并运行JHS。
看到这本书是周末逛西西弗书店,被书名所吸引然后买下的。我自认为我的生活已经算比较充实和有趣了,总是有很多事情想要做。空闲的时候,不论是和朋友去户外活动、外出旅行、带孩子去周边玩一下、在家里看一天书或是打一天游戏都觉得很多乐趣。这本书的书名是《我决定活得有趣》,所以,没读之前我想其中一定描写的是作者的有趣生活吧。然而这是一本随笔集,文章都比较短小和浅显,记录的大多是生活中的一些琐事(至少我这么觉得),可能这些事情对作者造成了一些影响吧,但读者并没能引起太多共鸣。反正在我看过之后,并没有感觉有多少收获,也无法让生活变得更有趣。或者,随笔本来就是这种风格,而我对这种体裁不怎么感冒。
今天在运行一个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的年度图书了,不论走到哪家书店,这本书都被放置在显眼的位置,于是我就买来读了。然而,第一次买居然买错了,买成了有声书,只能在手机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来对数据进行统计或运算,并将结果保存起来。本节将演示这一过程。