Hadoop
努力的凹凸曼
这个作者很懒,什么都没留下…
展开
-
Hadoop实战项目:小文件合并
项目背景 在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M),早期的版本所定义的小文件是64M,这里的hadoop-2.2.0所定义的小文件是128M。然而每一个存储在HDFS中的文件、目录和块都映射为一个对象,存储在NameNode服务器内存中,通常占用150个字节。 如果有1千万个文件,就需要消耗大约3G的内存空间。如果是10...原创 2018-03-30 20:40:02 · 8034 阅读 · 9 评论 -
Hadoop 3节点集群无法成功启动zookeeper
今天在集群上跑程序的时候遇到了zookeeper无法成功启动的问题,先分别启动了主节点和从节点的zookeeper进程,并且通过jps也看到zookeeper进程已经启动了,但通过指令查看进程状态的时候却提示的是没有启动。问题如下面几张图所示: 遇到问题后我立刻查看了进程的相关状态,并关掉进程重启,但是结果任然是不能成功启动。后来想到会不会是因为防火墙的问题,于是查看了以下防火墙的状态。果不...原创 2018-04-11 16:01:56 · 915 阅读 · 0 评论 -
MapReduce项目之气温统计
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅! 在本博文中,我们要学习一个挖掘气象数据的程序。气象数据是通过分布在美国全国各地区的很多气象传感器每隔一小时进行收集,这些数据是半结构化数据且是按照记录方式存储的,因此非常适合使用 MapReduce 程序来统计分析。 我们使用的数据来自美国国家气候数据中心、美国国家海洋和大气管理局(简称 NCDCNOAA),这些数据按...原创 2018-03-27 11:24:31 · 2406 阅读 · 0 评论 -
hadoop操作权限问题:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... u
今天想从Eclipse向hdfs上传文件时遇到了一个权限问题,日志如下: ERROR hive.log: Got exception: org.apache.hadoop.security.AccessControlException Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr...原创 2018-04-12 09:47:32 · 2146 阅读 · 0 评论 -
ERROR [org.apache.hadoop.util.Shell] - Failed to locate the winutils binary in the hadoop binary pat
错误日志如下:2018-04-11 16:23:26,935 DEBUG [org.apache.hadoop.metrics2.lib.MutableMetricsFactory] - field org.apache.hadoop.metrics2.lib.MutableRate org.apache.hadoop.security.UserGroupInformation$UgiMetric...原创 2018-04-11 17:23:06 · 3412 阅读 · 0 评论 -
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Wi
该错误和我的上一篇博文ERROR [org.apache.hadoop.util.Shell] - Failed to locate the winutils binary in the hadoop binary path一样是由于缺少文件引起的,错误日志如下:2018-04-11 16:32:28,514 INFO [org.apache.hadoop.mapreduce.JobSubmi...原创 2018-04-11 17:24:14 · 480 阅读 · 0 评论 -
MapReduce中的Join算法
在关系型数据库中 Join 是非常常见的操作,各种优化手段已经到了极致。在海量数据的环境下,不可避免的也会碰到这种类型的需求, 例如在数据分析时需要连接从不同的数据源中获取到数据。不同于传统的单机模式,在分布式存储下采用MapReduce 编程模型,也有相应的处理措施和优化方法。 现在假设有两个数据集:气象站数据库和天气记录数据库,并考虑如何合二为一。一个典型的查询是:输...原创 2018-05-09 10:34:16 · 513 阅读 · 0 评论 -
三节点Hadoop集群搭建
1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode、slavenode1和slavenode2。该过程参考上一篇博文CentOS6.5安装配置详解 2.Hadoop集群搭建(以下操作中三个节点相同的地方就只给出主节点的截图,不同的才给出所有节点的截图) 2.1 系统时间同步 使用date命令查看当前系统时间 系统时间同步[roo...原创 2018-04-20 18:07:16 · 4796 阅读 · 0 评论 -
Hadoop实战:reduce端实现Join
项目描述 现在假设有两个数据集:气象站数据库和天气记录数据库,并考虑如何合二为一。一个典型的查询是:输出气象站的历史信息,同时各行记录也包含气象站的元数据信息。 气象站和天气记录合并之后的示意图如下所示。测试数据 启动Hadoop集群,然后在hdfs中创建join文件夹用于存放测试数据station.txt和records.txt,他们分别代表气象站数据库和天...原创 2018-05-10 10:14:17 · 256 阅读 · 0 评论 -
通过Maven管理多个MapReduce项目
1. 配置Maven环境 首先检查Windows是否配置了maven,进入cmd命令行,输入mvn -version命令,如果出现下图所示的 情形则表示满意配置maven。 从浏览器进入maven官网,下载maven压缩包:http://maven.apache.org/download.cgi。下载完后将其解压的一个自定义目录,然后配置环境变量。 进入环境变量配置页面,新建一个MAVEN...原创 2018-04-25 11:37:07 · 440 阅读 · 0 评论 -
MapReduce 二次排序
默认情况下,Map 输出的结果会对 Key 进行默认的排序,但是有时候需要对 Key 排序的同时再对 Value 进行排序,这时候就要用到二次排序了。下面让我们来介绍一下什么是二次排序。二次排序原理 我们把二次排序主要分为以下几个阶段。 Map 起始阶段 在Map阶段,使用 job.setInputFormatClass() 定义的 InputFormat...原创 2018-05-10 16:38:13 · 307 阅读 · 0 评论 -
Hadoop文件压缩
1. Hadoop的文件压缩需求 文件压缩对于大容量的分布式存储系统而言是必须的,它能带来两个好处: 1)减少了文件所需的存储空间; 2)加快了文件在网络上或磁盘间的传输速度。2. Hadoop支持的压缩格式 首先看一下 Hadoop 常见压缩格式,如DEFLATE、Gzip、bzip2、LZO、LZ4、Snappy等。 1)gzip压缩 优点:压缩率比较高,而且压缩/解压速度也比较快...原创 2018-04-26 11:45:11 · 1202 阅读 · 0 评论 -
深入学习Hive应用场景及架构原理
Hive背景介绍 Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的。马云在退休的时候说互联网现在进入了大数据时代,大数据是现在互联网的趋势,而hadoop就是大数据时代里的核心技术,但是hadoop的mapreduce操作专业性太强,所以facebook在这些基础上开发了hive框架,毕竟世界上会sql的人比会java的人多的多,hive可以说是学...原创 2018-05-12 16:03:08 · 8448 阅读 · 1 评论 -
Zookeeper启动失败:java.net.BindException: Address already in use
错误日志如下:[hadoop@master zookeeper-3.4.5-cdh5.10.0]$ cat zookeeper.out 2018-05-15 01:29:21,036 [myid:] - INFO [main:QuorumPeerConfig@101] - Reading configuration from: /opt/modules/zookeeper-3.4.5-cdh5...原创 2018-05-14 19:55:39 · 3589 阅读 · 0 评论 -
Hadoop计数器
1. MapReduce计数器是什么 计数器是用来记录Job的执行进度和状态的,其作用类似于日志。我们可以在程序的某个位置插入计数器,记录数据或进度的变化情况。2. MapReduce计数器能做什么 计数器为我们提供了一个窗口,用于观察Job运行期间的各种细节数据,对MapReduce的性能调优很有帮助,MapReduce性能优化的评估大部分都是基于这些计数器Counter的数值来表现的。3....原创 2018-05-08 16:53:39 · 890 阅读 · 0 评论 -
bash:haoop:command not found
今天重新搭建了一个3节点的Hadoop集群,想着在上面测试一个MapReduce实例,然后就出现了以下错误: [hadoop@master hadoop-2.6.0]$ hadoop -bash: hadoop: command not found 出现这个错误的原因是没有配置环境变量,操作过程如下。 vi /etc/profile //权限不够时再前面加上sudo 进入配置文件后...原创 2018-04-10 17:07:26 · 716 阅读 · 0 评论 -
eclipse链接Hadoop集群时报错Error:Call From xxx/xxx.xxx.xxx.xxx to hostname1:9000 failed on connection excep
今天用eclipse连接Hadoop集群的时候突然给我报了这样一个错误:Error:Call From xxx/xxx.xxx.xxx.xxx to hostname1:9000 failed on connection exception:java.net.ConnectException:Connection refused:no further information;...如下图所示:...原创 2018-04-10 16:11:11 · 4389 阅读 · 2 评论 -
MapReduce的输入格式
1. InputFormat接口 InputFormat接口包含了两个抽象方法:getSplits()和creatRecordReader()。InputFormat决定了Hadoop如何对文件进行分片和接收, 它能够从一个 job 中得到一个 split 集合(InputSplit[]),然后再为这个 split 集合配上一个合适的 RecordReader(getRecordReader)来...原创 2018-03-31 10:40:15 · 1954 阅读 · 0 评论 -
Hadoop文件的序列化
1. 为什么要序列化 如图,一个活着的对象只存在于内存中,一旦断电就会消失。并且,在正常情况下,一个或者的对象无法直接通过网络发送到其他(远程)机器上。而序列化可以克服上述问题,它能存储对象,并完成其网络传输的任务。2. 什么是序列化 序列化是将对象转化为字节流的方法,或者说用字节流描述对象的方法。与序列化相对的是反序列化,即将字节流转化为对象的方法。 序列化由两个目的: 1)进程间通信;...原创 2018-03-31 15:29:44 · 527 阅读 · 0 评论 -
Hadoop 2.2.0单节点的伪分布集成环境搭建
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅!Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federation、YARN) 1)0.23.x 2)2.x 3)2.2.0 稳定版本 ...原创 2018-03-26 10:35:25 · 354 阅读 · 0 评论 -
初识Hadoop
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅!Hadoop是什么? Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,...原创 2018-03-27 11:11:07 · 734 阅读 · 0 评论 -
Hadoop体系结构
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅! 在前面的博文中,我已经介绍过Hadoop的基本概念了(见博文初识Hadoop),今天来介绍一下Hadoop的体系结构。 Hadoop的两大核心是HDFS和MapReduce,而整个Hadoop的体系结构主要是通过HDFS来实现分布式存储的底层支持的,并且它会通过MapReduce来实现分布式并行任务处理的程序支持。下面...原创 2018-03-27 11:12:57 · 909 阅读 · 0 评论 -
MapReduce编程入门实例之WordCount:分别在Eclipse和Hadoop集群上运行
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅!上一篇博文如何在Eclipse下搭建Hadoop开发环境,今天给大家介绍一下如何分别分别在Eclipse和Hadoop集群上运行我们的MapReduce程序!1. 在Eclipse环境下运行MapReduce程序(WordCount程序) 首先看一下我的项目结构和WordCount程序: 其中word.txt将作为我们测...原创 2018-03-27 11:22:47 · 672 阅读 · 0 评论 -
hadoop集群启动时DataNode节点启动失败
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅!错误日志如下:************************************************************/2018-03-07 18:57:35,121 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX ...原创 2018-03-27 11:22:12 · 842 阅读 · 0 评论 -
在Eclipse下搭建Hadoop开发环境
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅! 在前面的博文中博主展示了如何在虚拟机中搭建Hadoop的单节点伪分布集群,今天给大家介绍一下如何在Eclipse环境中搭建Hadoop的管理和开发环境,话不多说,下面我们就进入正题吧!1.JDK安装配置 如果还没有安装Eclipse的朋友们需要先安装并配置好JDK,再下载安装Eclipse,这些我相信大家走到这一步的时...原创 2018-03-27 11:21:25 · 973 阅读 · 0 评论 -
MapReduce作业的执行流程
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅!MapReduce任务执行总流程 一个MapReduce作业的执行流程是:代码编写 -> 作业配置 -> 作业提交 -> Map任务的分配和执行 -> 处理中间结果 -> Reduce任务的分配和执行 -> 作业完成,而在每个任务的执行过程中又包含输入准备 -> 任务执行 ->...原创 2018-03-27 11:20:05 · 3585 阅读 · 0 评论 -
Hadoop与分布式开发
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅! 分布式系统(也是分布式软件系统)是指在通信网络互联的多处理机体系结构上执行任务的系统,包括:分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。Hadoop是分布式软件系统中文件系统层的软件,它实现了分布式文件系统和部分分布式数据库系统的功能。Hadoop中的分布式文件系统HDFS...原创 2018-03-27 11:18:54 · 330 阅读 · 0 评论 -
Hadoop数据管理
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅! 本节主要从三方面介绍Hadoop数据管理:分布式文件系统HDFS、分部式数据库HBase和数据仓库工具Hive。1. HDFS的数据管理 HDFS是分布式计算的存储基石,Hadoop分布式文件系统和其他分布式文件系统由很多类似的特性: 1)对于整个集群有单一的命名空间; 2)具有数据一致性,都适合一次写入多次读取的...原创 2018-03-27 11:18:04 · 1537 阅读 · 0 评论 -
MapReduce基本流程与设计思想初步
这一批博文是博主由博客园搬移过来的,所以时间上可能存在混乱,希望大家见谅!1.MapReduce是什么? MapReduce是一种编程模型,用于大规模数据集的并行运算。它借用了函数式的编程概念,是Google发明的一种数据处理模型。 主要思想为:Map(映射)和Reduce(化简)。 一个Map/Reduce作业(Job)通常会把输入的数据集切分为若干独立的数据块,由Map任务(Task)...原创 2018-03-27 11:16:24 · 764 阅读 · 0 评论 -
解决Hadoop无法加载本地库的问题: Unable to load native-hadoop library for your platform
今天跑Hadoop程序时一直提示我无法加载本地库,然后就直接退出运行了,如下图所示。 原因是由于Apache提供的Hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己编译64位的版本。下载地址:http://dl.bintray.com/sequenceiq/sequenceiq-bin/。请下载好对应版本的.tar包,然后上传到Hadoop集群上,然后分别解压到$HA...原创 2018-04-14 20:31:56 · 3514 阅读 · 2 评论 -
YARN的架构及原理
1. YARN产生背景 MapReduce本身存在着一些问题: 1)JobTracker单点故障问题;如果Hadoop集群的JobTracker挂掉,则整个分布式集群都不能使用了。 2)JobTracker承受的访问压力大,影响系统的扩展性。 3)不支持MapReduce之外的计算框架,比如Storm、Spark、Flink等。 与旧MapReduce相比,YARN采用了一种分层的集群框...原创 2018-04-15 11:32:07 · 737 阅读 · 0 评论 -
Hadoop完全分布式环境下,DataNode进程正常启动,但是网页上不显示DataNode节点
Hadoop完全分布式环境下,上传文件到hdfs上时报错:19/05/15 11:03:12 WARN hdfs.DFSClient: DataStreamer Exceptionorg.apache.hadoop.ipc.RemoteException(java.io.IOException): File /wc_input/file1.txt._COPYING_ could only ...原创 2019-05-15 11:20:43 · 2864 阅读 · 2 评论