张子阳的博客

读书  旅行  摄影  编程

配置Hadoop集群客户端

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

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

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

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

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

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

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

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

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

使用源码编译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 阅读: (12) 分类: 大数据

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

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

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

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

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

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

旅行的路上拍大片

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

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

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

免密码从windows复制文件到linux

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

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

发表: 2018-07-25 阅读: (49) 分类: 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 阅读: (52) 分类: 大数据

使用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 阅读: (33) 分类: 大数据