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