
hadoop
文章平均质量分 73
记录hadoop生态相关知识
赶路人儿
一个十年以上编程人员,擅长使用java、python、C++等语言,具有广告投放、个性化推荐引擎等超大规模系统开发经验。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
配置Hadoop集群远程客户端
在Hadoop和Spark集群搭建好了以后,如果我们需要向集群中发送、获取文件,或者是执行MapReduce、Spark作业,通常是搭建一个外围的、集群的客户端,在这个客户端上进行操作。而不是直接在集群的NameNode或者DataNode上进行。此时,集群和客户端的结构如下图所示(简化图,没有考虑NameNode的高可用),本文将介绍如何快速搭建一个集群客户端(有时也叫gateway)。说明:在网络配置方面,可以遵循集群仅开放内网访问,而客户端开放外网访问,所有对集群的访问和管理,均通过客户端来完原创 2022-05-30 10:45:54 · 1728 阅读 · 0 评论 -
客户端访问双网卡hadoop集群的HDFS
如果大数据平台处于两个网络中,其中内部网络用来进行数据交换和计算,配置万兆光纤网卡和光纤交换机;外部网络用来为其他部门提供服务、数据接口,这里使用的是千兆网络。HDFS是支持混合网络的,详情见官方文档:Apache Hadoop 2.8.0 – HDFS Support for Multihomed Networks集群部署过程中遇到一个这样的问题:外部网络无法通过IP直接访问内部网络的Hadoop NameNode和DataNode。比如,我们外部有一个独立的flink集群,上跑了一个流式任务,将原创 2022-01-06 14:31:16 · 2368 阅读 · 0 评论 -
Hadoop NameNode 高可用 (High Availability) 实现解析
在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pi转载 2017-12-11 18:33:01 · 400 阅读 · 0 评论 -
[解决]java.io.IOException: Cannot obtain block length for LocatedBlock
在hadoop测试集群运行job的过程中发现部分运行失败,有Cannot obtain block length for LocatedBlock,使用hdfs dfs -cat ${文件}的时候也报这个错,看过代码后发现是文件未被正常关闭(flume传到hdfs上的,可能由于Namenode长时间gc或者切换或者重启会留下很多.tmp结尾的文件),为此,使用hadoop命令显示处于打开状态的文件转载 2017-10-10 16:16:58 · 544 阅读 · 0 评论 -
Flume使用Hive作为Sink总结
项目中打算使用Flume把数据直接传到Hive表而不是HDFS上。使用hive作为Sink,Flume版本为1.7.0。开始时候遇到Failed connecting to EndPoint错误,Caused by: org.apache.hive.hcatalog.streaming.StreamingException: Cannot stream to table that has no转载 2017-08-29 22:36:38 · 4782 阅读 · 1 评论 -
tez安装、配置
hive on tez 的方式有两种安装配置方式: ● 在hadoop中配置 ● 在hive中配置比较: 当已经有了稳定的hadoop集群,而不想动这个集群时,可以考虑采用第二种方式配置,第二种方式配置后只有hive的程序可以动态的切换执行引擎:set hive.execution.engine=mr;// tez/mr ;而其他的mapreduce程序只能在yarn上运行;原创 2017-04-25 10:23:54 · 5681 阅读 · 1 评论 -
hadoop fs -count 命令
hadoop fs -count的结果含义最近要对hdfs上空间使用和文件结点使用增加报警,当超过一定的限额的时候就要发报警好通知提前准备。[sunwg]$ hadoop fs -count /sunwg 2 1 108 hdfs://sunwg:9000/sunwg第一个数值2表示/sunwg下的文件夹的个数,第二个数值1表是当前文件夹转载 2017-05-02 10:49:36 · 13207 阅读 · 0 评论 -
java.lang.NoSuchFieldError: INSTANCE in HttpClient when running hadoop
今天运行mr代码,在本地调试都没有问题,放到线上发现一直报错:java.lang.NoSuchFieldError: INSTANCE in HttpClient when running hadoop经过排查,发现是由于map中用到了HttpClient(4.5)的依赖,而hadoop中自带了另一个版本的httpClient.jar,导致jar冲突。解决方法可以使用map-job-use原创 2016-11-21 18:54:46 · 2448 阅读 · 0 评论 -
LSM树在HBase中的应用
LSM树全称是基于日志结构的合并树(Log-Structured Merge-Tree)。No-SQL数据库一般采用LSM树作为数据结构,HBase也不例外。众所周知,RDBMS一般采用B+树作为索引的数据结构,如图1。RDBMS中的B+树一般是3层n路的平衡树。B+树的节点对应于磁盘数据块。因此对于RDBMS,数据更新操作需要5次磁盘操作(从B+树3次找到记录所在数据块,再加上一次读和一次写)。转载 2016-10-30 12:27:52 · 3325 阅读 · 0 评论 -
各hbase版本对hadoop各版本的支持情况
http://hbase.apache.org/book.html#configuration HadoopThe following table summarizes the versions of Hadoop supported with each version of HBase. Based on the version of HBase, you should se翻译 2016-10-29 23:56:09 · 877 阅读 · 0 评论 -
Hbase 统计表行数的3种方式总结
有些时候需要我们去统计某一个hbase表的行数,由于hbase本身不支持SQL语言,只能通过其他方式实现。可以通过一下几种方式实现hbase表的行数统计工作:1、count命令最直接的方式是在hbase shell中执行count的命令可以统计行数。hbase> count ‘t1′ hbase> count ‘t1′, INTERVAL => 100000 hbase原创 2016-10-15 22:18:46 · 2044 阅读 · 0 评论 -
NameNode格式化失败问题的解决
NameNode格式化失败,查看日志,报如下错:15/04/08 10:05:43 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]15/04/08 10:05:43 INFO namenode.NameNode: createNameNode [-format]15/04/08 10:05转载 2016-11-05 18:19:33 · 3727 阅读 · 0 评论 -
hadoop 2.2.0的datanode中存储block的多个文件夹的负载均衡问题
hadoop的分布式文件系统HDFS的存储方式是,将数据分成block,分布式存储在整个hadoop集群的datanode中,每个block默认的大小是64M,这些block文件的具体存储位置是在hadoop的配置文件中定义的,进入/home/hadoop2/hadoop2/etc/hadoop的配置文件目录(hadoop版本为社区版2.2.0):vi /home/hadoop2/hadoop转载 2015-12-31 11:40:23 · 1665 阅读 · 0 评论 -
yean体系架构介绍
YARN是Hadoop 2.0的资源管理器。它是一个通用的资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。1、从Hadoop0.23版本开始对于mapduce计算框架进行升级,引入了YARN。老的版本MRv1存在诸多问题,和YARN对比如下:1) MRv1中Jobtracker中存在单点问题,功能比较多的问题,负责资源原创 2017-12-11 15:26:21 · 977 阅读 · 0 评论 -
Java API 写 Hive Orc文件
下面的代码将三行数据:张三,20李四,22王五,30写入HDFS上的/tmp/lxw1234/orcoutput/lxw1234.com.orc文件中。package com.lxw1234.test; import java.io.DataInput;import java.io.DataOutput;import java.io.IOExcept转载 2017-11-23 18:28:22 · 4689 阅读 · 0 评论 -
MapReduce 读取ORC格式文件
1、创建orc格式hive表:create table test_orc(name string,age int) stored as orc2、查看表结构:show create table test_orcCREATE TABLE `test_orc`( `name` string, `age` int)ROW FORMAT SERDE 'org.apache.ha转载 2017-11-23 18:39:30 · 5951 阅读 · 0 评论 -
新一代列式存储格式Parquet
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架(Hadoop、Spark等),被多种查询引擎支持(Hive、Impala、Drill等),并且它是语言和平台无关的。Parquet最初是由Twitter和Cloudera(由于Impala的缘故)合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目...转载 2019-06-30 17:54:47 · 697 阅读 · 0 评论 -
Parquet与ORC:高性能列式存储格式
背景随着大数据时代的到来,越来越多的数据流向了Hadoop生态圈,同时对于能够快速的从TB甚至PB级别的数据中获取有价值的数据对于一个产品和公司来说更加重要,在Hadoop生态圈的快速发展过程中,涌现了一批开源的数据分析引擎,例如Hive、Spark SQL、Impala、Presto等,同时也产生了多个高性能的列式存储格式,例如RCFile、ORC、Parquet等,本文主要从实现的角度上对比...转载 2019-06-30 17:32:23 · 873 阅读 · 0 评论 -
win7运行mapreduce报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
我们在本地(windows)运行mapreduce或者habase程序时,可能会出现如下错误:Could not locate executable null\bin\winutils.exe in the Hadoop binaries.Failed to locate the winutils binary in the hadoop binary path这是因为hadoop主要是在Lin...原创 2018-05-15 15:43:41 · 615 阅读 · 0 评论 -
Ambari和ClouderaManager对比
运维过hadoop集群的人都应该清楚,hadoop生态从安装、配置到后期运维是一个非常艰辛的过程,一般来说安装hadoop可能就需要几天时间,运维一个小型集群同样需要几个人。ambari和cloudera Manager这两个系统,目的就是简化hadoop生态集群的安装、配置,同时提高hadoop运维效率,以及对hadoop集群进行监控。Ambari是Apache软件基金顶级项目,它是一个基于原创 2018-03-22 10:16:53 · 6042 阅读 · 1 评论 -
hadoop各种发行版本
目前而言,不收费的Hadoop版本主要有三个(均是国外厂商),分别是:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”)Hortonwor原创 2018-03-22 09:37:37 · 8566 阅读 · 0 评论 -
HDFS NameNode内存全景
一、概述从整个HDFS系统架构上看,NameNode是其中最重要、最复杂也是最容易出现问题的地方,而且一旦NameNode出现故障,整个Hadoop集群就将处于不可服务的状态,同时随着数据规模和集群规模地持续增长,很多小量级时被隐藏的问题逐渐暴露出来。所以,从更高层次掌握NameNode的内部结构和运行机制尤其重要。除特别说明外,本文基于社区版本Hadoop-2.4.1[1][2],虽然2转载 2017-12-13 17:15:59 · 371 阅读 · 0 评论 -
HDFS NameNode内存详解
前言《HDFS NameNode内存全景》中,我们从NameNode内部数据结构的视角,对它的内存全景及几个关键数据结构进行了简单解读,并结合实际场景介绍了NameNode可能遇到的问题,还有业界进行横向扩展方面的多种可借鉴解决方案。事实上,对NameNode实施横向扩展前,会面临常驻内存随数据规模持续增长的情况,为此需要经历不断调整NameNode内存的堆空间大小的过程,期间会遇转载 2017-12-13 17:06:21 · 900 阅读 · 0 评论 -
HDFS NameNode重启优化
一、背景在Hadoop集群整个生命周期里,由于调整参数、Patch、升级等多种场景需要频繁操作NameNode重启,不论采用何种架构,重启期间集群整体存在可用性和可靠性的风险,所以优化NameNode重启非常关键。本文基于Hadoop-2.x和HA with QJM社区架构和系统设计(如图1所示),通过梳理NameNode重启流程,并在此基础上,阐述对NameNode重启优化实转载 2017-12-13 09:54:48 · 703 阅读 · 0 评论 -
Hadoop 2.0 NameNode HA和Federation实践
一、为什么需要HA和Federation:1. 单点故障在Hadoop 2.0之前,也有若干技术试图解决单点故障的问题,我们在这里做个简短的总结:Secondary NameNode。它不是HA,它只是阶段性的合并edits和fsimage,以缩短集群启动的时间。当NameNode(以下简称NN)失效的时候,Secondary NN并无法立刻提供服务,Secondary转载 2017-12-12 18:57:32 · 506 阅读 · 0 评论 -
HDFS Federation设计动机与基本原理
HDFS Federation是Hadoop最新发布版本Hadoop-0.23.0中为解决HDFS单点故障而提出的namenode水平扩展方案。该方案允许HDFS创建多个namespace以提高集群的扩展性和隔离性。本篇文章主要介绍了HDFS Federation的设计动机和基本原理。(个人认为federation不是解决ha的,只是用来解决nn水平扩展的)1. 当前HDFS概况1.1 当前...转载 2017-12-12 18:25:20 · 673 阅读 · 0 评论 -
hadoop1 eclipse插件编译
hadoop貌似在0.20.0之后就不再提供eclipse插件的编译包了,而是直接提供一堆源码,具体原因就不清楚是啥了。但可能是考虑到eclipse版本的问题吧,各个开发者的偏好不一样,用的版本都不一样,与其自己编译不如给开发者,这样会更好。 但给了一堆源码给我们,对我们这些不怎么熟ant的人就是个难题了。我就在编译的时候遇到了一堆问题了,杯具得很。但好在GOOGLE大神在,转载 2015-10-23 11:04:33 · 584 阅读 · 0 评论 -
Hadoop气象数据
新版气象数据下载地址:ftp://ftp3.ncdc.noaa.gov/pub/data/noaa/isd-lite/ftp://ftp.ncdc.noaa.gov/pub/data/noaa/isd-lite/数据格式:2014 01 01 00 33 -23 -9999 0 -9999 -9999 -9999 02014 01 0原创 2015-04-17 13:30:44 · 1515 阅读 · 0 评论 -
上传文件到HDFS方式
hadoop计算需要在hdfs文件系统上进行,因此每次计算之前必须把需要用到的文件(我们称为原始文件)都上传到hdfs上。文件上传到hdfs上通常有三种方法:1、 hadoop自带的dfs服务,put;2、 hadoop的API,Writer对象可以实现这一功能;3、 调用OTL可执行程序,数据从数据库直接进入hadoop 将1、2方案进行对比,如下:转载 2015-04-12 17:40:58 · 7583 阅读 · 0 评论 -
HDFS读书笔记-如何让NameNode高可用(三)
高可用名字听着挺虚,目的很简单,让应用或服务在任何时候都可以提供服务。 NameNode最关键的问题在于有单点的风险,一旦NameName挂掉,整个HDFS都无法提供服务。大脑坏掉了,身体也是无法行动的。 对于高可用的方案,业界一般通常使用两种类型的手段。 1:主备(Master-Slave) 2:集群(Cluster)转载 2015-04-12 17:35:03 · 1710 阅读 · 0 评论 -
HDFS读书笔记-总体介绍(一)
一直以来对hadoop相关系列的学习都是较为零散的,不成体系。没有经过自己总结和沉淀的资料也很难长久的消化和在工作中实际运用。故而也希望通过这样系列的方式对所学习,所了解的资料进行总结。HDFS(Hadoop Distributed File System)顾名思义,是hadoop的分布式文件系统。HDFS是hadoop的一个子项目。Hadoop的名字在这里也提一下,是作者小孩很喜转载 2015-04-12 17:14:23 · 765 阅读 · 0 评论 -
HDFS的存储结构以及写入、读取hdfs数据操作流程简单总结
一、NameNode数据结构1、物理结构${dfs.name.dir}/current/{VERSION,edits,fsimage,fstime}dfs.name.dir是一个目录列表,存储每个目录的镜像。VERSION文件是Java属性文件,包含运行HDFS的版本信息。edits,是编辑日志文件。当客户断执行写操作的时,NameNode首先会在编辑日志中写下记录,并转载 2015-04-12 21:57:18 · 2794 阅读 · 0 评论 -
HDFS读书笔记-了解NameNode(二)
简单来讲,NameNode就是HDFS的大脑,任何客户端或者DataNode的数据迁移、目录操作都是由NameNode来完成的。 再了解了NameNode会干什么事情之后,最好深入的办法就是来看NameNode有哪些重要的数据结构,每个数据结构都干什么事情。 我们提到NameNode主要是维护文件在哪里这个映射关系。故而主要包含的内容是:转载 2015-04-12 17:30:15 · 819 阅读 · 0 评论 -
hadoop1.2.1伪分布式安装
1、安装虚拟机、OS环境:1)安装virtualbox虚拟机,配置网络2)安装centos系统3)安装jdk,配置环境变量4)ssh互信: 1>ssh-keygen -t rsa在~/.ssh目录下产生了秘钥id_rsa.pub 2>复制秘钥给对方(自己)作为公钥:cp id_rsa.pubauthorized_keys 3>验证 ssh localhost原创 2015-04-12 22:09:23 · 1030 阅读 · 0 评论 -
mapreduce输出结果到mysql
Mapreduce程序在reduce阶段执行后,默认会把结果输出到hdfs文件系统上(使用context.wirte()),如果要把结果写到mysql中,需要重写Writable、DBWritable这两个类中的方法。以wordCount程序为例,下面讲解如何把word和count输出到mysql中。1、首先在mysql中创建表test,结构如下test (id bigint(20),na原创 2015-04-22 16:54:46 · 1445 阅读 · 0 评论 -
HDFS的基本shell操作
(1)分布式文件系统随着数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 。它是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。而它最主要的特性就是通透性。让实际上是通过网络来访问文件的动作,由程序与用户看来,就转载 2015-04-11 23:08:34 · 1099 阅读 · 0 评论 -
使用eclipse查看hadoop源码
1、下载hadoop,在windows上使用winrar解压开。这里我用的是hadoop1.2.1,下载地址:http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/hadoop/common/注:在linux上安装配置hadoop,只需要把下载的hadoop1.2.1.tar.zp解压后,修改conf下的hadoop-env.sh、core-sit原创 2015-04-11 17:03:14 · 1263 阅读 · 0 评论 -
MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里转载 2015-03-23 11:32:45 · 801 阅读 · 0 评论 -
Hadoop启动时出现 Warning HADOOP_HOME is deprecated 的解决方案
我们在执行脚本start-all.sh,启动hadoop时,有时会出现如下图的警告信息虽然不影响程序运行,但是看到这样的警告信息总是觉得自己做得不够好,怎么去掉哪? 我们一步步分享,先看一下启动脚本start-all.sh的源码,如下图这时我们可以猜到肯定是hadoop-config.sh中有问题,于是查看该文件,如下图:从图中的红色框框中可以看到,脚本判转载 2015-03-22 11:09:24 · 1451 阅读 · 0 评论 -
mapreduce中map数量计算
mapreduce作业会根据输入目录产生多个map任务, 通过多个map任务并行执行来提高作业运行速度, 但如果map数量过少, 并行量低, 作业执行慢,;如果map数过多, 资源有限, 也会增加调度开销. 因此, 根据输入产生合理的map数,为每个map分配合适的数据量, 能有效的提升资源利用率, 并使作业运行速度加快. InputFormat这个类是用来处理Map的输入数据的,原创 2015-03-13 08:59:39 · 1811 阅读 · 0 评论