![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
五角钱的程序员
这个作者很懒,什么都没留下…
展开
-
Hadoop序列化
1 序列化概述1.1 什么是序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。1.2 为什么要序列化一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。1.3 为什么不用Java的序列化Java的序列化原创 2020-08-18 17:46:25 · 4675 阅读 · 0 评论 -
WordCount案例实操
1.需求在给定的文本文件中统计输出每一个单词出现的总次数(1)输入数据(2)期望输出数据1lin 1shi 2wo 2xiang 1xinyue 22.需求分析按照MapReduce编程规范,分别编写Mapper,Reducer,Driver,如图所示。3.环境准备(1)创建maven工程(2)在pom.xml文件中添加如下依赖<dependencies> <dependency> <groupId>junit<原创 2020-08-18 01:54:43 · 5587 阅读 · 0 评论 -
快照管理
1. 快照相当于对目录做一个备份。并不会立即复制所有文件,而是记录文件变化。(1)hdfs dfsadmin -allowSnapshot 路径 (功能描述:开启指定目录的快照功能)(2)hdfs dfsadmin -disallowSnapshot 路径 (功能描述:禁用指定目录的快照功能,默认是禁用)(3)hdfs dfs -createSnapshot 路径 (功能描述:对目录创建快照)(4)hdfs dfs -createSnapshot 路径 名称 (功能描原创 2020-08-17 17:59:14 · 4742 阅读 · 0 评论 -
回收站
开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。1.回收站参数设置及工作机制一、开启回收站功能参数说明:1、默认值fs.trash.interval=0,0表示禁用回收站;其他值表示设置文件的存活时间。2、默认值fs.trash.checkpoint.interval=0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。3、要求fs.trash.checkpoint.interval<=fs.trash原创 2020-08-17 17:05:18 · 4478 阅读 · 0 评论 -
小文件存档
1、HDFS存储小文件弊端每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此HDFS存储小文件会非常低效。因为大量的小文件会耗尽NameNode中的大部分内存。但注意,存储小文件所需要的磁盘容量和数据块的大小无关。例如,一个1MB的文件设置为128MB的块存储,实际使用的是1MB的磁盘空间,而不是128MB。2、解决存储小文件办法之一HDFS存档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入HDFS块,在减少NameNode内存使用的同时,允许对文件进行透明的访问。具体原创 2020-08-17 16:07:20 · 9955 阅读 · 0 评论 -
集群间数据拷贝
1.scp实现两个远程主机之间的文件复制scp -r hello.txt root@hadoop103:/user/atguigu/hello.txt // 推 pushscp -r root@hadoop103:/user/atguigu/hello.txt hello.txt // 拉 pullscp -r root@hadoop103:/user/atguigu/hello.txt root@hadoop104:/user/atguigu //是通过本地主机中转实现两个远程主机的文件复原创 2020-08-17 15:42:30 · 4590 阅读 · 0 评论 -
Datanode多目录配置
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdjDataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本2.具体配置如下hdfs-site.xml<property> <name>dfs.datanode.data.dir</name><value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/df.原创 2020-08-17 00:19:11 · 4790 阅读 · 0 评论 -
退役旧数据节点
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdj添加白名单添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。配置白名单的具体步骤如下:(1)在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts文件[hadoop@hadoop102 hadoop]$ pwd/opt/module/hadoop-2.7.2/etc/hadoop[atghadoopigu@hado.原创 2020-08-17 00:12:51 · 4251 阅读 · 0 评论 -
服役新数据节点
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdj需求随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。环境准备(1)在hadoop104主机上再克隆一台hadoop105主机(2)修改IP地址和主机名称(3)删除原来HDFS文件系统留存的文件(/opt/module/hadoop-2.7.2/data和log)服役新节点具体步骤(1)直接启动DataNode,即可关联到集群.原创 2020-08-17 00:05:21 · 4278 阅读 · 0 评论 -
DataNode工作机制
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdjDataNode工作机制,如图所示。1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果.原创 2020-08-16 21:26:42 · 4327 阅读 · 0 评论 -
集群安全模式
概述1、NameNode启动NameNode启动时,首先将镜像文件(Fsimage)载入内存,并执行编辑日志(Edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的Fsimage文件和一个空的编辑日志。此时,NameNode开始监听DataNode请求。这个过程期间,NameNode一直运行在安全模式,即NameNode的文件系统对于客户端来说是只读的。2、DataNode启动系统中的数据块的位置并不是由NameNode维护的,而是以块列表的形式存储在DataNode.原创 2020-08-16 18:12:59 · 4517 阅读 · 0 评论 -
NameNode故障处理
NameNode故障后,可以采用如下两种方法恢复数据。方法一:将SecondaryNameNode中数据拷贝到NameNode存储数据的目录;kill -9 NameNode 进程[hadoop@hadoop102 hadoop-2.7.2]$ kill -9 11772删除NameNode存储的数据(/opt/module/hadoop-2.7.2/data/tmp/dfs/name)[hadoop@hadoop102 hadoop-2.7.2]$ rm -rf /opt/modu原创 2020-08-16 17:30:25 · 4504 阅读 · 0 评论 -
CheckPoint时间设置
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdjCheckPoint时间设置(1)通常情况下,SecondaryNameNode每隔一小时执行一次。 [hdfs-default.xml]<property> <name>dfs.namenode.checkpoint.period</name> <value>3600</value></property>(2)一分钟检查一次操作次数,.原创 2020-08-16 16:34:54 · 4566 阅读 · 0 评论 -
Fsimage和Edits解析
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdj概念NameNode被格式化之后,将在/opt/module/hadoop-2.7.2/data/tmp/dfs/name/current目录中产生如下文件fsimage_0000000000000000000fsimage_0000000000000000000.md5seen_txidVERSION(1)Fsimage文件:HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和.原创 2020-08-16 16:20:29 · 4565 阅读 · 0 评论 -
NameNode和Secondary NameNode工作机制
参考尚硅谷hadoop 教程链接:http://i8n.cn/U4sxdj思考:NameNode中的元数据是存储在哪里的?首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的FsImage。这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致.原创 2020-08-16 15:34:29 · 4251 阅读 · 0 评论 -
5.6 NameNode多目录配置
NameNode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性具体配置如下(1)在hdfs-site.xml文件中增加如下内容<property> <name>dfs.namenode.name.dir</name><value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value></property.原创 2020-08-16 15:05:54 · 4243 阅读 · 0 评论 -
大数据技术之Hadoop(HDFS)第1章 HDFS概述
1 HDFS产出背景及定义1.1 HDFS产生背景随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。1.2 HDFS定义HDFS (Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。H原创 2020-08-14 14:35:47 · 4317 阅读 · 0 评论 -
HDFS的API操作
HDFS文件上传(测试参数优先级)1.编写源代码//1.文件上传 @Test public void testCopyFromLocalFile() throws URISyntaxException, IOException, InterruptedException { //1.获取fs对象 Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(原创 2020-08-12 16:31:51 · 4746 阅读 · 0 评论 -
HDFS的I/O流操作
上面我们学的API操作HDFS系统都是框架封装好的。那么如果我们想自己实现上述API的操作该怎么实现呢?我们可以采用IO流的方式实现数据的上传和下载。1 HDFS文件上传1.需求:把本地d盘上的xiaoyue.txt文件上传到HDFS根目录2.编写代码//需求:把本地d盘上的xiaoyue.txt文件上传到HDFS根目录@Testpublic void putFileToHDFS() throws URISyntaxException, IOException, InterruptedExce原创 2020-08-12 16:32:55 · 4408 阅读 · 0 评论 -
HDFS客户端操作(开发重点)
HDFS客户端环境准备1.根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:D:\hadoop\hadoop-2.7.2),如图所示。2.配置HADOOP_HOME环境变量,如图所示。3. 配置Path环境变量,如图3-6所示。4.创建一个Maven工程HdfsClientDemo1.2.3.4.4.创建一个Maven工程Hdfs208115.导入相应的依赖坐标+日志添加<dependencies> <dependen原创 2020-08-12 16:31:00 · 2479 阅读 · 0 评论 -
Linux和Windows下ping的区别
windowsPing 是Windows自带的一个DOS命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。该命令可以加许多参数使用,键入Ping按回车即可看到详细说明。Ping 命令可以用来验证与远程计算机的连接。ping的参数ping [-t][-a][-n count][-l length][-f][-i ttl][-v tos][-r count][-s count][-j computer-list] | [-k computer-list]转载 2020-08-12 16:24:24 · 4100 阅读 · 0 评论 -
普通人如何全面了解大数据的特点,意义和缺陷
参考尚硅谷Hadoop公开课教程1 大数据概念大数据(Big Data) : 指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。主要解决,海量数据的存储和海量数据的分析计算问题。按顺序给出数据存储单位: bit、 Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。1Byte= 8bit 1K= 1024Byte 1MB = 1024K1G= 1024M.原创 2020-08-09 14:26:52 · 2777 阅读 · 0 评论 -
HDFS的Shell操作(开发重点)
1.基本语法bin/hadoop fs 具体命令 OR bin/hdfs dfs 具体命令dfs是fs的实现类。2.命令大全[hadoop@hadoop103 hadoop-2.7.2]$ bin/hadoop fsUsage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <s原创 2020-08-08 23:37:13 · 2287 阅读 · 0 评论 -
完全分布式运行模式(开发重点)
分析:1)准备3台客户机(关闭防火墙、静态ip、主机名称)2)安装JDK3)配置环境变量4)安装Hadoop5)配置环境变量6)配置集群7)单点启动8)配置ssh9)群起并测试集群注:1),2),3),4),5)可参考之前的文章虚拟机准备1),2),3),4),5)可参考之前的文章编写集群分发脚本xsyncscp(secure copy)安全拷贝(1)scp定义:scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)(2)基本语法原创 2020-07-23 23:07:13 · 7942 阅读 · 0 评论 -
伪分布式运行模式
(1)配置集群(a)配置:hadoop-env.shLinux系统中获取JDK的安装路径:[hadoop@hadoop101 hadoop]$ vi hadoop-env.sh Linux系统中获取JDK的安装路径:[root@hadoop101 ~]# echo $JAVA_HOME/opt/module/jdk1.8.0_162修改JAVA_HOME 路径:export JAVA_HOME=/opt/module/jdk1.8.0_162(b)配置:core-site.xml原创 2020-07-15 22:39:58 · 3887 阅读 · 0 评论 -
3.Hadoop运行模式-本地模式
这篇文章是在之前文章的基础之上进行的Hadoop运行模式-本地模式必看1.hadoop运行环境搭建-虚拟机安装与配置(开发重点)2.虚拟机安装机安装JDK以及Hadoop(保姆级教程)官方Grep案例创建在hadoop-2.7.2文件下面创建一个input文件夹[hadoop@hadoop101 hadoop-2.7.2]$ mkdir input将Hadoop的xml配置文件复制到input[hadoop@hadoop101 hadoop-2.7.2]$ cp etc/hadoo原创 2020-07-13 20:10:01 · 3373 阅读 · 38 评论 -
hadoop运行环境搭建-虚拟机安装与配置(开发重点)
当开始着手实践 Hadoop 时,安装配置虚拟机环境往往会成为新手的一道门槛。尽管安装其实很简单,网站也有很多虚拟机安装安装配置教程,但由于对 Linux 环境不熟悉,书上跟官网上简略的安装步骤新手往往 Hold 不住。加上网上不少教程也甚是坑,导致新手折腾老几天愣是没装好,很是打击学习热情。(下面我将详细的介绍虚拟机安装与环境配置)一. CentOS 7安装教程:准备:软件:VMware Workstation镜像文件:CentOS-7-x86_64-DVD-1810.iso1、文件–新建虚拟机原创 2020-07-13 18:08:29 · 9597 阅读 · 1 评论 -
虚拟机安装机安装JDK以及Hadoop(保姆级教程)
在上一篇文章当中我们已经把虚拟机拟机的环境给搭建好了,下面我们将要继续搭建hadoop续搭建hadoop环境,安装jdk以及hadoop.在/opt目录下创建文件夹(1)在/opt目录下创建module、software文件夹[hadoop@hadoop101 /]$ sudo mkdir module[hadoop@hadoop101 /]$ sudo mkdir software(2)修改module、software文件夹的所有者cd[hadoop@hadoop101 opt]$ s原创 2020-07-13 17:11:11 · 12894 阅读 · 3 评论