Hadoop总结
Hadoop的优缺点
Hadoop的优点
1、高可用性:Hadoop底层维护多个数据副本,如果Hadoop某个计算元素或存储出现故障,也不会导致数据丢失
2、高扩展性:在集群间分配任务数据,可方便扩展数以千记的节点
3、高效性:在MapReduce的思想下,Hadoop是并行工作,以加快任务处理的速度
4、高容错性:能够自动将失败的任务重新分配
Hadoop的缺点
1、Hadoop不适用于低延迟数据访问。
2、Hadoop不能高效存储大量小文件。
3、Hadoop不支持多用户写入并任意修改文件。
Hadoop是什么
1、Hadoop是一个由Apache基金会开发的分布式系统基础架构
2、主要解决海量数据存储和海量数据的分析计算问题
3、Hadoop通常是指一个更广泛的概念——Hadoop生态圈
大数据技术生态体系
Hadoop组成
概述
1、HDFS:高可靠、高吞吐量的分布式文件系统
2、MapReduce:分布式的离线并行计算框架
3、YARN:作业调度与集群资源管理的框架
4、common:支持其他模块的工具模块
HDFS架构概述
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
MapReduce架构概述
1、Map阶段并行处理输入数据
2、Reduce阶段对Map结果进行汇总
YARN架构概述
1、ResourceManager
处理客户端请求、启动、监控ApplicationMaster、监控NodeManager、资源分配与调度
2、NodeManager
单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
3、ApplicationMaster
数据切分、为应用程序申请资源、并分配给内部任务、任务监控与容错。
4、Container
对任务运行环境的抽象、封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息
5、YARN架构图
Hadoop运行环境搭建
Hadoop运行模式
1、本地模式
不需要启用单独进程,直接可以运行,测试和开发时使用
2、伪分布模式
等同于完全分布式,只有一个节点
3、完全分布式模式
多个节点一起运行
1、虚拟机网络设置为NAT模式
2、修改主机名,IP地址
3、关闭防火墙 centos7
1、查看防火墙状态systemctl status firewalld.service
2、关闭防火墙状态(重启后自动打开)systemctl stop firewalld.service:
3、关闭防火墙开机自启:systemctl disable firewalld.service
4、安装JDK
1、卸载原有的JDK
2、用Xftp将JDK的安装包传输到虚拟机指定目录文件下
3、将JDK进行解压安装,配置环境变量/source
4、测试JDK是否安装成功
java -version
5、克隆虚拟机
1、创建完全克隆
2、修改主机名,IP地址
3、虚拟机之间互相配置免密登录
1、创建密钥:ssh-keygen -t rsa
2、分发密钥:ssh-copy-id 主机名或者IP地址
4、添加映射
在/etc/hosts文件中加入各个节点的IP地址
6、安装Hadoop
1、上传Hadoop压缩包,解压安装到指定目录
2、配置环境变量
source /etc/profile
3、修改配置文件
1、hadoop_env.sh添加JDK路径
2、slaves添加服役节点主机名
3、core-site.xml
配置namenode的地址,指定Hadoop运行时产生文件的存储目录
4、hdfs-site.xml
配置hdfs的副本数量
5、yarn-site.xml
配置reducer获取数据的方式,指定yarn的resource manager的地址
6、mapred-env.sh
配置MR运行在yarn上,配置历史服务器端地址,历史服务器web端地址
4、分发Hadoop安装包
scp -r hadoop node1:`pwd`
5、格式化hdfs
hdfs namenode -format
6、启动集群
7、配置集群常见问题
1)防火墙没关闭、或者没有启动yarn
2)主机名称配置错误
/etc/hosts
3)ip地址配置错误
4)ssh没有配置好
root
为了使用xsync脚本
atguigu
为了集群启动
5)root用户和atguigu两个用户启动集群不统一
6)配置文件修改不细心
7)未编译源码
8)datanode不被namenode识别问题
9)不识别主机名称
解决办法:
(1)在/etc/hosts文件中添加192.168.1.102 hadoop102
(2)主机名称不要起hadoop hadoop000等特殊名称
10)datanode和namenode进程同时只能工作一个。
datanode和namenode进程同时只能有一个工作问题分析.pptx
11)执行命令不生效,粘贴word中命令时,遇到-和长–没区分开。导致命令失效
解决办法:尽量不要粘贴word中代码。
12)jps发现进程已经没有,但是重新启动集群,提示进程已经开启。原因是在linux的根目录下/tmp目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
13)jps不生效。
原因:全局变量hadoop java没有生效,需要source /etc/profile文件。
14)8088端口连接不上