1.什么是大数据(4v)

解决大量的数据进行存储和分析计算的方法模式

大量Volume:人类印刷文本大概200PB     历史总数据大概5EB

高速Velocity:IDC报告2025年数据使用量会达到163ZB,效率很重要

多样Variety:结构化数据\非结构化数据,包括音视频等多类型处理

低价值密度Value:如何快速对有价值数据提纯

2.Hadoop的三大版本:

Apache

Cloudera  对应产品CDH

Hortonworks  对应产品HDP

3.Hadoop的优势  (4高)

存:

高可靠;多副本分配多机器,故障不会丢数据

高扩展:可以加机器集群,分配任务数据,方便扩展节点

算:

高效性:分算和算MapReduce,并行工作,加快速度

高容错:自动重新分配失败的任务

4.Hadoop组成1.x和2.x\3.x版本区别

Hadoop1.x版本  HDFS(存)        MapReduce用于计算和资源调度

Hadoop2.x版本后    HDFS(存)           MapReduce用于计算,新增加一个Yarn用于资源调度

2.HDFS架构概述(存)

1.Hadoop  Distributed  File  System 的架构概述

1)存和读的基础,NameNode不能出问题,会影响所有数据

(相当与武功秘籍目录)

NameNode (nn):HDFS的核心(大哥)   主管所有存储文件的元数据信息,如文件名,目录结构,文件属性(文件权限)

以及每个文件的块列表和块所在的DataNode等位置信息.

2)DataNode(dn):HDFS中负责存储真正的数据(小弟),

以128M为限分块的方式存储,在本地文件系统存储文件块数据,以及块数据的校验和

(相当与武功秘籍)

3)Secondary NameNode(2nn):只能是NameNode的(秘书),

不可以替换NameNode(老板)的工作,分担NameNode的部分工作

每隔一段时间对NameNode元数据备份

 

3.YARN架构(调度资源)

1)ResourceManager(rm):管理分配整个集群的资源(大哥)

2)NodeManager(nm)管理单个机器(也称节点)资源(小弟)

3)Application Master(am):主管每个Job(MapReduce程序)的执行过程

专门负责client提交的job的工作,为应用申请资源并分配任务

任务的监控与容错

4)Container:容器,对需要的资源(内存,磁盘,cpu,网络)进行封装

4.MapReduce架构(计算过程)

1)Map(映射)阶段 分开  负责将计算的数据分布到多台机器进行并行计算 

2)Reduce(归约)阶段  汇总  负责将计算的结果汇总统计

 

5.生态体系

1)结构化\半结构化数据(数据来源)>数据传输 >到HDFS进行文件存储>对资源调度>进行计算(基于内存计算的有实时Flink) >任务定时调度工具(Azkaban  \  Oozie)>业务模型可视化应用

2)zookeeper(数据平台配置和调度)贯穿  数据传输到任务定时调度   流程

 

6.虚拟机环境(模板机不动)

1)安装虚拟机最小化安装

2)安装必要组件

3)修改网络

vim /etc/

4)修改主机名

VIM /etc/hostname

5)修改hosts映射

vim /etc/hosts

192.168.201.102   hadoop102

192.168.201.103   hadoop103

192.168.201.104   hadoop104

6)关闭防火墙服务

systemctl status firewalld

systemctl stop firewalld

systemctl is-enabled firewalld 查看是否自启

systemctl disable firewalld 关闭自启

7)创建atguigu用户,并配置root权限

useradd atguigu

passwd atguigu

id atguigu 查看用户

vim /etc/sudoers

set nu

91 shift + g跳转91行

atguigu   ALL=(ALL)  NOPASSWD:ALL  不需要输入密码

99行可以看第一次创建的用户

强制保存退出,较特殊

8)创建/opt/目录下创建两个目录,并将目录的owner 和group修改为atguigu

software:存放待安装的软件

module:存放安装后的软件

cd /opt/

mkdir software

mkdir module

chown -R atguigu:atguigu  module/   software/改变2个文件属主

改完reboot重启

 

linux中安装软件的常用方式

1)yum   :yum   install -y  xxxx

2)rpm    :

rpm  -ivh  xxx.rpm(安装)

rpm –qa | grep xxx(查询)

rpm -e –nodeps xxx(卸载)

3)上传安装包,解压使用

tar -zxvf  xxxx.tar.gz  -C path (指定tar包解压到path路径下)

tar -zcvf  xxx.tar.gz  files or dirs

4)编译源码安装

 

jar安装

1)上传安装包到/opt/software

2)解压到/opt/module

tar -zxvf

cd /opt/software

3)配置jdk的环境变量

建议在 /etc/profile.d/目录下创建xxx.sh文件,将环境变量配置到该文件中(登录式和非登录式都会循环该文件目录)

可以配置环境变量的位置 (登录式shell)/etc/ profile      (非登录式shell)~/.bashrc       /etc/bashrc.

sudo vim  

JAVA_HOME =  

PATH =$PATH:$JAVA_HOME/bin(Windows用;隔开一个路径,linux用:)

export 提升变成全局变量

4)让环境变量生效

断开重连或者 source /etc/profile

 

