Hadoop的安装及运行配置

尚硅谷大数据技术之Hadoop(入门)
讲师:大海哥
官网:www.atguigu.com
V1.2
一、从Hadoop框架讨论大数据生态
1.1 Hadoop是什么
1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构
2)主要解决,海量数据的存储和海量数据的分析计算问题。
3)广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈
大数据集群.jpg
1.2 Hadoop发展历史
1.3 Hadoop三大发行版本:
Apache、Cloudera、Hortonworks
1)Apache版本最原始(最基础)的版本,对于入门学习最好。
2)Cloudera在大型互联网企业中用的较多。
3)Hortonworks文档较好。
1.4 Hadoop的优势
1)高可靠性:因为Hadoop假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理。
2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
4)高容错性:自动保存多份副本数据,并且能够自动将失败的任务重新分配。
1.5 Hadoop组成
概述
1)Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统。
2)Hadoop MapReduce:一个分布式的离线并行计算框架。
3)Hadoop YARN:作业调度与集群资源管理的框架。
4)Hadoop Common:支持其他模块的工具模块。
Hadoop组成.pptx
1.5.1 HDFS架构概述
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
NameNode1.png
NameNode2.png
DataNode1.png
DataNode2.png
1.5.2 YARN架构概述
1)ResourceManager(rm):
处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
2)NodeManager(nm):
单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
3)ApplicationMaster:
数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
4)Container:
对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
1.5.3 MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总
1.6 大数据技术生态体系
大数据技术生态体系.pptx
1.7 推荐系统框架图
推荐系统框架图.pptx
二、Hadoop运行环境搭建
2.1 虚拟机网络模式设置为NAT
尚硅谷大数据技术之虚拟机网络模式设置为NAT.doc
2.2 克隆虚拟机
尚硅谷大数据技术之克隆虚拟机.doc
2.3 修改为静态ip
尚硅谷大数据技术之修改为静态ip.doc
2.4 修改主机名
尚硅谷大数据技术之修改主机名.doc
2.5 关闭防火墙
1)查看防火墙开机启动状态
chkconfig iptables --list
2)关闭防火墙
chkconfig iptables off
2.6 在opt目录下创建文件
尚硅谷大数据技术之在opt目录下创建文件.doc
2.7 安装jdk
1)卸载现有jdk
2)用filezilla工具将jdk、Hadoop-2.7.2.tar.gz导入到opt目录下面的software文件夹下面
3)在linux系统下的opt目录中查看软件包是否导入成功。
4)解压jdk到/opt/module目录下
5)配置jdk环境变量
(1)先获取jdk路径:
(2)打开/etc/profile文件:
(3)保存后退出:
:wq
(4)让修改后的文件生效:
(5)重启(如果java –version可以用就不用重启):
6)测试jdk安装成功
2.8 安装Hadoop
1)进入到Hadoop安装包路径下:
2)解压安装文件到/opt/module下面
3)查看是否解压成功
4)配置hadoop中的hadoop-env.sh
(1)Linux系统中获取jdk的安装路径(可以使用echo JAVA_HOME,也可以进入到jdk安装目录bin下,使用命令 pwd 获取路径)
(2)修改hadoop-env.sh文件中JAVA_HOME 路径
5)将hadoop添加到环境变量
(1)获取hadoop安装路径:
(2)打开/etc/profile文件:
(3)保存后退出:
:wq
(4)让修改后的文件生效:
(5)重启(如果hadoop命令不能用再重启):
三、Hadoop运行模式
概述
1)官方网址
(1)官方网站:
http://hadoop.apache.org/
(2)各个版本归档库地址
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
(3)hadoop2.7.2版本详情介绍
http://hadoop.apache.org/docs/r2.7.2/
2)Hadoop运行模式
(1)本地模式(默认模式):
不需要启用单独进程,直接可以运行,测试和开发时使用。
(2)伪分布式模式:
等同于完全分布式,只有一个节点。
(3)完全分布式模式:
多个节点一起运行。
3.1 本地文件运行Hadoop 案例
3.1.1 官方grep案例
1)创建在hadoop-2.7.2文件下面创建一个input文件夹
2)将hadoop的xml配置文件复制到input
3)执行share目录下的mapreduce程序
4)查看输出结果
3.1.2 官方wordcount案例
1)创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
2)在wcinput文件下创建一个wc.input文件
3)编辑wc.input文件
4)回到hadoop目录/opt/module/hadoop-2.7.2
5)执行程序:
6)查看结果:
3.2 伪分布式运行Hadoop 案例
3.2.1 HDFS上运行MapReduce 程序
1)分析:
(1)准备1台客户机
(2)安装jdk
(3)配置环境变量
(4)安装hadoop
(5)配置环境变量
(6)配置集群
(7)启动、测试集群增、删、查
(8)在HDFS上执行wordcount案例
2)执行步骤
(1)配置集群
(a)配置:hadoop-env.sh
Linux系统中获取jdk的安装路径:
修改JAVA_HOME 路径:
(b)配置:core-site.xml
(c)配置:hdfs-site.xml
(2)启动集群
(a)格式化namenode(第一次启动时格式化,以后就不要总格式化)
(b)启动namenode
(c)启动datanode
(3)查看集群
(a)查看是否启动成功
(b)查看产生的log日志
(c)web端查看HDFS文件系统
(4)操作集群
(a)在hdfs文件系统上创建一个input文件夹
(b)将测试文件内容上传到文件系统上
(c)查看上传的文件是否正确
(d)在Hdfs上运行mapreduce程序
(e)查看输出结果
命令行查看:
浏览器查看
浏览器查看.png
(f)将测试文件内容下载到本地
(g)删除输出结果
3.2.2 YARN上运行MapReduce 程序
1)分析:
(1)准备1台客户机
(2)安装jdk
(3)配置环境变量
(4)安装hadoop
(5)配置环境变量
(6)配置集群yarn上运行
(7)启动、测试集群增、删、查
(8)在yarn上执行wordcount案例
2)执行步骤
(1)配置集群
(a)配置yarn-env.sh
配置一下JAVA_HOME
(b)配置yarn-site.xml
(c)配置:mapred-env.sh
配置一下JAVA_HOME
(d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
(2)启动集群
(a)启动resourcemanager
(b)启动nodemanager
(3)集群操作
(a)yarn的浏览器页面查看
http://192.168.1.101:8088/cluster
(b)删除文件系统上的output文件
(c)执行mapreduce程序
(d)查看运行结果
3.2.3 修改本地临时文件存储目录
1)停止进程
2)修改hadoop.tmp.dir
[core-site.xml]
3)格式化NameNode
4)启动所有进程
5)查看/opt/module/hadoop-2.7.2/data/tmp这个目录下的内容。
3.2.4 Hadoop配置文件说明
Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
(1)默认配置文件:存放在hadoop相应的jar包中
(2)自定义配置文件:存放在$HADOOP_HOME/etc/hadoop
3.3 完全分布式部署Hadoop
分析:
1)准备3台客户机(关闭防火墙、静态ip、主机名称)
2)安装jdk
3)配置环境变量
4)安装hadoop
5)配置环境变量
6)安装ssh
7)配置集群
8)启动测试集群
3.3.1 虚拟机准备
详见2.2-2.3章。
3.3.2 主机名设置
详见2.4章。
3.3.3 scp
1)scp可以实现服务器与服务器之间的数据拷贝。
2)案例实操
(1)将hadoop101中/opt/module和/opt/software文件拷贝到hadoop102、hadoop103和hadoop104上。
(2)将192.168.1.102服务器上的文件拷贝到当前用户下。
(3)实现两台远程机器之间的文件传输(hadoop103主机文件拷贝到hadoop104主机上)
3.3.4 SSH无密码登录
1)配置ssh
(1)基本语法
ssh 另一台电脑的ip地址
(2)ssh连接时出现Host key verification failed的解决方法
问题再现
解决办法
2)无密钥配置
(1)进入到我的home目录
(2)生成公钥和私钥:
(3)将公钥拷贝到要免密登录的目标机器上
ssh-copy-id 192.168.1.102
免密登录原理.pptx
3).ssh文件夹下的文件功能解释
(1)~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key)
(2)id_rsa :生成的私钥
(3)id_rsa.pub :生成的公钥
(4)authorized_keys :存放授权过得无秘登录服务器公钥
3.3.5 rsync
rsync远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
(1)查看rsync使用说明
(2)基本语法
rsync -rvl p d i r / pdir/ fname u s e r @ h a d o o p user@hadoop host:$pdir
命令 命令参数 要拷贝的文件路径/名称 目的用户@主机:目的路径
选项
-r 递归
-v 显示复制过程
-l 拷贝符号连接
(3)案例实操
把本机/opt/tmp目录同步到hadoop103服务器的root用户下的/opt/tmp目录
3.3.6 编写集群分发脚本xsync
1)需求分析:循环复制文件到所有节点的相同目录下。
(1)原始拷贝:
rsync –rvl /opt/module root@hadoop103:/opt/
(2)期望脚本:
xsync 要同步的文件名称
(3)在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行,需要制定路径。
2)案例实操:
(1)在/usr/local/bin目录下创建xsync文件
(2)修改脚本 xsync 具有执行权限
(3)调用脚本形式:xsync 文件名称
3.3.7 编写分发脚本xcall
1)需求分析:在所有主机上同时执行相同的命令
xcall +命令
2)具体实现
(1)在/usr/local/bin目录下创建xcall文件
(2)修改脚本 xcall 具有执行权限
(3)调用脚本形式: xcall 操作命令
3.3.8 基于伪分布式部署集群
1)集群部署规划
2)配置文件
(1)core-site.xml
(2)Hdfs
hadoop-env.sh
hdfs-site.xml
slaves
(3)yarn
yarn-env.sh
yarn-site.xml
(4)mapreduce
mapred-env.sh
mapred-site.xml
3)在集群上分发以上所有文件
4)查看文件分发情况
3.3.9 集群启动及测试
1)启动集群
(0)如果集群是第一次启动,需要格式化namenode
(1)启动HDFS:
(2)启动yarn
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
2)集群基本测试
(1)上传文件到集群
上传小文件
上传大文件
(2)上传文件后查看文件存放在什么位置
文件存储路径
查看文件内容
(3)拼接
(4)下载
3)集群性能测试
写海量数据
读海量数据
3.3.10 Hadoop启动停止方式
1)各个服务组件逐一启动
(1)分别启动hdfs组件
(2)启动yarn
2)各个模块分开启动(配置ssh是前提)常用
(1)整体启动/停止hdfs
start-dfs.sh
stop-dfs.sh
(2)整体启动/停止yarn
start-yarn.sh
stop-yarn.sh
3)全部启动(不建议使用)
start-all.sh
stop-all.sh
3.3.11 配置集群常见问题
1)防火墙没关闭、或者没有启动yarn
2)主机名称配置错误
3)ip地址配置错误
4)ssh没有配置好
5)root用户和atguigu两个用户启动集群不统一
6)配置文件修改不细心
7)未编译源码
8)datanode不被namenode识别问题
四、Hadoop编译源码
尚硅谷大数据技术之Hadoop编译源码.doc

猜你喜欢

转载自blog.csdn.net/yhblog/article/details/83956801
今日推荐