详细教程:Hadoop之HDFS:Hadoop分布式文件系统–具体知识点
前面稍微简单点,主要是环境扫盲,讲了开发环境,以及运行安装环境。
nutch:全网爬虫项目
主要是想要抓取全网的网页,回来做搜索引擎lucene
抓取回来的数据很多,如何存储,如何计算
google做搜索做的最好的
如果想要快速的学习IT技术,科学上网必不可少
参见了谷歌的开源的三篇论文:谷歌的三驾马车 GFS Mapreduce BigTable
Doug Cutting 大神 在全世界开源排行榜上有名的
hadoop框架 08年开源提供给apache,然后就一路火了
衍生出来了周边的很多生态框架
造成hadoop技术是一个生态圈
2013年的时候国内开始有大数据的迹象
2008年淘宝就开始引入了分布式计算的框架hadoop
可有的选择性很多:阿里的大数据平台maxComputer 腾讯的大数据平台 华为大数据平台 星环大数据平台(国内的政府,银行等机构用的比较多) ClouderaManager(6.x的版本以及开始收费了) Ambari 类似于CM这样的一个东西(国内一些互联网公司用的还行)
很多一些大的公司选择自研大数据平台:大数据平台开发工程师 纯粹技术性的岗位
以上这些都是各种基于hadoop的各种大数据平台
学习大数据的生态从hadoop 开始
hadoop是一个分布式的框架:
由三个模块组成:分布式存储HDFS、分布式计算MapReduce、资源调度引擎Yarn
hdfs:分布式文件系统
文件系统:管理计算机硬盘上面的各种文件 avi文件,torrent文件 各种文件等等
操作系统,windows操作系统:文件管理系统
主节点:namenode 主要负责管理整个集群,以及维护集群当中的元数据信息
从节点:datanode 主要用于保存数据,说白了就是一块硬盘
yarn:资源调度平台
什么是资源:计算机当中比较珍贵的都算作资源 内存 CPU
硬盘:当然也算,但是不是太珍贵
主从结构:
主节点:resourceManager 主要用于接收任务,分配资源
从节点:nodeManager 主要用于计算任务,执行任务等等
分布式文件存储系统:将所有的数据一视同仁,抽象成为一个个的block块 ,block块其实就是一块块的文件
hdfs如何实现分布式文件的存储:都是抽象成为block块
blockpool:专门用于管理block块 类似于一个水桶,水桶里面最多可以装128斤水,但是你也可以只装1斤
hadoop1.x当中,block块默认是64M
hadoop2.x当中,block块默认是128M
hadoop2.x当中,block块默认是256M
可以配置的
表示可以存放文件的大小
马晓环:磁盘阵列吗
磁盘阵列一般用于存放namenode元数据的信息
hdfs dfs -rm -skipTrash /xcall
使用这个命令,跳过hdfs的垃圾桶删除文件
hdfs dfs -rmr -skipTrash /hello.txt
Q&A
Q:生产环境hdfs数据每天是不是定时备份啊
A:有两个集群之间进行数据的同步,但是本来数据就是安全的,有数据的副本机制
Q:删除了,所有的副本数据不会马上删除吧》
A:删除的话,整个文件都会删掉
HDFS的代码的开发:需要我们来配置开发的环境
Q:最小副本数量要求 也说下呢
A:最小副本的数量是3 ,自己可以配置的dfs.replications,副本数配置的是2.5(奇葩)
Q:回收站的数据如何还原?
A:hdfs dfs -mv /user/hadoop/.Trash/Current/xcall /
具体教程可跳转这里
需要构建windows的开发环境:
1、需要在windows安装jdk
2、需要在windows安装maven
3、需要在windows安装idea
4、需要在windows配置hadoop的环境变量
在windows当中开发代码去访问linux当中的hadoop集群
涉及到跨平台的问题
需要在windows当中安装hadoop的客户端的配置
Q:mac的话会有跨平台问题吗,还需要在mac配置hadoop吗?
A:macn不存在跨平台的问题
Q:替换bin和拷贝hadoop.dll的原因是啥
A:替换bin,里面有一个winutils.exe文件是需要的,hadoop.dll是一个windows下面的一个可执行脚本文件
Q:杨俊:官网有下载么,以后去哪升级
A:升级哪一个软件啊???
Q:windows必需安装hadoop环境才能开发吗? 可以直接在windows下的idea链接linux下的hadoop?
A:不行的,必须配置,不然后面写其他的代码,还会有问题的。只能通过端口远程访问,访问linux的hadoop也是通过端口远程访问
Q:以前安装的JDK和maven移动一下目录重新配一下环境变量,不受影响吧,现在放的地方有点乱
A:没问题
Q:windows的Hadoop版本与集群的Hadoop版本不一样行不行
A:可以,没问题,只要你的有hadoop.dll以及winutils.exe文件即可
Q:hadoop-3.1.4.tar解压不了,我用的7Z
A:试试看其他的解压缩工具
Q:JAVA代码还是scala
只能写java代码
实操:
IDEA查看Java源码技巧
DEA一些代码快捷键的生成方法,欢迎大家补充,提供学习使用
运行报了个错
https://blog.csdn.net/weixin_45077780/article/details/107329186
https://www.jianshu.com/p/ea2de77eb9d4(采用了这个方法)
https://my.oschina.net/u/4266655/blog/3999399
结构并不是这个问题
java.net.ConnectException: Call From DESKTOP-BV4G06A/172.17.80.113 to node01:8080 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Q:快捷顺带讲了,操作太快了,没玩过IDEA
file:/// 本地文件系统
分布式文件系统是 hdfs://node01:8020
Q:hdfs快 还是fdfs快
A:fastDFS是一个文件存储系统;hdfs是一个分布式文件系统:
fastDFS更快点,hdfs重在存储海量的数据,hdfs上面的文件都是顺序读写的
断点续传的功能:类似于百度网盘的功能
可以记录传输了都少个字节,下一次继续上一次的字节数据读取
namenode以及secondaryNamenode功能解析
DanielCry:这些代码是不是用Python也能做?
小兔弗雷迪:我可是要改hadoop源码的男人,怎么能不搞?
一定要搞,而且还要搞到底
Q:知识点,面试点内容,也讲讲
A:面试点:小文件的解决方案,读写文件的过程等等()
namenode主要是做元数据信息的管理:
**元数据信息:**描述数据的数据
为了保证元数据信息的安全的问题,引入了fsimage文件 ===》 其实就是类似于元数据信息某一个时刻的快照
为了解决平时操作元数据的记录:引入了edits文件
Q:拍照的时候edits会清空么
A:做快照的时候,edits文件会同步给secondaryNamenode,老的edits文件会被删掉
Q:snn检查时间可以更改么?
A:可以的,可以配置,默认两个条件去检查进行合并
1、时间达到1个小时合并一次
2、edits文件操作次数达到100W次
Q:跟redis持久化挺像的
A:对的,redis的持久化rdb和aof
Q:namenode内存要大
A:secondAryNamenode内存也要大
Q:老王,这个频率在哪个文件里配置
A:有配置文件可以改的
Q:修改完不会实时生效?每小时扫描以后才生效?
A:修改完重启hdfs的服务生效
Q:要满足的条件可以设置么
A:可以设置
Q:edits没有被删掉?
A:历史的数据的edits不会马上被删掉
:比如改成两个小时
Q:HA环境都用JournalNode合并editslog和fsimage吧
A:不是的,HA环境,使用的是journalNode来保存edits的共享文件,实时的进行同步到其他的standBy的namenode集群节点
Q:secondary是一个单独的节点吗
A:是滴,是一个进程,一般实际工作当中如果用到了,放在一台单独的服务器上面
Q:生产会这么用吗
A:测试可能会这么用,生产环境一般都做高可用
Q:jn有一个节点数据人为删除,能恢复么?
A:如果在垃圾站可以恢复,如果没了就恢复不了啦
Q:还是没太弄明白,为什么要在windows环境下配置hadoop才能操作linux下的hadoop,
我一直以为直接引入jar包,然后链接hadoop的端口就可以操作了,到底这个dll文件做 了什么事情。
A:dll是一个脚本配合winutils.exe,使用window模拟了一个linux的环境
Q:我们搭建的hadoop集群没有配置secondaryNameNode吧?
A:有的,我们没有配置HA,太吃内存了
Q:我们之前安装的是hadoop集群 还是HDFS集群
A:之前安装的是hadoop集群,包含了hdfs以及yarn的集群
Q:做hadoop集群时namenode datanide都配置了相同的内存,实际部署应该是namenode要配很大的内存吗
A:对的,namenode大内存,datanode大磁盘
Q:要扩展hdfs 机器 还需要扩展 hadoop吗
A:需要的
Q:mac怎么搞
A:mac不用搭建开发环境,安装idea即可
Q:secondarynode和journalnode是包含于的关系么
Q:环境配置需要 全部理解吗?
A:不用理解,照着做一遍即可
http://www.dayanzai.me/
软件下载网站
Q1:map reduce过程中,shuffle failed可能是什么原因造成的?Failed Shuffles=0
A1:原因可能有很多:网络延迟太大,数据的序列化和反序列化失败
Q2:公司的环境可以吗?版本不太一样
A2:只要大的版本差别不大即可
Q3:企业是不是用HA集群了,有两个主节点,不然一个主节点那台机器挂了不都是没了
A3:对的,hadoop3.x 当中支持多个namenode,可以不止有两个
Q4:namenode和DataNode哪个是做数据处理的,哪个是做数据收发的
A4:namenode主要是做客户端的请求的处理
datanode与客户端进行通信,做数据的读取和写入的过程
hadoop环境配置出现的问题
环境变量的用户变量与系统变量的区别