系列文章目录
hadoop大数据-HDFS分布式文件系统
一、hadoop简介
大数据主要两个点:分布式存储以及分布式计算,基本上计算的调度跟着存储走,因为迁移存储的成本高于计算 大数据是个生态,本次学习Hadoop的HDFS分布式文件系统 MapReduce离线计算 GFS演变成最底层的HDFS,整个上层的生态应用都是连得HDFS  CDH和HDP对于软件的兼容性和稳定性以及图形化的管理(帮你找到组件最优的搭配) 纯原生Apache,组件很多,你可能找不到最合适的组件搭配方法  分布式计算就是对海量数据的数据挖掘,从海量数据之间找到它们之间的联系,将有用的数据过滤出来存到关系型数据库中 Hadoop YARN 模块:整个分布式集群Hadoop大数据平台,开发人员提交计算任务,这些计算任务如何调度、监控、管理由该模块来处理(调度资源的模块) 集群的性能与管理器有着非常大的关系  
 运维主要在这块负责业务,上面模块主要是开发负责 整个生态由运维来维护 hadoop用法与Mfs不一样,它是通过api的方式来使用的 
二、Hadoop的搭建
官网:hadoop.apache.org 用普通用户部署   做软链接方便,升级也方便,直接修改软链接就行
   进入这个路径
 修改hadoop的环境变量  告诉其java_home和hadoop_home的位置
 hadoop部署分为3种: 本地独立模式 伪分布式模式 全分布式模式
2.1本地独立模式

启动hadoop 
input存放准备录入的数据
  output是输出目录,input目录提前创建,但是Output不要提前创建  
2.1伪分布式模式的搭建
伪分布式模式:节点只有一个,运作方式是分布式的  
首先需要配置免密,因为通过免密登录work结点启动hadoop相应的进程    在这个路径下  里面定义的是Master  Localhost是master,这块地址时HDFS的master地址  ssh localhost ssh server1 都需要免密  在这个路径下  master和worker在一个节点上面  修改其副本数,默认情况下是3个  本地只有1个结点,所以副本数只能设置为1   做格式化在二进制命令那块  如果没有指定,默认的数据目录  启动脚本,该路径放了很多脚本,该脚本dfs.sh只启动HDFS相关的脚本  java的进程
    HDFS分布式,NAMENODE就是master,secondarynamenode是主节点故障后接管(可以帮主节点定期做元数据日志的合并,生成新的镜像文件),所有数据结点上的进程就叫datanode  
自带图形化的接口
  指令的用法

查看分布式文件系统的概况  默认情况下,没有家目录
  
该目录创建在分布式文件系统中
 上传input目录
  一旦称为分布式后,数据来源,存是分布式系统存,取也是分布式系统取,所有Input和output目录没有用了
 统计input里面的词频输出到output,input ouput已经删掉了,所以它们读取的时候都是读取的分布式文件系统里面的  没有存到本机output,因为整个运作都是分布式的   Replication副本数 block size 是可以设定的  存在block0,在结点1上面
    将output从分布式文件系统下载出来 还原环境: 
三、完成分布式的搭建
完全分布式的环境搭建
分布式文件系统一定要全平台一致 需要3个虚拟机,server1为master,server2\3是worker结点 所有结点的配置要一样 如何实现同步?nfs共享 通过该方式都不需要配置java hadoop环境变量都一样 在server1\2\3安装这个nfs套件    将所有往里面写的都映射成为1000,这样保证所有结点的权限是一致的 
 server2/3都要创建这个用户,都是第一个用户,所以都是1000,id一定要一致,全平台一致  在结点2和3都挂载这个目录    而且结点1/2/3免密,因为把这个用户目录挂载过去了,公钥私钥都一样

避免冲突将原先的数据删掉

完全分布式的配置
进入这个路径
   写主机名字必须有解析 
 两个数据结点,副本可以设置为2   格式化   启动服务 在1启动namenode在2/3通过免密启动相应的进程     上传数据默认会传入用户主目录/user/hadoop   比单机版伪分布式快,因为有2个结点 
四、hadoop结点扩容
再开启一个虚拟机4  

进入这个路径
 
     下线在配置文件加入这个参数   文件名自己指定   宿主机要加解析  刷新结点  server2将数据迁移到其他结点并且下线
强制server2下线 
五、HDFS工作原理
CS结构 集群默认是3个副本 由于HDFS block大些所以小文件适合Mfs,大文件适合HDFS,内存的占用和文件数量有关和大小无关,小文件多的话会造成内存负担大 HDFS不适合随时更改文件 mfs适合随时更改,挂载上去,随时都可以改   副本会存入离主机最近的地方
列表顺序: 客户端和dn不在同一节点,hadoop有机架感应机制,第一个副本随机存入一个机架,第二个第三个副本存入不是第一个副本的机架的不同dn上面 客户端和dn在同一节点,第一个副本存在本机,第二个第三存在不同第一个机架的不同dn上面  根据顺序发挥列表
 漫画图解原理:https://cloud.tencent.com/developer/article/1481758
六、hadoop分布式计算
 
重启server2作为dn 
进入这个路径
   
 启动脚本
 RM资源管理器,NN上开启RM  NM结点管理器,所有dn都会开启NM 
 客户端就是开发人员所用的开发工具

七、hadoop高可用部署
7.1hadoop高可用部署条件及原理
需要5台虚拟机 NN和RS都是单点,NN挂了(所有原数据记录),hadoop就挂了 hadoop官方自带的hadoop高可用套件 启动高可用后,SN就不再启动了 
网上的文档下载到本地 
底下的hadoop

 实际生产NN和RM不在同一机器上,都是资源消耗多的

7.2hadoop高可用部署环境
环境: 停用所有相关进程 
 全部停掉  不要当前的数据对以后的集群造成影响    

   在server1上面做,因为server1是NFS输出端,其它结点做还是会回传回来,慢 1和5做高可用,234做zookeeper集群jn日志结点dn和NM
7.3zookeeper集群的部署
所有结点必须有解析 首先部署3台zookeeper 
主配置文件zoo.cfg
 
.1.2.3是服务器的编号

第一个端口号是Leader和follower通信,Leader是随机选举的
 在结点2/3/4都这样做,id对应2/3/4    id同步  启动服务  同理2/3/4 
    监听端口2181 
7.4hadoop的配置
hadoop集群只能有一个master  进入这个路径
  不能写一个固定的Ip,要写一个浮动的 
谁是当前的master是由zk集群确定的
  这个masters和刚才修改的NN的名字保持一致,masters 
 Msater的机器叫h1h2,这个可以自己定义,都是masters要注意 
 
图形化接口9870
 IP 
  NN共享存储,但是是分布式的
 日志结点2/3/4端口8485
         在server2/3/4
 启动成功    
  格式化zk  通过免密也启动5  21752是故障切换器  Leader查看谁是master(原数据)  谁先向zk注册谁是active master 
7.5高可用测试
主机  备机 热备机制完成
用法和之前一样    部分截图   
 部分截图   高可用部署成功
    恢复   
|