安装hadoop

1)解压

2)配置环境变量

3)目录结构

bin 常用命令

sbin 常用脚本

etc 存放hadoop的配置文件

share 存放hadoop的jar包

 

hadoop运行模式(开发重点)

本地模式

1)grep

在hadoop的安装目录下/opt/module/hadoop -3.1.3/下

创建input目录

mkdir input

拷贝文件 cp etc /hadoop/*.sh(xml )   input

执行案例

hadoop jar  share/hadoop/mapreduce/jar包路径 grep input  output ‘正则表达式'(output不可存在,否则报错)

查看结果

cat output /part-r-00000

 

2)wordcount

在hadoop安装目录下/opt/module/hadoop-3.1.3/下

创建 一个wcinput目录mkdir wcinput

床文件 touch wc.input

在文件输入内容

hadoop linux shell

shasha xiaojunjun dahai

jiao

banzhang  hangge

xue

hadoop linux java

php

在hadoop文件下 hadoop jar share/hadoop/mapreduce/路径  wordcount input  output’

常用的基础知识

systemctl stop/start/status/is-enabled/enable/disable/restart   服务名

电脑适配器vmnet8网卡占用的是网段的.1

 

 

Hadoop的运行模式(完全分布式)

完全分布式机器规划(3个副本)

1)理想情况

HDFS: NameNode (1个大哥)  DataNode(3个) SecondaryNamenode(1个)

 

Yarn: ResourceManager(1个大哥) NodeManager(3个,DataNode几个就几个要对datanode去计算)

2)现实情况:集群配置

hadoop102    hadoop103          hadoop104

NameNode    ResourceManager      secondaryNamenode

datanode      datanode             datanode

NodeManager    NodeManager      NodeManager

 

远程同步脚本

1)scp(安全拷贝): 全量同步

scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname

命令   递归       要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

站在102,复制到103 中的/opt/module

scp  -r  /opt/          hadoop103:opt/module

在104,将102 的拷贝到104中

scp -r atguigu@hadoop102:/opt/module    /opt/module

在103,将102的的hadoop3.1.3 拷贝到104中

scp  -r  atguigu@hadoop102:/opt/moudule     atguigu@hadoop104:/opt/module

2)rsync(远程同步): 差异性同步

scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname

命令   递归       要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

 

-a 归档拷贝

-v显示复制过程

3)同步脚本

脚本名  xsync.sh

脚本用法 xsync.sh  带同步文件1  带同步文件2….

把脚本写好放到环境变量里面可以直接调用

hadoop配置文件说明

1)默认的4个配置文件

core-default.xml

hdfs-default.xml

yarn-default.xml

mapred-default.xml

2)用户自定义配置文件

core-site.xml

hdfs-site.xml

yarn-site.xml

mapred-site.xml

搭建集群只需修改xxx-site.xml文件,hadoop运行先加载default,再加载site,site覆盖default同名的内容

启动集群

1)第一次启动,需要格式化namenode

hdfs namenode – format

2)hadoop102启动namenode

hdfs –daemon start namenode

3)时刻查看相关进程 

jps

jps -l

4)分别再   ……启动DataNode

hdfs –daemon start datanode

5) 补充 配置103 104 的环境变量

scp -r /etc/profile.d/my_env.sh root@hadoop103:/etc/profile.d

6)104启动  2nn

hdfs 

7)103 启动resourcemanager

8)102 3 4启动nodemanger

yarn –daemon start nodemanager

 

9)停止 集群:

hdfs –daemon stop xxx

yarn –daemon stop xxx

 

重复格式化namenode需要注意的问题

将每个datanode的数据删除,直接点操作,将hadoop目录下的data  logs目录全部删除

出问题看日志*3

1)明确日志所在的位置 通常情况下在当前框架目录下的logs目录中

2)如何查看: tail  -n 200    xxx.log  较少使用more less cat

格式化namenode新大哥有新id,集群老datanode的id不变,无法匹配namenode的id ,不认新大哥,所以直接删掉datanode,再格式化namenode

ssh  (security shell)无密码登录

1)存在的问题 :远程操作输入密码问题  集群启动停止需要不同机器做多个操作的问题

2)免密登录原理: 密钥对  相互解密的过程

server A                            server B

1.生成server A 的密钥对                    2.将Sever A 的 公钥授权给server B          

公A   私A

2.server A ssh登录 Server B                  3.B要验证A的身份

4.Server A通过私A解密为100                     如:随机生成数字100,通过公A加密 加密后结果发给serverA

5.将100 与Server A 和Server B  的session会话  通过md5加密   将100 与Server A 和Server B  的session会话  通过md5加密

的结果发送给Server B                    6.将自己加密的结果与Server A 的结果比对

 

自己写群起群停的封装脚本

 

配置历史服务器

 

常用端口号 

NameNode :8020 9820 9000

NameNode Web: 9870 (50070)

2NN web  :9868 (50090)

ResourceManager :8088

historyserver: 19888

解决2nn web端页面访问报js错误问题

1)看cdns帖子

2)修改文件

转自:
https://www.cnblogs.com/AiStocker/p/13790222.html