1、第1章 Hadoop初识Hadoop数据分析与应用课程概述终点起点12345672.Hadoop分布式集群3.MapReduce(一)5.Hadoop 高可用(一)4.MapReduce(二)6.Hadoop 高可用(二)7.Hadoop 项目实战1.Hadoop初识121234Hadoop 初识大数据简介及发展前景Hadoop 简介、生态圈简介及核心介绍 VMwareo 环境安装与 CentOS 安装Hadoop 单机环境安装配置和实现单词计数功能在 Linux 系统中配置 Java 运行环境和 SSH 免密登录Hadoop 单机环境安装配置和实现单词计数功能讲解时间:分钟技术讲解实践练习大
2、数据简介及发展前景1.生活中的大数据2.大数据简介3.大数据的发展历程和趋势451.1.1 生活中的大数据n大数据是下一个创新、竞争、生产力提高的前沿。世界经济论坛的报告认定:大数据为新财富,其价值堪比石油n未来物流n中科院青海盐湖研究所大数据运用n城市噪声地图n训练“人工智能”当大夫1.1.2 大数据简介n大数据(Big Data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。1.1.2 大数据简介n大数据的 4V 特点:Volume(大量)、Velocity(高速)、V
3、ariety(多样)和 Value(低价值密度)nVolume(大量):数据体量巨大nVelocity(高速):处理速度快nVariety(多样):数据类型繁多nValue(低价值密度):价值密度低、商业价值高1.1.2 大数据简介n大数据运用领域n 金融领域:大数据所带来的社会变革已经深入到人们生活的各个方面,金融创新离不开大数据,日常的出行、购物、运动、理财等更离不开大数据。n 安防领域:作为信息时代海量数据的来源之一,视频监控产生了巨大的信息数据。n 能源领域:能源大数据理念是将电力、石油、燃气等能源领域数据以及人口、地理、气象等其他领域数据进行综合采集、处理、分析与应用的相关技术与思想
4、。n 业务领域:大数据也更多地提升了业务流程的优化。n 医疗领域:大数据分析应用的计算能力让我们能够在几分钟内就可以解码整个 DNA,并且让我们可以制订出最新的治疗方案,同时可以更好地去理解和预测疾病,就好像人们戴上可以产生数据的智能手表一样,大数据同样可以帮助病人对于病情进行更好地治疗。n 电力行业领域:大数据对该行业的应用主要体现在智能电网上,通过获取人们的用电行为信息,分析其对智慧城市建设和智能电网的意义。1.1.3 大数据的发展历程和趋势n大数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率的增长和消费者盈余浪潮的到来。全
5、球首次将“大数据”划分为四大阶段,即“大数据”出现阶段、“大数据”热门阶段、“大数据”时代特征阶段和“大数据”爆发期阶段。n“大数据”出现阶段(19802008 年)n“大数据”热门阶段(20092011 年)n“大数据”时代特征阶段(20122016 年)n“大数据”爆发期阶段(20172022 年)1.1.3 大数据的发展历程和趋势n大数据未来的发展依然非常乐观。大数据的发展呈现八大趋势:n数据资源化将成为最有价值的资产n大数据在更多的传统行业的企业管理落地n大数据和传统商业智能融合,行业定制化解决方案将涌现n数据将越来越开放,数据共享联盟将出现n大数据安全越来越受重视,大数据安全市场将愈
6、发重要n大数据的发展能促进智慧城市发展,成为智慧城市的引擎n大数据的发展将催生一批新的工作岗位和相应的专业n大数据的发展能在多方位改善我们的生活讲解时间:分钟技术讲解实践练习Hadoop 简介和生态圈以及核心介绍1.Hadoop 简介2.Hadoop 生态圈介绍 3.Hadoop 核心介绍451.2.1 Hadoop 简介nHadoop 实现了一个分布式文件系统(Hadoop Distributed File System),简称 HDFS。HDFS 有高容错性的特点,因此设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,
7、适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了 POSIX 的要求,可以以流的形式访问(streaming access)文件系统中的数据。1.2.1 Hadoop 简介nHadoop 是一个用 Java 语言实现的软件框架,运行在 Linux 生产平台上是非常理想的,同时也可以运行在其他平台上,如“Windows”等。n用户可以轻松地在 Hadoop 上开发和运行处理海量数据的应用程序。它主要有以下 5 个优点:n高可靠性n高扩展性n高效性n高容错性n低成本1.2.2 Hadoop 生态圈介绍nHadoop 已经演变为大数据计算的代名词,形成了一套完善的大
8、数据计算生态系统,随着技术的不断更新和完善,各个子项目也在逐渐发展成熟。nHive:能够支持数据的汇总和临时查询的数据仓库基础框架。nFlume:一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。nHBase:能支持结构化数据大表存储的可扩展的、分布式的数据库。nMahout:一个可扩展的机器学习和数据挖掘库。nPig:它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流。nZooKeeper:一种分布式可用性高的协调服务。nSpark:一个快速通用的数据引擎。nOozie:一个工作流引擎服务器,用于运行 Hadoop Map/Reduce 和 Hive 等任务工作流。
9、1.2.3 Hadoop 核心介绍nHadoop 是 Apache 软件基金会所开发的并行计算框架与分布式文件系统。Hadoop 各个核心项目架构如下:nHDFS2 架构:HDFS 的作用是负责对数据的分布式存储nYARN 架构:YARN 架构是一个资源调度和管理的平台nMapReduce 架构:MapReduce 架构依赖于磁盘 I/O 的批处理计算模型讲解时间:分钟技术讲解实践练习Linux 系统环境配置1.Java 环境的安装与配置2.配置 SSHn25201.在 Linux 系统中配置 Java 运行环境和 SSH 免密登录实践时间:分钟251.3.1 Java 环境的安装与配置nHa
10、doop 运行在 Linux 系统中,因此在部署 Hadoop 之前需要对当前使用的 Linux 系统进行配置。主要包括 Java运行环境的配置,SSH 免密配置。输入:rpm-qa|grep jdk查看安装的 jdk输入:yum-y remove java-1.*卸载已安装的 jdk。直到提示出现“Complete”,则卸载完成输入:mkdir/opt/soft mkdir/opt/data输入:ls/opt创建 soft 目录与 data 目录查看目录是否创建成功1.3.1 Java 环境的安装与配置输入:cd/opt tar-zxvf soft/jdk-8u112-linux-x64.t
11、ar.gz mv jdk1.8.0_112/jdk(1)上传 jdk 压缩文件到 soft 目录。(2)解压 jdk 压缩文件到 opt 目录,并将 jdk1.8.0_112 目录变为 jdk。输入:vi/etc/profile.d/hadoop-eco.sh在 hadoop-eco.sh 中添加相关内容后,保存并退出。JAVA_HOME=/opt/jdkPATH=$JAVA_HOME/bin:$PATH输入:source/etc/profile.d/hadoop-eco.sh输入:java-version1.3.1 Java 环境的安装与配置nSSH 为 Secure Shell 的缩写,由
12、 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。Hadoop 在运行启动进程时,需要远程到对应机器,如果不设置免密,则需要手动输入密码,这样会给 Hadoop的使用者带来不便,因此需要配置免密登录,方便 Hadoop 自动启动进程,不需要人工的干预。输入:ssh-keygen-t rsa输入:ssh-copy-id-i rootlocalhost生成密钥将本机的公钥拷贝给其他机器需求说明实践时间:分钟1.3.3 学生实践练习n 在 Linux 系统中配置 Java 运行环境和 SSH 免密登录。25实现思路1.1.3 学生实践
13、练习n卸载CentOS-7自带的jdk。使用rpm-qa|grepjdk查看jdk,并使用yum-yremovejava-1.*卸载。n上传jdk到指定目录。n解压jdk到指定目录。使用tar命令对压缩包进行解压。n配置环境变量。使用vi/etc/profile.d/hadoop-eco.sh命令,打开hadoop-eco.sh文件,并在文件中添加相关内容后,保存并退出。n验证Java运行环境是否安装成功。使用java-version命令查询Java版本,若出现版本号,则安装成功。n生成秘钥。使用ssh-keygen-trsa命令生成秘钥。n将秘钥拷贝到指定机器(非本机)的指定用户。n使用SS
14、H免密登录到指定机器。讲解时间:分钟技术讲解实践练习Hadoop 伪分布式模式安装1.Hadoop 的常用端口和缺省配置文件说明2.Hadoop 的配置3.Hadoop 启动4.在 Hadoop 上实现单词计数n25201.Hadoop 单机环境安装配置和实现单词计数功能实践时间:分钟251.4.1 Hadoop 的常用端口和缺省配置文件说明nHadoop 伪分布式是一台机器,既充当 NameNode,又充当 DataNode。没有在多台机器上进行分布式计算,故称为“伪分布式”。nHadoop 常用端口说明:守护进程Web 界面Web 界面NameNode http:/nn_host:port
15、/默认端口号 50070ResourceManager http:/rm_host:port/默认端口号 8088MapReduceJobHistoryServerhttp:/jhs_host:port/默认端口号 198881.4.1 Hadoop 的常用端口和缺省配置文件说明ncore-site.xml 说明见表:参数 属性值解释fs.defaultFSNameNodeURIhdfs:/host:port/io.file.buffer.size 131072SequenceFiles 文件中,读写缓存大小的设定1.4.1 Hadoop 的常用端口和缺省配置文件说明nhdfs-site.xm
16、l 说明见表:参数属性值 解释dfs.namenode.name.dir file:/$hadoop.tmp.dir/dfs/name本地磁盘目录,NN 存储fsimage文件的地方dfs.blocksize 268435456大型的文件系统HDFS块大小为256MBdfs.namenode.handler.count 100设置更多的NameNode线程,处理从DataNode发出的大量RPC请求dfs.datanode.data.dir file:/$hadoop.tmp.dir/dfs/data本地磁盘目录,HDFS数据应该存储Block的地方dfs.replication3设置HDFS
17、副本数1.4.1 Hadoop 的常用端口和缺省配置文件说明nyarn-site.xml 中的ResourceManager 配置说明:参数属性值 解释yarn.resourcemanager.address 客户端对 ResourceManager 主机通过 host:port提交作业host:portyarn.resourcemanager.hostname ResourceManager 所在的主机hostyarn.resourcemanager.scheduler.address ApplicationMasters 通 过 ResourceManager主机访问 host:port
18、跟踪调度程序获取资源host:portyarn.resourcemanager.resource-tracker.address NodeManagers通过 ResourceManager 主机访问 host:porthost:port1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.resourcemanager.admin.address 管理命令通过 ResourceManager 主机访问host:porthost:portyarn.resourcemanager.webapp.address ResourceManagerWeb 页面地址host:po
19、rtyarn.resourcemanager.scheduler.class ResourceManager 调度器实现类CapacityScheduler,Fa i r S c h e d u l e r,orFifoScheduleryarn.scheduler.minimum-allocation-mb 每个 container 向 RM 申请最小内存。内存请求小于此值,实际申请到的是此值大小以 MB 为单位1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.scheduler.maximum-allocation-mb 资源管理器分配给每个容器的内存最大限制
20、以 MB 为单位yarn.resourcemanager.nodes.include-path/yarn.resourcemanager.nodes.exclude-path NodeManagers 的 permitted/excluded列表如有必要,可使用这些文件来控制允许 NodeManagers 列表1.4.1 Hadoop 的常用端口和缺省配置文件说明nyarn-site.xml 中的NodeManager配置说明:参数属性值 解释yarn.nodemanager.resource.memory-mb givenNodeManager 即资源的可用物理内存,以 MB 为单位定义在节
21、点管理器总的可用资源,以提供给运行容器yarn.nodemanager.vmem-pmem-ratio 在设置container的内存限制时,虚拟内存到物理内存的比率Container 申请的内存如果超过此物理内存,可以以此比率获取虚拟内存用于满足需求。虚拟地址的比率是物理地址的倍数上限1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.nodemanager.local-dirs 数据写入本地文件系统路径的列表用逗号分隔多条存储路径可以提高磁盘的读写速度yarn.nodemanager.log-dirs 本地文件系统日志路径的列表用逗号分隔多条存储路径可以提高磁盘
22、的读写速度yarn.nodemanager.log.retain-seconds 10800保留用户日志的时间,在日志汇聚功能关闭时生效yarn.nodemanager.remote-app-log-dirlogs 汇聚日志的地方,目录路径,HDFS 系统1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.nodemanager.remote-app-log-dir-suffix logs后缀追加到远程日志目录。日志将被汇总到yarn.nodemanager.remoteapplogdir/yarn.nodemanager.remoteapplogdir/user/
23、$thisParam,仅适用日志聚合功能yarn.nodemanager.aux-services mapreduce-shuffleShuffle service需要设置的 MapReduce 的应用程序服务1.4.1 Hadoop 的常用端口和缺省配置文件说明nmapred-site.xml 说明见表:参数属性值 解释mapreduce.framework.name yarn执行框架设置为 HadoopYARNmapreduce.map.memory.mb 1536设置 Maps 对于较大资源的限制mapreduce.reduce.memory.mb 3072设置 Reduces 对于较大
24、资源的限制mapreduce.task.io.sort.mb 512设置数据进行排序的内存大小mapreduce.task.io.sort.factor100在文件排序中将流进行合并mapreduce.reduce.shuffle.parallelcopies50通过 Reduces 从很多的 Map 中读取较多的平行副本1.4.2 Hadoop 的配置n配置 Hadoop输入:cd/opt tar zxvf soft/hadoop.2.7.3.tar.gz mv hadoop.2.7.3/hadoop1)上传 Hadoop 压缩文件到 soft 目录2)解压 Hadoop 压缩文件到 opt
25、 目录,并将Hadoop.2.7.3 目录变为 Hadoopa.输入:vi/etc/profile.d/hadoop-eco.shb.输入:source/etc/profile.d/hadoop-eco.sh(1)NameNode 数据存放目录为/opt/hadoop-record/name。(2)SecondaryNameNode 数据存放目录为/opt/hadoop-record/secondary。(3)DataNode 数据存放目录为/opt/hadoop-record/data。(4)临时数据存放目录为/opt/hadoop-record/tmp。在 hadoop-eco.sh 中追
26、加相关内容后,保存并退出。追加的内容如下:HADOOP_HOME=/opt/hadoopPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH在创建分布式时,需先手动创建 Hadoop 工作需要的目录1.4.2 Hadoop 的配置n配置 Hadoopfs.defaultFShdfs:/localhost:9000hadoop.tmp.dirfile:/opt/hadoop-record/tmp(1)hadoop-env.sh 的配置:修改 JAVA_HOME 的地址为 exprot JAVA_HOME=/opt/jdk(2)yarn-env.sh 的配置:
27、修改 JAVA_HOME 的地址为 exprot JAVA_HOME=/opt/jdk(3)core-site.xml 的配置:1.4.2 Hadoop 的配置dfs.replication1dfs.namenode.name.dirfile:/opt/hadoop-record/namedfs.datanode.data.dirfile:/opt/hadoop-record/datahdfs-site.xml 的配置1.4.2 Hadoop 的配置mapreduce.framework.nameyarnmapred-site.xml 的配置1.4.2 Hadoop 的配置yarn.resou
28、rcemanager.hostnamelocalhostyarn.nodemanager.aux-servicesmapreduce_shuffleyarn-site.xml 的配置输入:hadoop version查看 Hadoop 版本1.4.3 Hadoop 启动输入:hdfs namenode-format格式化 NameNode输入:start-dfs.sh输入:jps启动 HDFS输入:start-yarn.sh输入:jps输入:IP:50070启动 YARN1.4.4 在Hadoop上实现单词计数n本章使用 Hadoop 中自带的 jar 包,实现文档中单词个数的统计功能输入:v
29、i hello(1)在 opt 目录下编写一个测试文档,添加两行语句:第一行:“Hello World Bye World”;第二行:“Hello Hadoop Bye Hadoop”。a.输入:hadoop fs-put hello/helloa.输入:cd hadoop/share/hadoop/mapreduce/b.输入:hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount/hello/out使用 put 操作将“hello”文件上传到 HDFS 的根目录使用 jar 操作运行 Hadoop 中自带的 jar 进行单词计数输入
30、:hadoop fs-cat/out/part-r-00000使用 cat 查看统计结果需求说明实践时间:分钟1.4.5 学生实践练习n 在 Linux 中安装 Hadoop,编写一个文件,运行 jar 包实现单词计数功能。25实现思路1.4.5 学生实践练习n 上传 Hadoop 压缩包到 Linux 中。n 解压文件,配置环境变量。在 hadoop-eco.sh 中追加相关内容后,保存并退出。n 配置 Hadoop 的配置文件。n 启动 Hadoop。在启动之前需要先格式化 NameNode,然后启动 HDFS,最后启动 YARN。n 编写文件上传至 HDFS。n 执行 hadoop-ma
31、preduce-examples-2.7.3.jar 进行单词计数。总结n大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。n大数据的 4V 特点是 Volume(大量)、Velocity(高速)、Variety(多样)和 Value(低价值密度)nHadoop 是一个能够对大量数据进行分布式处理的软件框架,具有:高可靠性、高扩展性、高效性、高容错性和低成本的特点谢谢第2章 Hadoop 分布式集群Hadoop数据分析与应用回顾n大数据是指无法在一定时间范围内用常规软件工具进
32、行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。n大数据的 4V 特点是 Volume(大量)、Velocity(高速)、Variety(多样)和 Value(低价值密度)nHadoop 是一个能够对大量数据进行分布式处理的软件框架,具有:高可靠性、高扩展性、高效性、高容错性和低成本的特点12341234封装Linux 集群 SSH 免密配置Hadoop 分布式搭建Hadoop 命令行介绍Hadoop Java API 介绍Linux 虚拟机集群 SSH 的免密配置Hadoop 分布式模式搭建Hadoop 命令运用Ha
33、doop Java API 运用讲解时间:分钟实践时间:分钟技术讲解实践练习定义属性1.Hadoop 集群拓扑2.IP 设置和 Hosts 设置3.配置 SSH 免密1.Linux 虚拟机集群 SSH 的免密配置25202.1.1 Hadoop 集群拓扑nHadoop 分布式集群和伪分布式模式有所不同,在集群中各个机器会承担不同的角色,在集群中文件的存储主要有以下两个角色:nNameNode(管理者):NameNode 管理文件系统的命名空间。nDataNode(工作者):DataNode 是 Hadoop 集群中的工作节点和数据节点。2.1.1 Hadoop 集群拓扑n在商业应用中,Data
34、Node 可以跨路由器分布在不同的机架上,也可以是互联网中,或是在不同机房间能够被联通的机器,如果网络跨度过大,DataNode 之间的网络宽带会成为制约整个 Hadoop 性能的瓶颈,所以在商业应用中DataNode 的机器都会集中在一个数据中心,尽量让 DataNode 之间的数据宽带够大。本章搭建的 Hadoop 的分布式模式采用的是一主三从的结构,即 1 个 NameNode 和 3 个 DataNode2.1.2 IP设置和 Hosts 设置n为了让集群中的机器能够正常通信,所有集群的 IP 必须要设置成静态 IP,防止出现当机器重启之后重新分配 IP而找不到机器的情况,同时为了方便
35、访问,本节将修改主机名,配置主机名查询静态表,实现本地域名解析功能。序号IP 地址 机器名 类型 用户名1 192.168.200.100 masterNameNoderoot2 192.168.200.101slave01DataNode root3 192.168.200.102 slave02 DataNode root4 192.168.200.103 slave03 DataNode root2.1.2 IP设置和 Hosts 设置输入:vi/etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=static#将 dhcp 换成 sta
36、ticONBOOT=yes#将 no 换成 yes追加配置:IPADDR=192.168.200.100#静态 IPGATEWAY=192.168.200.1#默认网关输入:service network restartIP 地址配置步骤输入:vi/etc/hosts追加配置:192.168.200.100 master192.168.200.101 slave01192.168.200.102 slave02192.168.200.103 slave03输入:scp-r/etc/hosts slave01:/etc/hostsscp-r/etc/hosts slave02:/etc/host
37、sscp-r/etc/hosts slave03:/etc/hosts主机名查询静态表配置步骤2.1.3 配置 SSH 免密nHadoop 集群之间的机器是通过 SSH 协议进行通信和协调工作的,而 SSH 进行远程登录需要密码验证,为了方便 Hadoop 集群之间的机器能够畅通的交互,需要在 Hadoop 集群之间配置 SSH 免密登录,即将 Master 机器(主机)的登录公钥放到集群中的其他机器中,使得 Master 机器(主机)通过 SSH 命令登录到其他机器上时不再需要输入密码。2.1.3 配置 SSH 免密输入:ssh-keygen-t rsa生成密钥输入:ssh-copy-id-
38、i rootslave01ssh-copy-id-i rootslave02ssh-copy-id-i rootslave03将本机的公钥拷贝给其他机器输入:ssh rootslave01在 Master 机器上操作需求说明实践时间:分钟2.1.4 学生实践练习n 在 Linux 集群中设置静态 IP 地址、修改主机名以及配置主机名查询静态表,通过主机名免密码登录到其他主机。25实现思路2.1.4 学生实践练习n 设置静态 IP 地址。n 使用 vi/etc/hostname 命令修改主机名。n 配置主机名查询静态表时,需要 IP 地址与主机名对应。n 使用 ssh-keygen-trsa 命
39、令生成密钥。n 使用 ssh-copy-id-i 命令进行密钥的远程拷贝,将生成的密钥远程拷贝到其他机器上。讲解时间:分钟实践时间:分钟技术讲解实践练习Hadoop 分布式模式搭建1.Hadoop 分布式模式配置2.Hadoop 分布式模式启动1.Hadoop 分布式模式搭建25202.2.1 Hadoop 分布式模式配置fs.defaultFShdfs:/master:9000修改 core-site.xml 配置文件,具体修改集群中 NameNode 结点的 URI 的值为“hdfs:/master:9000”dfs.namenode.secondary.http-addressmaste
40、r:50090dfs.replication2修 改 hdfs-site.xml 配 置 文 件,追 加“dfs.namenode.secondary.http-address”属 性,并 修 改“dfs.replication”属性值为 2mapreduce.jobhistory.addressmaster:10020mapreduce.jobhistory.webapp.addressmaster:19888修改 mapred-site.xml 配置文件,追加“mapreduce.jobhistory.address”和“mapreduce.jobhistory.webapp.addres
41、”属性yarn.resourcemanager.hostnamemaster修改 yarn-site.xml 配置文件,具体修改集群中“yarn.resourcemanager.hostname”的值为 Master输入:vi/opt/hadoop/etc/hadoop/slaves修改 slaves 从机配置文件2.2.1 Hadoop 分布式模式配置输入:scp-r/opt/jdk slave01:/opt/jdkscp-r/opt/jdk slave02:/opt/jdkscp-r/opt/jdk slave03:/opt/jdk将 jdk 文件远程拷贝到其他机器输入:scp-r/opt
42、/hadoop-record slave01:/opt/hadoop-recordscp-r/opt/hadoop-record slave02:/opt/hadoop-recordscp-r/opt/hadoop-record slave03:/opt/hadoop-record将 hadoop-record 文件远程拷贝到其他机器输入:scp-r/opt/hadoop-record slave01:/opt/hadoop-recordscp-r/opt/hadoop-record slave02:/opt/hadoop-recordscp-r/opt/hadoop-record slave
43、03:/opt/hadoop-record将 hadoop-eco.sh 文件远程拷贝到其他机器输入:scp-r/opt/hadoop slave01:/opt/hadoopscp-r/opt/hadoop slave02:/opt/hadoopscp-r/opt/hadoop slave03:/opt/hadoop将 hadoop 文件远程拷贝到其他机器2.2.2 Hadoop 分布式模式启动输入:systemctl stop firewalld.service在各台机器上关闭防火墙输入:systemctl stop firewalld.service在各台机器上禁止防火墙输入:hdfs n
44、amenode-format格式化系统需在 Master 机器上操作输入:start-dfs.sh在 Master 机器上启动 HDFS输入:jsp输入:start-yarn.sh输入:jps输入:master:50070启动 YARN在浏览器中访问网页,查看 Hadoop 的站点和节点需求说明实践时间:分钟2.2.3 学生实践练习n 在 Linux 集群的基础上搭建 Hadoop 分布式模式,实现各节点中相应的进程能够正常的启动。25实现思路2.1.4 学生实践练习n 配置 Hadoop 中 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-s
45、ite.xml 和 slaves 配置文件。具体操作是在集群环境下需要修改集群中 yarn.resourcemanager.hostname 的值为 Master,同时在 Hadoop目录下/etc/hadoop/slaves 文件中添加从机的主机名。n 将 Master 上的 jdk 文件夹、hadoop 文件夹、hadoop-record 文件夹以及环境变量 hadoop-eco.sh 远程拷贝到其他机器,使用 scp-r 命令进行远程拷贝。n 在 Master 机器上格式化 NameNode,只需要格式化 Master 机器即可。n 分别启动 HDFS 和 YARN。n 输入 Maste
46、r 机器上的 IP 和 50070 端口查看集群情况。讲解时间:分钟实践时间:分钟技术讲解实践练习HDFS 命令行1.HDFS 的设计特点2.HDFS 的概念3.FS Shell 的常用命令1.Hadoop 命令运用25202.3.1 HDFS 的设计特点n在 2002 年,Google 发表的论文 GFS 中提到希望构建一个能够运行于商业硬件集群上的以流式数据访问形式存储超大文件的文件系统,HDFS 就是为了实现这一目标。HDFS 的设计特点如下:n超大文件n流式数据访问n商用硬件n不能处理低时间延迟的数据访问n不能存放大量小文件n无法高效实现多用户写入或者任意修改文件2.3.2 HDFS
47、的概念n在 HDFS 中有一些特殊的概念,需要特别重点的理解,分别有:n 数据块:在普通的文件系统中,每个磁盘都有默认的数据块,这是磁盘进行数据读/写的最小单位n NameNode:它是 Hadoop 的 HDFS 的核心组件,它维护着文件系统树和整棵树内所有的文件和目录n DataNode:DataNode 是文件系统的工作节点,也就是数据节点,它根据存储需要检索数据块,并定期向 NameNode 发送它所存储的块的列表n SecondNameNode:SecondNameNode 是对主 NameNode 的一个补充,它会周期地执行对 HDFS 元数据的检查点n HDFS 的安全模式:在
48、NameNode 启动时,首先将镜像文件 fsimage 载入内存,并执行编辑日志 edits 中的各项操作n 数据完整性:在 Hadoop 系统中检测数据完整性是一个常见的措施2.3.3 FS Shell的常用命令n在 Hadoop 中,大多数 FS Shell 命令的行为和对应的 Unix Shell 命令类似,不同之处会在下面介绍各命令使用详情时指出。常用命令如下:nMkdir:创建路径中的各级父目录hadoopfs-mkdirhadoop fs-mkdir/user/hadoop/dir1hadoop fs-mkdir-p/user/hadoop/dir1/user/hadoop/di
49、r22.3.3 FS Shell的常用命令nput:从本地文件系统中复制单个或多个源路径到目标文件系统hadoopfs-put.hadoop fs-put localfile/user/hadoop/hadoopfilehadoop fs-put localfile1 localfile2/user/hadoop/hadoopdirhadoop fs-put-hdfs:/host:port/hadoop/hadoopfile2.3.3 FS Shell的常用命令nget:复制文件到本地文件系统hadoopfs-get-ignorecrc-crchadoop fs-get/user/hadoop
50、/file localfilehadoop fs-get hdfs:/host:port/user/hadoop/file localfile2.3.3 FS Shell的常用命令nmv:移动文件hadoopfs-mvURIURIhadoop fs-mv/user/hadoop/file1/user/hadoop/file2hadoop fs-mv hdfs:/host:port/file1 hdfs:/host:port/file2 hdfs:/host:port/dir12.3.3 FS Shell的常用命令ncat:输出文件内容hadoopfs-catURIURIhadoop fs-ca