如上图位置,有一个事例jar包,我们可以运行测试一下。 如上图,我们可以看到有很多参数,我们可以试着传入。
上述命令是将根路径hdfs下的文件里的不同单词做个数统计,并输出到/wc目录中。
网页显示如下。 然后来体验一下在yarn上运行mapreduce,我们要修改下述配置文件。 然后编辑该文件 然后编辑yarn-site.xml 然后使用如下命令启动节点 然后再次运行mapreduce,注意输出目录要写一个新的目录。 启动测试
一、大数据1.含义大数据指在一定时间范围内使用常规的软件无法处理的数据集合!2.特点①海量②高增长率③多样性④低价值密度二、Hadoop1.含义狭义: Hadoop只代表hadoop框架本身!广义: hadoop代表整个hadoop体系,由hadoop框架和其他依赖于hadoop的其他框架共同组成!2.hadoop的组成2.x版本HDFS: 负责大数据存储的一个分布式文件系统!YARN: 负责为大数据计算程序提供资源申请,管理和调度的框架!MapReduce: 编程框架Common: 常用的工具包2.x版本和1.x版本的区别:在1.x版本,MR既负责运行MR程序还负责为MR程序申请资源!Hadoop集群只能为自身的MR程序提供服务!在2.x版本,MR只负责MR程序的计算,资源的调度和管理由YARN负责!Hadoop集群,不仅能为自身的MR程序提供服务!还可以为第三方计算引擎,例如TeZ,Spark,Flink等提供计算资源的调度服务!三、HDFS中的核心进程1.核心进程Namenode(1个): 负责HDFS上所有文件元数据的管理!元数据: 文件的属性(文件名,大小,创建时间,所属主,由哪些块组成)职责: ①负责接受客户端的所有请求②负责接受DN上报的块信息③负责向DN分配任务,例如维护文件的副本数等Datanode(N个): 负责HDFS上所有文件数据的存储!SecondaryNamenode(N个): 负责协助Namenode工作!四、YARN中的核心进程1.核心进程ResourceManager(1个): 负责整个集群所有资源的管理和调度!职责: ①负责接受客户端的所有请求②负责接受NM上报的块信息③负责向NM分配任务,例如检查NM是否健康,是否在线等NodeManager(N个): 负责当前机器所有资源的管理和调度!五、MapReduce中的核心进程1.MapReduce是一个编程模型!这个模型由两个阶段组成,一个称为Map阶段,另一个称为Reduce阶段!在Map阶段和Reduce阶段分别启动若干进程负责运算!这些进程称为Task!在Map阶段启动的Task称为MapTask!在Reduce阶段启动的Task称为ReduceTask!将一个MapReduce程序称为一个Job!一个Job中会启动若干个Task!在Job启动时,Job会先创建一个MRAppMaster进程,由这个进程和RM进行通信,为Job中的每个Task申请计算所需要的资源!Task的请求,会被RM缓存到一个调度队列中,由NM领取Task,领取后NM会根据Task要求,提供计算资源!提供后,为了避免计算资源在当前Task使用时被其他的task抢占,NM会将资源封装到一个Container中!Container可以对计算资源进行隔离!六、安装1.环境要求必须保证已经安装了JDK,有JAVA_HOME环境变量!2.安装解压在linux下编译的Hadoop!3. 建议将HADOOP_HOME提升为全局变量!后续的HADOOP体系中的所有的框架,都通过HADOOP_HOME找到hadoop的安装目录!将bin,sbin目录配置到PATH中!4.目录结构bin: 常用的工具hadoop所在的目录sbin: 提供对集群的管理功能,例如启动和停止进程!etc: 默认的配置文件目录七、使用1. 配置文件hadoop有4个默认我配置文件,这4个文件会随着Hadoop启动时,自动加载!如果希望对这4个文件加载的默认属性进行覆盖!用户需要自定义配置文件!文件格式: core-site.xml----->core-default.xmlhdfs-site.xml----->hdfs-default.xmlyarn-site.xml----->yarn-default.xmlmapred-site.xml----->mapred-default.xml配置文件的位置:自定义位置: hadoop --confdir 配置文件的目录默认配置文件目录: $HADOOP_HOME/etc/hadoop2.HDFS的运行模式①本地模式: 使用当前计算机的文件系统作为HDFS的文件系统!fs.defaultFS=file:///(默认)②分布式文件系统: 通过运行NN,DN等进程,由这些进程组成一个分布式的系统,进行文件的读写!fs.defaultFS=hdfs://NN所在的主机名:90003.启动一个分布式文件系统①在$HADOOP_HOME/etc/hadoop,配置core-site.xmlfs.defaultFS=hdfs://NN所在的主机名:9000②配置Hadoop默认的工作目录,在$HADOOP_HOME/etc/hadoop,配置core-site.xmlhadoop.tmp.dir=配置一个当前用户有写权限的非tmp目录③格式化NNhadoop namenode -format目的: ①生成NN的工作目录②在工作目录下生成NN所要使用的特殊的文件,例如VERSION,fsiamge000000注意: 一个集群搭建完成后,只需要格式化一次!④启动hadoop-daemon.sh start namenode|datanode⑤查看jpshttp://NN所运行的主机名:500704.MR的运行模式本地模式: 在本机使用多线程的方式模拟多个Task的运行!mapreduce.framework.name=local(默认)分布式模式: 在YARN上运行!mapreduce.framework.name=yarn(默认)5.配置MR在yarn上运行①在$HADOOP_HOME/etc/hadoop,配置mapred-site.xmlmapreduce.framework.name=yarn②配置YARN在$HADOOP_HOME/etc/hadoop,配置yarn-site.xml配置yarn.resourcemanager.hostname=RM运行的主机名yarn.xxxx-auxservice=mapreduce_shuffle③启动YARNyarn-daemon.sh start resourcemanager | nodemanager④查看jpshttp://rm所运行的主机名:8088⑤提交作业hadoop jar xxx.jar 主类名 输入目录.. 输出目录要去: 输出目录必须不存在输入目录中必须全部是文件