hadoop学习笔记
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
yljphp
一个单纯的Phper
展开
-
博客中的一些配置
Hadoop集群配置hadoop102hadoop103hadoop104HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager NodeManagerNodeManagerip地址如下192.168.1.100 hadoop...原创 2019-04-01 13:30:10 · 26121 阅读 · 0 评论 -
集群群起脚本
ZK集群群起#!/bin/bashfor i in root@hadoop102 root@hadoop103 root@hadoop104do echo "============== $i ================" ssh $i '/opt/module/zookeeper-3.4.10/bin/zkServer.sh start'done集群jps查询...原创 2019-04-27 15:13:15 · 24994 阅读 · 0 评论 -
Hadoop CombineTextInputFormat 切片机制
背景默认情况下 TextInputformat 对任务的切片机制是按文件规划切片,不管文件多小,都会 是一个单独的切片,都会交给一个 maptask,这样如果有大量小文件,就会产生大量的 maptask, 处理效率极其低下。优化预处理最好的办法,在数据处理系统的最前端(预处理/采集),将小文件先合并成大文 件,再上传到 HDFS 做后续分析。CombineTextInputFormat...原创 2019-04-07 16:13:43 · 27642 阅读 · 2 评论 -
Hadoop FileInputFormat 默认切片机制
默认的切片机制简单地按照文件的内容长度进行切片切片大小,默认等于 block 大小**(Local模式默认32M,集群模式默认128M)**切片时不考虑数据集整体,而是逐个针对每一个文件单独切片源码分析Hadoop MapReduce Splits 切片源码分析及切片机制计算切片大小 computeSplitSize默认情况下,切片大小=blocksizeprotected...原创 2019-04-07 15:16:28 · 26696 阅读 · 1 评论 -
Hadoop MapReduce Splits 切片源码分析及切片机制
本文从Job提交,逐步分析Splits相关源码。文件路径 org/apache/hadoop/mapreduce/JobSubmitter.java// Create the splits for the jobLOG.debug("Creating splits at " + jtFs.makeQualified(submitJobDir));int maps = writeSplits...原创 2019-04-07 12:36:08 · 20566 阅读 · 3 评论 -
Hadoop MapReduce Job 提交流程
文章目录ensureState 确保状态setUseNewAPIconnectinitialize提交 jobgetStagingDirgetStagingAreaDirgetLoginUsermkdirsgetLocalHost & getNewJobIDcopyAndConfigureFileswriteSplitswriteConf(conf, submitJobFile)submi...原创 2019-04-06 18:55:50 · 23558 阅读 · 0 评论 -
Hadoop 自定义序列化
需求统计每一个手机号耗费的总上行流量、下行流量、总流量。数据如下。手机号ip上行流量下行流量状态13012345678153.31.146.17199580020013112345678193.179.2.1341024250120013512345678227.39.131.173123289020013312345678...原创 2019-04-06 11:53:54 · 24875 阅读 · 0 评论 -
Hadoop MapReduce WordCount 快速上手
需求统计一个文件中出现的各个单词个数。文件路径/Users/ylj/demo/input/hello.txt☁ input pwd/Users/ylj/demo/input☁ input cat hello.txtphpjava goscalaphpgo go gopython分析Mapper将mapTask传给我们的Text内容转换成String根据空格...原创 2019-04-05 17:37:32 · 25697 阅读 · 0 评论 -
Hadoop MapReduce 入门
定义Mapreduce 是一个分布式运算程序的编程框架,是用户开发“基于 hadoop 的数据分析 应用”的核心框架。Mapreduce 核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的 分布式运算程序,并发运行在一个 hadoop 集群上。优缺点优点MapReduce 易于编程。简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的 PC ...原创 2019-04-05 14:43:22 · 18921 阅读 · 0 评论 -
Hadoop HDFS Snapshots 快照
HDFS 快照(HDFS Snapshots)是文件系统在某个时间点的只读副本。可以在文件系统的子树或整个文件系统上创建快照。快照的常见用途主要包括数据备份,防止用户误操作和容灾恢复。HDFS 快照的实现非常高效:快照的创建非常迅速:除去 inode 的查找时间,时间复杂度为 O(1);仅在对快照进行修改时,才会消耗一些内存:内存使用 O(M),M 是被修改的文件或目录数;Datanod...原创 2019-04-03 18:10:10 · 24736 阅读 · 0 评论 -
Hadoop HDFS trash 回收站
HDFS回收站默认是不开启的。namevaluedescriptionfs.trash.interval0删除文件的存活时间,单位分钟,如果是0禁用回收站;可以在服务端及客户端配置此参数;如果服务端禁用了,则检查客户端配置;如果服务端启用了,则忽略客户端配置fs.trash.checkpoint.interval0垃圾检查点之间的分钟数,应小于或等于fs.tr...原创 2019-04-03 17:17:01 · 25652 阅读 · 0 评论 -
HDFS API 操作之文件详情查看、文件和文件夹判断
文件详情查看@Testpublic void testListFiles() throws Exception { // 1 获取文件系统 Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), conf, "r...原创 2019-04-02 00:14:18 · 28412 阅读 · 0 评论 -
Hadoop HDFS archive 存档
hdfs 存储小文件弊端每个文件均按块存储,每个块的元数据存储在 NameNode 的内存中,因此hadoop 存储小文件会非常低效。因为大量的小文件会耗尽 NameNode 中的大部分内存。但注意,存储小文件所需要的磁盘容量和存储这些文件原始内容所需要的磁盘空间相比也不会增多。例如, 一个 1MB 的文件以大小为 128MB 的块存储,使用的是 1MB 的磁盘空间,而不是 128MB。HAR...原创 2019-04-03 16:21:01 · 27020 阅读 · 0 评论 -
HDFS NameNode DataNode 多目录配置
现在目录结构NameNodeNameNode 的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。配置 hdfs-site.xml<property> <name>dfs.namenode.name.dir</name> <value>file:///${hadoop.tmp.dir}/dfs/name1,fi...原创 2019-04-03 13:35:14 · 28571 阅读 · 0 评论 -
Hadoop HDFS 退役旧节点
注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役。配置 dfs.hosts在服务器白名单中删除hadoop105[root@hadoop102 hadoop]# pwd/opt/module/hadoop-2.7.2/etc/hadoop[root@hadoop102 hadoop]# vim dfs.hosts配置 dfs.hosts.excl...原创 2019-04-03 12:59:37 · 26652 阅读 · 0 评论 -
Hadoop HDFS NameNode 和 SecondaryNameNode
目录文件NameNode首次格式化后运行一段时间SecondaryNameNode工作原理NameNode第一次启动 NameNode 格式化后,创建 fsimage 和 edits 文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。客户端对元数据进行增删改的请求。NameNode 记录操作日志,更新滚动日志。NameNode 在内存中对数据进行增删改查。...原创 2019-04-02 22:31:02 · 26449 阅读 · 0 评论 -
Hadoop HDFS 服役新节点
新增hadoop105,在原有集群基础上动态添加该数据节点。新增配置文件dfs.hosts在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建 dfs.hosts 文件[root@hadoop102 hadoop]# pwd/opt/module/hadoop-2.7.2/etc/hadoop添加如下主机名称(包含新服役的节点)...原创 2019-04-02 18:30:27 · 26493 阅读 · 0 评论 -
Hadoop HDFS 数据流
HDFS 写数据流程客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目 标文件是否已存在,父目录是否存在。NameNode 返回是否可以上传。客户端请求第一个 block 上传到哪几个 datanode 服务器上。NameNode 返回 3 个 datanode 节点,分别为 dn1、dn2、dn3。客户端通过 FSDat...原创 2019-04-02 14:29:22 · 26291 阅读 · 0 评论 -
HDFS 的 I/O 流操作
HDFS 文件上传@Testpublic void putFileToHDFS() throws Exception { // 1 获取文件系统 Configuration configuration = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000...原创 2019-04-02 00:34:25 · 26300 阅读 · 0 评论 -
HDFS API 操作之文件下载、文件删除、文件名更改
文件下载@Testpublic void testCopyToLocalFile() throws Exception { //1 获取文件系统 Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), conf,...原创 2019-04-02 00:03:57 · 27620 阅读 · 0 评论 -
HDFS API 操作之目录创建、文件上传、配置优先级
目录创建@Testpublic void testMkdir() throws Exception { //1 获取文件系统 Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:9000"), conf, "root");...原创 2019-04-01 22:01:16 · 27548 阅读 · 0 评论 -
Hadoop HDFS 集群安全模式
概述NameNode 启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的 fsimage 文件 和 一个空的 edits 日志。此时,NameNode 开始监听 DataNode 请求。但是此刻,NameNode 运行在安全模式,即 NameNode 的文件系统对于客户端来说是只读的。系统中的数...原创 2019-04-01 18:00:38 · 26672 阅读 · 0 评论 -
Hadoop HFDS 的 Shell 操作
文章目录语法详细用法catchgrpchmodchowncopyFromLocalcopyToLocalcpdudusexpungegetgetmergelslsrmkdirmovefromLocalmvputrmrmrsetrepstattailtesttexttouchz调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。所有的的FS shell命令使用URI路径...翻译 2019-04-01 21:18:26 · 26860 阅读 · 0 评论 -
Hadoop HDFS 概述
HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的应用处理带来了很多便利。背景随着数据...转载 2019-03-31 22:23:22 · 26242 阅读 · 0 评论 -
Hadoop HDFS 客户端测试
文章目录依赖测试demo1代码配置VM options查看测试demo2代码查看依赖<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <vers...原创 2019-03-31 16:24:11 · 26534 阅读 · 1 评论 -
Hadoop 集群时间同步
文章目录时间服务器配置检查 ntp 是否安装修改 ntp 配置文件修改/etc/sysconfig/ntpd 文件重新启动 ntpd其他机器配置测试同步网络时间时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时 的同步,比如,每隔十分钟,同步一次时间。时间服务器配置必须 root 用户!!!检查 ntp 是否安装[root@hadoop102 hadoop]#...原创 2019-03-31 13:02:16 · 26345 阅读 · 0 评论 -
Hadoop 集群群起
文章目录配置 slaves启动 HDFS启动 Yarn查看hadoop102hadoop103hadoop104HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager NodeManagerNodeManager配置 slaves/...原创 2019-03-31 12:09:00 · 27294 阅读 · 0 评论 -
Hadoop 集群单点启动
文章目录格式化 NameNode启动启动 HDFS查看格式化 NameNode如果集群是第一次启动,需要格式化 NameNode。//删除之前留下的data、log[root@hadoop102 hadoop-2.7.2]# rm -rf data/ logs/ [root@hadoop103 hadoop-2.7.2]# rm -rf data/ logs/[root@hadoop1...原创 2019-03-31 11:55:01 · 26016 阅读 · 0 评论 -
Hadoop 集群配置
文章目录集群部署规划配置核心配置文件hdfs 配置文件hadoop-env.shhdfs-site.xmlyarn 配置文件yarn-env.shyarn-site.xmlmapreduce 配置文件mapred-env.shmapred-site.xml分发配置集群部署规划hadoop102hadoop103hadoop104HDFSNameNode DataNod...原创 2019-03-31 11:51:12 · 25319 阅读 · 0 评论 -
编写集群分发脚本 xsync
#!/bin/bash#1 获取输入参数个数,如果没有参数,直接退出 pcount=$#if((pcount==0)); thenecho no args; exit;fi#2 获取文件名称 p1=$1 fname=`basename $p1` echo fname=$fname#3 获取上级目录到绝对路径 pdir=`cd -P $(dirname $p1); pwd` ...原创 2019-03-31 11:44:59 · 26740 阅读 · 0 评论