版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 Hadoop初识Hadoop数据分析与应用课程概述终点起点12345672. Hadoop分布式集群3. MapReduce(一)5. Hadoop 高可用(一)4. MapReduce(二)6. Hadoop 高可用(二)7. Hadoop 项目实战1. Hadoop初识Hadoop 初识大数据简介及发展前景Hadoop 简介、生态圈简介及核心介绍 VMwareo 环境安装与 CentOS 安装Hadoop 单机环境安装配置和实现单词计数功能在 Linux 系统中配置 Java 运行环境和 SSH 免密登录Hadoop 单机环境安装配置和实现单词计数功能大数据简介及发展前景生活中的大
2、数据大数据简介大数据的发展历程和趋势451.1.1 生活中的大数据大数据是下一个创新、竞争、生产力提高的前沿。世界经济论坛的报告认定:大数据为新财富,其价值堪比石油未来物流中科院青海盐湖研究所大数据运用城市噪声地图训练“人工智能”当大夫1.1.2 大数据简介大数据(Big Data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。1.1.2 大数据简介大数据的 4V 特点:Volume(大量)、Velocity(高速)、Variety(多样)和 Value(低价值密度)Vol
3、ume(大量):数据体量巨大Velocity(高速):处理速度快Variety(多样):数据类型繁多Value(低价值密度):价值密度低、商业价值高1.1.2 大数据简介大数据运用领域金融领域:大数据所带来的社会变革已经深入到人们生活的各个方面,金融创新离不开大数据,日常的出行、购物、运动、理财等更离不开大数据。安防领域:作为信息时代海量数据的来源之一,视频监控产生了巨大的信息数据。能源领域:能源大数据理念是将电力、石油、燃气等能源领域数据以及人口、地理、气象等其他领域数据进行综合采集、处理、分析与应用的相关技术与思想。业务领域:大数据也更多地提升了业务流程的优化。医疗领域:大数据分析应用的计
4、算能力让我们能够在几分钟内就可以解码整个 DNA,并且让我们可以制订出最新的治疗方案,同时可以更好地去理解和预测疾病,就好像人们戴上可以产生数据的智能手表一样,大数据同样可以帮助病人对于病情进行更好地治疗。电力行业领域:大数据对该行业的应用主要体现在智能电网上,通过获取人们的用电行为信息,分析其对智慧城市建设和智能电网的意义。1.1.3 大数据的发展历程和趋势大数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率的增长和消费者盈余浪潮的到来。全球首次将“大数据”划分为四大阶段,即“大数据”出现阶段、“大数据”热门阶段、“大数据”时代
5、特征阶段和“大数据”爆发期阶段。“大数据”出现阶段(19802008 年)“大数据”热门阶段(20092011 年)“大数据”时代特征阶段(20122016 年)“大数据”爆发期阶段(20172022 年)1.1.3 大数据的发展历程和趋势大数据未来的发展依然非常乐观。大数据的发展呈现八大趋势:数据资源化将成为最有价值的资产大数据在更多的传统行业的企业管理落地大数据和传统商业智能融合,行业定制化解决方案将涌现数据将越来越开放,数据共享联盟将出现大数据安全越来越受重视,大数据安全市场将愈发重要大数据的发展能促进智慧城市发展,成为智慧城市的引擎大数据的发展将催生一批新的工作岗位和相应的专业大数据的
6、发展能在多方位改善我们的生活Hadoop 简介和生态圈以及核心介绍Hadoop 简介Hadoop 生态圈介绍 Hadoop 核心介绍451.2.1 Hadoop 简介Hadoop 实现了一个分布式文件系统(Hadoop Distributed File System),简称 HDFS。HDFS 有高容错性的特点,因此设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了 POSIX 的要求,可以以流的形式访问(streaming access)文
7、件系统中的数据。1.2.1 Hadoop 简介Hadoop 是一个用 Java 语言实现的软件框架,运行在 Linux 生产平台上是非常理想的,同时也可以运行在其他平台上,如“Windows”等。用户可以轻松地在 Hadoop 上开发和运行处理海量数据的应用程序。它主要有以下 5 个优点:高可靠性高扩展性高效性高容错性低成本1.2.2 Hadoop 生态圈介绍Hadoop 已经演变为大数据计算的代名词,形成了一套完善的大数据计算生态系统,随着技术的不断更新和完善,各个子项目也在逐渐发展成熟。Hive:能够支持数据的汇总和临时查询的数据仓库基础框架。Flume:一个高可用的、高可靠的、分布式的海
8、量日志采集、聚合和传输的系统。HBase:能支持结构化数据大表存储的可扩展的、分布式的数据库。Mahout:一个可扩展的机器学习和数据挖掘库。Pig:它是一个工具 / 平台,用于分析较大的数据集,并将它们表示为数据流。ZooKeeper:一种分布式可用性高的协调服务。Spark:一个快速通用的数据引擎。Oozie:一个工作流引擎服务器,用于运行 Hadoop Map/Reduce 和 Hive 等任务工作流。1.2.3 Hadoop 核心介绍Hadoop 是 Apache 软件基金会所开发的并行计算框架与分布式文件系统。Hadoop 各个核心项目架构如下:HDFS2 架构:HDFS 的作用是负
9、责对数据的分布式存储YARN 架构:YARN 架构是一个资源调度和管理的平台MapReduce 架构:MapReduce 架构依赖于磁盘 I/O 的批处理计算模型Linux 系统环境配置Java 环境的安装与配置配置 SSH2520在 Linux 系统中配置 Java 运行环境和 SSH 免密登录实践时间: 分钟251.3.1 Java 环境的安装与配置Hadoop 运行在 Linux 系统中,因此在部署 Hadoop 之前需要对当前使用的 Linux 系统进行配置。主要包括 Java运行环境的配置,SSH 免密配置。输入:rpm -qa|grep jdk查看安装的 jdk输入:yum -y
10、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.tar.gz mv jdk1.8.0_112/ jdk(1)上传 jdk 压缩文件到 soft 目录。(2)解压 jdk 压缩文件到 opt 目录,并将 jdk1.8.0_112 目录变为 jdk。输入:vi /etc/p
11、rofile.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 环境的安装与配置SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。 Hadoop 在运行启动进程时,需要远程到对应机器,如果不设置免密,则需要手动输入密码,这样会给
12、 Hadoop的使用者带来不便,因此需要配置免密登录,方便 Hadoop 自动启动进程,不需要人工的干预。输入:ssh-keygen -t rsa输入:ssh-copy-id -i rootlocalhost生成密钥将本机的公钥拷贝给其他机器1.3.3 学生实践练习在 Linux 系统中配置 Java 运行环境和 SSH 免密登录。251.1.3 学生实践练习卸载CentOS-7自带的jdk。使用rpm-qa|grepjdk查看jdk,并使用yum-yremovejava-1.*卸载。上传jdk到指定目录。解压jdk到指定目录。使用tar命令对压缩包进行解压。配置环境变量。使用vi/etc/p
13、rofile.d/hadoop-eco.sh命令,打开hadoop-eco.sh文件,并在文件中添加相关内容后,保存并退出。验证Java运行环境是否安装成功。使用java-version命令查询Java版本,若出现版本号,则安装成功。生成秘钥。使用ssh-keygen-trsa命令生成秘钥。将秘钥拷贝到指定机器(非本机)的指定用户。使用SSH免密登录到指定机器。Hadoop 伪分布式模式安装Hadoop 的常用端口和缺省配置文件说明Hadoop 的配置Hadoop 启动在 Hadoop 上实现单词计数2520Hadoop 单机环境安装配置和实现单词计数功能实践时间: 分钟251.4.1 Had
14、oop 的常用端口和缺省配置文件说明Hadoop 伪分布式是一台机器,既充当 NameNode,又充当 DataNode。没有在多台机器上进行分布式计算,故称为“伪分布式”。Hadoop 常用端口说明:守护进程Web 界面Web 界面NameNode http:/nn_host:port/默认端口号 50070ResourceManager http:/rm_host:port/默认端口号 8088MapReduceJobHistoryServerhttp:/jhs_host:port/ 默认端口号 198881.4.1 Hadoop 的常用端口和缺省配置文件说明core-site.xml 说
15、明见表 :参数 属性值解释fs.defaultFSNameNodeURIhdfs:/host:port/io.file.buffer.size 131072SequenceFiles 文件中,读写缓存大小的设定1.4.1 Hadoop 的常用端口和缺省配置文件说明hdfs-site.xml 说明见表:参数属性值 解释.dir file:/$hadoop.tmp.dir/dfs/name本地磁盘目录,NN 存储fsimage文件的地方dfs.blocksize 268435456大型的文件系统HDFS块大小为256MBnode.handler.count 100设置更多的NameNode线程,处
16、理从DataNode发出的大量RPC请求dfs.datanode.data.dir file:/$hadoop.tmp.dir/dfs/data本地磁盘目录,HDFS数据应该存储Block的地方dfs.replication3设置HDFS副本数1.4.1 Hadoop 的常用端口和缺省配置文件说明yarn-site.xml 中的ResourceManager 配置说明:参数属性值 解释yarn.resourcemanager.address 客户端对 ResourceManager 主机通过 host:port提交作业host:portyarn.resourcemanager.hostname
17、 ResourceManager 所在的主机hostyarn.resourcemanager.scheduler.address ApplicationMasters 通 过 ResourceManager主机访问 host:port 跟踪调度程序获取资源host:portyarn.resourcemanager.resource-tracker.address NodeManagers通过 ResourceManager 主机访问 host:porthost:port1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.resourcemanager.admin.a
18、ddress 管理命令通过 ResourceManager 主机访问host:porthost:portyarn.resourcemanager.webapp.address ResourceManagerWeb 页面地址host:portyarn.resourcemanager.scheduler.class ResourceManager 调度器实现类CapacityScheduler,FairScheduler,orFifoScheduleryarn.scheduler.minimum-allocation-mb 每个 container 向 RM 申请最小内存。内存请求小于此值,实际申
19、请到的是此值大小以 MB 为单位1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.scheduler.maximum-allocation-mb 资源管理器分配给每个容器的内存最大限制以 MB 为单位yarn.resourcemanager.nodes.include-path/yarn.resourcemanager.nodes.exclude-path NodeManagers 的 permitted/excluded列表如有必要,可使用这些文件来控制允许 NodeManagers 列表1.4.1 Hadoop 的常用端口和缺省配置文件说明yarn-site.
20、xml 中的NodeManager配置说明:参数属性值 解释yarn.nodemanager.resource.memory-mb givenNodeManager 即资源的可用物理内存,以 MB 为单位定义在节点管理器总的可用资源,以提供给运行容器yarn.nodemanager.vmem-pmem-ratio 在设置container的内存限制时,虚拟内存到物理内存的比率Container 申请的内存如果超过此物理内存,可以以此比率获取虚拟内存用于满足需求。虚拟地址的比率是物理地址的倍数上限1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.nodemanage
21、r.local-dirs 数据写入本地文件系统路径的列表用逗号分隔多条存储路径可以提高磁盘的读写速度yarn.nodemanager.log-dirs 本地文件系统日志路径的列表用逗号分隔多条存储路径可以提高磁盘的读写速度yarn.nodemanager.log.retain-seconds 10800保留用户日志的时间,在日志汇聚功能关闭时生效yarn.nodemanager.remote-app-log-dirlogs 汇聚日志的地方,目录路径,HDFS 系统1.4.1 Hadoop 的常用端口和缺省配置文件说明参数属性值 解释yarn.nodemanager.remote-app-log
22、-dir-suffix logs后缀追加到远程日志目录。日志将被汇总到yarn.nodemanager.remoteapplogdir/yarn.nodemanager.remoteapplogdir/user/$thisParam,仅适用日志聚合功能yarn.nodemanager.aux-services mapreduce-shuffleShuffle service需要设置的 MapReduce 的应用程序服务1.4.1 Hadoop 的常用端口和缺省配置文件说明mapred-site.xml 说明见表:参数属性值 解释 yarn执行框架设置为 HadoopYARNmapreduce.
23、map.memory.mb 1536设置 Maps 对于较大资源的限制mapreduce.reduce.memory.mb 3072设置 Reduces 对于较大资源的限制mapreduce.task.io.sort.mb 512设置数据进行排序的内存大小mapreduce.task.io.sort.factor100在文件排序中将流进行合并mapreduce.reduce.shuffle.parallelcopies50通过 Reduces 从很多的 Map 中读取较多的平行副本1.4.2 Hadoop 的配置配置 Hadoop输入:cd /opt tar zxvf soft/hadoop.
24、2.7.3.tar.gz mv hadoop.2.7.3/ hadoop1)上传 Hadoop 压缩文件到 soft 目录2)解压 Hadoop 压缩文件到 opt 目录,并将Hadoop.2.7.3 目录变为 Hadoop输入:vi /etc/profile.d/hadoop-eco.sh输入:source /etc/profile.d/hadoop-eco.sh(1)NameNode 数据存放目录为 /opt/hadoop-record/name。(2)SecondaryNameNode 数据存放目录为 /opt/hadoop-record/secondary。(3)DataNode 数据
25、存放目录为 /opt/hadoop-record/data。(4)临时数据存放目录为 /opt/hadoop-record/tmp。在 hadoop-eco.sh 中追加相关内容后,保存并退出。追加的内容如下:HADOOP_HOME=/opt/hadoopPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH在创建分布式时,需先手动创建 Hadoop 工作需要的目录1.4.2 Hadoop 的配置配置 Hadoopfs.defaultFShdfs:/localhost:9000hadoop.tmp.dirfile:/opt/hadoop-record/tmp
26、(1)hadoop-env.sh 的配置:修改 JAVA_HOME 的地址为 exprot JAVA_HOME=/opt/jdk(2)yarn-env.sh 的配置:修改 JAVA_HOME 的地址为 exprot JAVA_HOME=/opt/jdk(3)core-site.xml 的配置:1.4.2 Hadoop 的配置dfs.replication1.dirfile:/opt/hadoop-record/namedfs.datanode.data.dirfile:/opt/hadoop-record/datahdfs-site.xml 的配置1.4.2 Hadoop 的配置yarnmap
27、red-site.xml 的配置1.4.2 Hadoop 的配置yarn.resourcemanager.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上实现单词计
28、数本章使用 Hadoop 中自带的 jar 包,实现文档中单词个数的统计功能输入:vi hello(1)在 opt 目录下编写一个测试文档,添加两行语句:第一行:“Hello World Bye World”;第二行:“Hello Hadoop Bye Hadoop”。输入:hadoop fs -put hello /hello输入:cd hadoop/share/hadoop/mapreduce/输入:hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /hello /out使用 put 操作将“hello”文件上传到 HDFS
29、的根目录使用 jar 操作运行 Hadoop 中自带的 jar 进行单词计数输入:hadoop fs -cat /out/part-r-00000使用 cat 查看统计结果1.4.5 学生实践练习在 Linux 中安装 Hadoop,编写一个文件,运行 jar 包实现单词计数功能。251.4.5 学生实践练习上传 Hadoop 压缩包到 Linux 中。解压文件,配置环境变量。在 hadoop-eco.sh 中追加相关内容后,保存并退出。配置 Hadoop 的配置文件。启动 Hadoop。在启动之前需要先格式化 NameNode,然后启动 HDFS,最后启动 YARN。编写文件上传至 HDFS
30、。执行 hadoop-mapreduce-examples-2.7.3.jar 进行单词计数。总结大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的 4V 特点是 Volume(大量)、Velocity(高速)、Variety(多样)和 Value(低价值密度)Hadoop 是一个能够对大量数据进行分布式处理的软件框架,具有:高可靠性、高扩展性、高效性、高容错性和低成本的特点谢谢第2章 Hadoop 分布式集群Hadoop数据分析与应用回顾大数据是指无法在一定时间范围
31、内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的 4V 特点是 Volume(大量)、Velocity(高速)、Variety(多样)和 Value(低价值密度)Hadoop 是一个能够对大量数据进行分布式处理的软件框架,具有:高可靠性、高扩展性、高效性、高容错性和低成本的特点封装Linux 集群 SSH 免密配置Hadoop 分布式搭建Hadoop 命令行介绍Hadoop Java API 介绍Linux 虚拟机集群 SSH 的免密配置Hadoop 分布式模式搭建Hadoop 命令运用Had
32、oop Java API 运用定义属性Hadoop 集群拓扑IP 设置和 Hosts 设置配置 SSH 免密Linux 虚拟机集群 SSH 的免密配置25202.1.1 Hadoop 集群拓扑Hadoop 分布式集群和伪分布式模式有所不同,在集群中各个机器会承担不同的角色,在集群中文件的存储主要有以下两个角色:NameNode(管理者):NameNode 管理文件系统的命名空间。DataNode(工作者):DataNode 是 Hadoop 集群中的工作节点和数据节点。2.1.1 Hadoop 集群拓扑在商业应用中,DataNode 可以跨路由器分布在不同的机架上,也可以是互联网中,或是在不同
33、机房间能够被联通的机器,如果网络跨度过大,DataNode 之间的网络宽带会成为制约整个 Hadoop 性能的瓶颈,所以在商业应用中DataNode 的机器都会集中在一个数据中心,尽量让 DataNode 之间的数据宽带够大。本章搭建的 Hadoop 的分布式模式采用的是一主三从的结构,即 1 个 NameNode 和 3 个 DataNode2.1.2 IP设置和 Hosts 设置为了让集群中的机器能够正常通信,所有集群的 IP 必须要设置成静态 IP,防止出现当机器重启之后重新分配 IP而找不到机器的情况,同时为了方便访问,本节将修改主机名,配置主机名查询静态表,实现本地域名解析功能。序号
34、IP 地址 机器名 类型 用户名1 00 masterNameNoderoot2 01slave01DataNode root3 02 slave02 DataNode root4 03 slave03 DataNode root2.1.2 IP设置和 Hosts 设置输入:vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=static # 将 dhcp 换成 staticONBOOT=yes # 将 no 换成 yes追加配置:IPADDR=00 # 静态 IPGATEWAY= # 默认网关输入:service network re
35、startIP 地址配置步骤输入:vi /etc/hosts追加配置:00 master01 slave0102 slave0203 slave03输入:scp -r /etc/hosts slave01:/etc/hostsscp -r /etc/hosts slave02:/etc/hostsscp -r /etc/hosts slave03:/etc/hosts主机名查询静态表配置步骤2.1.3 配置 SSH 免密Hadoop 集群之间的机器是通过 SSH 协议进行通信和协调工作的,而 SSH 进行远程登录需要密码验证,为了方便 Hadoop 集群之间的机器能够畅通的交互,需要在 Had
36、oop 集群之间配置 SSH 免密登录,即将 Master 机器(主机)的登录公钥放到集群中的其他机器中,使得 Master 机器(主机)通过 SSH 命令登录到其他机器上时不再需要输入密码。2.1.3 配置 SSH 免密输入:ssh-keygen -t rsa生成密钥输入:ssh-copy-id -i rootslave01ssh-copy-id -i rootslave02ssh-copy-id -i rootslave03将本机的公钥拷贝给其他机器输入:ssh rootslave01在 Master 机器上操作2.1.4 学生实践练习在 Linux 集群中设置静态 IP 地址、修改主机名
37、以及配置主机名查询静态表, 通过主机名免密码登录到其他主机。252.1.4 学生实践练习设置静态 IP 地址。使用 vi/etc/hostname 命令修改主机名。配置主机名查询静态表时,需要 IP 地址与主机名对应。使用 ssh-keygen -trsa 命令生成密钥。使用 ssh-copy-id -i 命令进行密钥的远程拷贝,将生成的密钥远程拷贝到其他机器上。Hadoop 分布式模式搭建Hadoop 分布式模式配置Hadoop 分布式模式启动Hadoop 分布式模式搭建25202.2.1 Hadoop 分布式模式配置fs.defaultFShdfs:/master:9000修改 core-
38、site.xml 配置文件,具体修改集群中 NameNode 结点的 URI 的值为“hdfs:/master:9000”node.secondary.http-addressmaster:50090dfs.replication2修 改 hdfs-site.xml 配 置 文 件, 追 加“node.secondary.http-address” 属 性, 并 修 改“dfs.replication”属性值为 2mapreduce.jobhistory.addressmaster:10020mapreduce.jobhistory.webapp.addressmaster:19888修改 m
39、apred-site.xml 配置文件,追加“mapreduce.jobhistory.address”和“mapreduce.jobhistory.webapp.addres”属性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/j
40、dkscp -r /opt/jdk slave02:/opt/jdkscp -r /opt/jdk slave03:/opt/jdk将 jdk 文件远程拷贝到其他机器输入:scp -r /opt/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 sl
41、ave01:/opt/hadoop-recordscp -r /opt/hadoop-record slave02:/opt/hadoop-recordscp -r /opt/hadoop-record slave03:/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 Ha
42、doop 分布式模式启动输入:systemctl stop firewalld.service在各台机器上关闭防火墙输入:systemctl stop firewalld.service在各台机器上禁止防火墙输入:hdfs namenode -format格式化系统需在 Master 机器上操作输入:start-dfs.sh在 Master 机器上启动 HDFS输入:jsp输入:start-yarn.sh输入:jps输入:master:50070启动 YARN在浏览器中访问网页,查看 Hadoop 的站点和节点2.2.3 学生实践练习在 Linux 集群的基础上搭建 Hadoop 分布式模式,
43、实现各节点中相应的进程能够正常的启动。252.1.4 学生实践练习配置 Hadoop 中 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 slaves 配置文件。具体操作是在集群环境下需要修改集群中 yarn.resourcemanager.hostname 的值为 Master,同时在 Hadoop目录下 /etc/hadoop/slaves 文件中添加从机的主机名。将 Master 上的 jdk 文件夹、hadoop 文件夹、hadoop-record 文件夹以及环境变量 hadoop-eco.sh 远程拷贝到其他机器
44、,使用 scp -r 命令进行远程拷贝。在 Master 机器上格式化 NameNode,只需要格式化 Master 机器即可。分别启动 HDFS 和 YARN。输入 Master 机器上的 IP 和 50070 端口查看集群情况。HDFS 命令行HDFS 的设计特点HDFS 的概念FS Shell 的常用命令Hadoop 命令运用25202.3.1 HDFS 的设计特点在 2002 年,Google 发表的论文 GFS 中提到希望构建一个能够运行于商业硬件集群上的以流式数据访问形式存储超大文件的文件系统,HDFS 就是为了实现这一目标。HDFS 的设计特点如下:超大文件流式数据访问商用硬件不
45、能处理低时间延迟的数据访问不能存放大量小文件无法高效实现多用户写入或者任意修改文件2.3.2 HDFS 的概念在 HDFS 中有一些特殊的概念,需要特别重点的理解,分别有:数据块:在普通的文件系统中,每个磁盘都有默认的数据块,这是磁盘进行数据读 / 写的最小单位NameNode:它是 Hadoop 的 HDFS 的核心组件,它维护着文件系统树和整棵树内所有的文件和目录DataNode: DataNode 是文件系统的工作节点,也就是数据节点,它根据存储需要检索数据块,并定期向 NameNode 发送它所存储的块的列表SecondNameNode: SecondNameNode 是对主 Name
46、Node 的一个补充,它会周期地执行对 HDFS 元数据的检查点HDFS 的安全模式:在 NameNode 启动时,首先将镜像文件 fsimage 载入内存,并执行编辑日志 edits 中的各项操作数据完整性:在 Hadoop 系统中检测数据完整性是一个常见的措施2.3.3 FS Shell的常用命令在 Hadoop 中,大多数 FS Shell 命令的行为和对应的 Unix Shell 命令类似,不同之处会在下面介绍各命令使用详情时指出。常用命令如下:Mkdir:创建路径中的各级父目录hadoopfs-mkdirhadoop fs -mkdir /user/hadoop/dir1hadoop
47、 fs -mkdir -p /user/hadoop/dir1 /user/hadoop/dir22.3.3 FS Shell的常用命令put:从本地文件系统中复制单个或多个源路径到目标文件系统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的常用命令get:复制文件到本地文件系
48、统hadoopfs-get-ignorecrc-crchadoop fs -get /user/hadoop/file localfilehadoop fs -get hdfs:/host:port/user/hadoop/file localfile2.3.3 FS Shell的常用命令mv:移动文件hadoopfs-mvURIURIhadoop fs -mv /user/hadoop/file1 /user/hadoop/file2hadoop fs -mv hdfs:/host:port/file1 hdfs:/host:port/file2 hdfs:/host:port/dir12.
49、3.3 FS Shell的常用命令cat:输出文件内容hadoopfs-catURIURIhadoop fs -cat hdfs:/host1:port1/file1 hdfs:/host2:port2/file2hadoop fs -cat file:/file3 /user/hadoop/file42.3.3 FS Shell的常用命令ls:返回文件或目录列表信息hadoopfs-lshadoop fs -ls /user/hadoop/file1 hdfs:/host:port/user/hadoop/dir1 /nonexistentfile2.3.3 FS Shell的常用命令ls
50、-R:递归返回文件或目录列表信息hadoopfs-ls-Rhadoop fs -ls -R /user/hadoop/dir12.3.3 FS Shell的常用命令rm:删除指定的文件hadoopfs-rmURIURIhadoop fs -rm hdfs:/host:port/file /user/hadoop/emptydir2.3.3 FS Shell的常用命令rm -r:删除指定的文件hadoopfs-rm-rURIURIhadoop fs -rm -r /user/hadoop/dirhadoop fs -rm -r hdfs:/host:port/user/hadoop/dir2.3
51、.3 FS Shell的常用命令touchz :创建一个 0 字节的空文件hadoopfs-touchzpathnamehadoop -touchz /user/hadoop/null.txt2.3.3 FS Shell的常用命令chown :改变文件的拥有者hadoopfs-chown-ROWNER:GROUPURIURIhadoop fs -chown hadoop /my.txt2.3.3 FS Shell的常用命令chmod :改变文件的权限hadoopfs-chmod-RURIURIhadoop fs -chmod 777 /user2.3.3 FS Shell的常用命令expung
52、e :清空回收站hadoopfs-expunge2.3.3 FS Shell的常用命令stat :返回路径的统计信息hadoopfs-statURIURIhadoop fs -stat path2.3.3 FS Shell的常用命令tail :将文件尾部 1K 字节的内容输出hadoopfs-tail-fURIhadoop fs -tail pathname2.3.3 FS Shell的常用命令text :将源文件输出为文本格式hadoopfs-texthadoop fs -text /test.gz2.4.2 学生实践练习使用 FS Shell 操作 HDFS 中的文件,上传一个 txt 格
53、式的文本文件到 HDFS 的指定目录下,查看文件信息并输出文件内容252.4.2 学生实践练习使用 mkdir 命令创建目录使用 put 命令从本地文件系统中复制单个或多个源路径到目标文件系统使用 ls 命令返回文件或目录列表信息使用 cat 命令输出文件内容HDFS Java API搭建开发环境客户端对象与文件操作Hadoop Java API 运用25202.4.1 搭建开发环境HDFS 提供了与客户端进行交互的一系列 Java API,方便通过其他途径对 HDFS 上存储的文件进行管理。需要引入依赖包和编译 Hadoop 源码。org.apache.hadoophadoop-client
54、2.7.3引入 maven 依赖2.4.1 搭建开发环境建议在 Linux 上进行 Hadoop 应用的开发,避免出现兼容性的问题。如需在 Windows 上做客户端应用开发,需要设置以下环境:在 Windows 的某个目录下解压一个 Hadoop 的安装包在 Windows 平台下编译 Hadoop 源码将安装包下的 lib 和 bin 目录用对应 Windows 版本平台编译的本地库替换在 Windows 系统中配置 HADOOP_HOME 指向刚才解压的安装包在 Windows 系统的 path 变量中加入 Hadoop 的 bin 目录2.4.2 客户端对象与文件操作import or
55、g.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.BlockLocation;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.LocatedFileStatus;import org.apache.hadoop.fs.Path;import org.apache.hadoop.fs.RemoteIterator;引入 jar 包private void init() Configuration conf=new Configurati
56、on(); try FileSystem fs=FileSystem.get(conf); catch (IOException e) e.printStackTrace(); 创建本地文件系统的客户端对象Configuration conf=null;FileSystem fs=null;private void init() conf=new Configuration(); try fs=FileSystem.get(new URI(hdfs:/master:9000), conf, root); catch (IOException | InterruptedException | U
57、RISyntaxException e) e.printStackTrace(); 创建分布式系统的客户端对象public void testMkdir() try boolean bool=fs.mkdirs(new Path(/data);System.out.println(bool); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 创建文件夹public void testUpload() try fs.copyFromLocalFile(new Path(E:test.txt),new Pa
58、th(/data); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 将本地文件拷贝到 HDFS 中public void testDown() try fs.copyToLocalFile(new Path(/data/test.txt),new Path(E:testDown.txt); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 将 HDFS 中的文件拷贝到本地public void testRenam
59、e() try boolean bool=fs.rename(new Path(/data), new Path(/dir);System.out.println(bool); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 重命名文件或文件夹名称public void testDelete() try boolean bool = fs.deleteOnExit(new Path(/dir/test.txt);System.out.println(bool); catch (IllegalArgume
60、ntException | IOException e) e.printStackTrace(); 删除文件或文件夹public void testListFile() try RemoteIterator listFiles=fs.listFiles(new Path(/), true);while(listFiles.hasNext()LocatedFileStatus fileStatus=listFiles.next();System.out.println(fileStatus.getPath().getName();System.out.println(fileStatus.get
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024食品零售商副食供应协议范本
- 2024年承诺书协议模板
- 2024年专业混凝土加工服务协议模板
- 2024年高端定制瓶装水订购协议
- 2024年二手挖掘机交易协议2
- 2024年期品牌双经销商协议规范
- 2024年装修项目合作框架协议样例
- DB11∕T 1707-2019 有轨电车工程设计规范
- 2024年度线上线下推广协作协议
- 2024年综合能源效率提升合作协议
- 第一单元我的视频类故事第一节认识数字故事课件
- 木结构防腐措施及方法
- 小学综合实践二年级上册第3单元《主题活动一:发现影子》教案
- 新北师大版八年级上册英语(全册知识点语法考点梳理、重点题型分类巩固练习)(家教、补习、复习用)
- 苏教版二年级上册数学 7的乘法口诀 教学课件
- 统编版 高中历史 选择性必修一 第三单元 第9课 近代西方的法律与教化 课件(共53张PPT)
- 功能主义基本理论和思想发展
- MATLAB SIMULINK讲解完整版
- SAPAPO快速指引
- 印尼语常用语
- 试议两校区教学管理面临的问题及对策
评论
0/150
提交评论