ceshi.txt输入地址:/data2/u_lx_data/qiandongjun/eclipse/crjworksp" />
当前位置:文档之家› Hadoop 学习笔记

Hadoop 学习笔记

Hadoop 学习笔记
Hadoop 学习笔记

Hadoop

在Hadoop上运行MapReduce命令

实验jar:WordCount.jar

运行代码:root/……/hadoop/bin/hadoop jar jar包名称使用的包名称input(输入地址) output(输出地址)

生成测试文件:echo -e "aa\tbb \tcc\nbb\tcc\tdd" > ceshi.txt

输入地址:/data2/u_lx_data/qiandongjun/eclipse/crjworkspace/input

输出地址:/data2/u_lx_data/qiandongjun/eclipse/crjworkspace/output

将测试文件转入输入文件夹:Hadoop fs -put ceshi.txt /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/input/ceshi.txt

运行如下代码:hadoop jar /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/WordCount.jar WordCount /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/input/ceshi.txt

/data2/u_lx_data/qiandongjun/eclipse/crjworkspace/output

Hadoop架构

1、HDFS架构

2、MapReduce架构

HDFS架构(采用了Master/Slave 架构)

1、Client --- 文件系统接口,给用户调用

2、NameNode --- 管理HDFS的目录树和相关的的文件元数据信息以及监控DataNode的状

态。信息以“fsimage”及“editlog”两个文件形势存放

3、DataNode --- 负责实际的数据存储,并将数据定期汇报给NameNode。每个节点上都

安装一个DataNode

4、Secondary NameNode --- 定期合并fsimage和edits日志,并传输给NameNode

(存储基本单位为block)

MapReduce架构(采用了Master/Slave 架构)

1、Client --- 提交MapReduce 程序并可查看作业运行状态

2、JobTracker --- 资源监控和作业调度

3、TaskTracker --- 向JobTracker汇报作业运行情况和资源使用情况(周期性),并同时接

收命令执行操作

4、Task --- (1)Map Task (2)Reduce Task ——均有TaskTracker启动

MapReduce处理单位为split,是一个逻辑概念

split的多少决定了Map Task的数目,每个split交由一个Map Task处理

Hadoop MapReduce作业流程及生命周期

一共5个步骤

1、作业提交及初始化。JobClient将作业相关上传到HDFS上,然后通过RPC通知JobTracker,

JobTracker 接收到指令后通过调度模块对作业初始化。

JobInProgress

TaskInProgress

2、 任务调度与监控。 一出现空白资源,JobTracker 会选择一个合适的任务使用空白资源。 任务调度器(双层结构),首先选择作业再选择作业中的任务(重点

考虑数据本地行)。

当TaskTracker 或Task 失败时,转移计算任务 当某Task 计算远落后于其他时,再给一个Task ,取计算较快的结果。 3、 任务运行环境准备。JVM 的启动和资源隔离,均由TaskTracker 实现。(每个Task 启动一

个独立的JVM )

4、 任务执行。 准备好环境后,TaskTracker 便会启动Task 。

JobTracker 5、 作业完成。

MapReduce 编程接口体系接口

在应用程序层和MapReduce 执行器之间,可以分为两层。

1、 Java API --- (1)InputFormat (2)Mapper (3)Partitioner (4)Reducer (5)OutputFormat

用户只需(2),(4),其余hadoop 自带 2、 工具层,提供了4个编程工具包

(1) JobControl (2) ChainMapper/ChainReducer (3) Hadoop Streaming (4) Hadoop Pipes

为非java 编程 为c/c++用户

MapReduce API — 序列化

序列化是指将结构化对象转为字节流以便于通过网络进行传输或写入持久存储的过程,主要作用:永久存储和进程间通信。

管理员自定义配置文件:由管理员设置,定义一些新的配置属性或者覆盖系统默认配置文件中的默认值。Hadoop 会优先加载Common 的两个配置文件。

配置文件中有3个配置参数:name(属性名)、value(属性值) 和description(属性描述) 此外,Hadoop 为配置文件添加了两个新的特性:final 参数和变量扩展。

final 参数:如果管理员不想让用户程序修改? 某些属性的属性值,可将该属性的

final 参数置为true 。

变量扩展:当读取配置文件时,如果某个属性存在对其他属性的引用,则 Hadoop 首

跟踪作业运行状况 为每个Task ,跟踪每个任务的运行状态

先会查找引用的属性是否为下列两种属性之一。如果是,则进行扩展。

①其他已经定义的属性。

②Java 中System.getProperties() 函数可获取属性。

Java API——MapReduce 作业配置

1、环境配置。环境配置由Hadoop 自动添加。主要:mapreddefault.xml及mapred-site.xml

2、用户自定义配置。用户自定义配置则由用户自己根据作业特点个性化定制而成。

InputFormat

InputFormat 主要用于描述输入数据的格式,它提供以下两个功能。

①数据切分:按照某个策略将输入数据切分成若干个split,以便确定Map Task 个数以

及对应的split。——getSplits 方法

②为Mapper 提供输入数据:给定某个split,能将其解析成一个个key/value 对。getSplits 方法:它会尝试着将输入数据切分成numSplits个InputSplit。

InputSplit:支持序列化操作主要是为了进程间通信。

当数据传送给map时,map会将输入分片传送到InputFormat,InputFormat则调用方法getRecordReader()生成RecordReader,RecordReader再通过creatKey()、creatValue()方法创建可供map处理的对。简而言之,InputFormat()方法是用来生成可供map处理的对的。

FileInputFormat

该函数实现中最核心的两个算法是文件切分算法和host 选择算法。

(1)文件切分算法

如果想让InputSplit尺寸大于block尺寸,则直接增大配置参数mapred.min.split.size

即可。新版API中,InputSplit划分算法不再考虑Map Task个数,而用MaxSize代替(mapred.max.split.size)

(2)host 选择算法

为此,FileInputFormat 设计了一个简单有效的启发式算法:首先按照rack 包含的数据量对rack 进行排序,然后在rack 内部按照每个node 包含的数据量对node 排序,最后取前N 个node 的host 作为InputSplit 的host 列表,这里的N 为block副本

数。

当使用基于FileInputFormat 实现InputFormat 时,为了提高Map Task 的数据本地

性,应尽量使InputSplit 大小与block 大小相同。

OutputFormat

主要用于描述输出数据的格式,它能够将用户提供的key/value 对写入特定格式的文件中

Mapper &Reducer

以Mapper为例:

新版API:参数封装到Context中(良好扩展性);不再继承JobConfigurable和Closeable,直接添加setup和cleanup进行初始化和清理工作;

Partitioner

MapReduce 提供了两个Partitioner 实现:HashPartitioner 和TotalOrderPartitioner。

基于TotalOrderPartitioner 全排序的效率跟key 分布规律和采样算法有直接关系;key 值分布越均匀且采样越具有代表性,则Reduce Task 负载越均衡,全排序效率越高。

TotalOrderPartitioner两个典型实例:TeraSort 和HBase 批量数据导入。

JobControl原理

JobControl由两个类组成:Job和JobControl

Job类:Job 类封装了一个MapReduce 作业及其对应的依赖关系,主要负责监控各个依赖作业的运行状态,以此更新自己的状态。如果一个作业的依赖作业失败,则该作业也会失败,后续所有作业均会失败。

JobControl类:JobControl 封装了一系列MapReduce 作业及其对应的依赖关系。。同时,它还提供了一些API 用于挂起、恢复和暂停该线程。

ChainMapper/ChainReducer

主要为了解决线性链式Mapper 而提出的,在Map或Reduce阶段存在多个Mapper,它产生的结果写到最终的HDFS 输出目录中

对于任意一个MapReduce 作业,Map 和Reduce 阶段可以有无限个Mapper,但Reducer 只能有一个。

Hadoop MapReduce 有一个约定,函数OutputCollector.collect(key, value) 执行期间不应改变key 和value 的值。

ChainMapper/ChainReducer实现原理

关键技术点:修改Mapper 和Reducer 的输出流,将本来要写入文件的输出结果重定向到另外一个Mapper 中。

当用户调用addMapper 添加Mapper 时,可能会为新添加的每个Mapper 指定一个特有的JobConf,为此,ChainMapper/ChainReducer 将这些JobConf 对象序列化后,统一保存到作业的JobConf 中。

Hadoop工作流引擎

在Hadoop 之上出现了很多开源的工作流引擎,主要可概括为两类:隐式工作流引擎和显式工作流引擎。

隐式工作流引擎:在MapReduce 之上添加了一个语言抽象层,允许用户使用更简单的方式编写应用程序。典型的有:Hive 、Pig 和Cascading。

显式工作流引擎:直接面向MapReduce 应用程序开发者,提供了一种作业依赖关系描述方式。典型的有:Oozie 和Azkaban

MapReduce 编程模型直接决定了MapReduce 的易用性。本章从简单地使用实例、设计原理以及调用时机等方面介绍了MapReduce 编程模型中的各个组件。

从整个体系结构上看,整个编程模型位于应用程序层和MapReduce 执行器之间,可以分为两层:第一层是最基本的Java API,第二层构建于Java API 之上,添加了几个方便用户编写复杂的MapReduce 程序和利用其他语言编写MapReduce 程序的工具。

Java API 分为新旧两套API。新API 在旧API 基础上封装而来,在易用性和扩展性面更好。

为了方便用户采用非Java 语言编写MapReduce 程序,Hadoop 提供了Hadoop Streaming和Hadoop Pipes 两个工具。它们本质上都是一个MapReduce 作业,区别在于Java 语言与非Java 语言之间的通信机制。

考虑到实际应用中,用户有时不只是编写单一的MapReduce 作业,而是存在复杂依赖关系的DAG 作业(工作流),Hadoop MapReduce 提供了JobControl 和

ChainMapper/ChainReducer 两个工具。

Hadoop RPC框架解析

网络通讯模块是分布式系统中最底层的模块,支撑了上层分布式环境下复杂的进程式通讯,是所有分布式系统的基础。

远程过程调用(RPC)是一种常用的分布式网络通信协议。

Hadoop RPC 特点

透明性(根本特征)、高性能、可控性、序列化层、函数调用层、网络传输层、服务器端处理框架。

Hadoop RPC总体架构

自上而下分为2层:

第一层是基于Java NIO 实现的客户机/服务器通信模型。

第二层是供更上层程序直接调用的RPC接口,这些接口底层即为客户机/服务器通讯模型。

Hadoop RPC有关的三个Java类

https://www.doczj.com/doc/2a3374305.html,ng.reflect(反射机制和动态代理相关类),https://www.doczj.com/doc/2a3374305.html,(网络编程库),java.nio(NIO)

Java动态代理机制:

(1)https://www.doczj.com/doc/2a3374305.html,ng.reflect.Proxy

动态代理机制的主类,提供了一组静态方法,用于为一组接口动态地生成代理类及其对象。

(2)https://www.doczj.com/doc/2a3374305.html,ng.reflect.InvocationHandler

调用处理器借口。

Java NIO

1、简介

Channel(管道):NIO把它支持的I/O对象抽象为Channel。

Buffer(缓冲区):Buffer是一块连续的内存区域,一般作为Channel收发数据的载体出现。

Selector(选择器):Selector类提供了监控一个或多个通道当前状态的机制。

2、Buffer相关类

所有缓存区包含一下3个属性:

Capacity:缓存区的末位置。表示了缓存区最多可以保存多少个数据。

Limit:缓存区当前存放数据的终点。不能对超过limit的区域进行读写操作。

Position:下一个读写单元的位置。

在写模式下,limit先与capacity相同,随着写入数据增加,position逐渐向limit趋近。

在读模式下,limit初始指向position所在位置,随着数据读取逐渐增加到limit。

则0 – positon之间即为读取以及写入的数据。

其他常用函数:

Flip():写模式转化为读模式。

Clear():重置buffer。

Buffer是一个抽象类不能被实例化。除boolean类外,每种基本类都有其buffer类。

3、Channel相关类

最常用是以SelectableChannel为基类的通道。其有两个子类,ServerSocketChannel

4、selector类

SelectableChannel类中的register()负责注册事件,返回一个SelectionKey对象。

SelectionKey用于跟踪注册事件。

MapReduce通讯协议

不同组件之间的通讯协议均是建立于RPC的。

MapReduce中共有6个主要的通讯协议,其中4个是面向Client的:

(1)、JobSubmissionProtocol:Client与JobTracker之间的通讯协议。用户通过该协议提交作业,查看作业运行情况。

(2)、RefreshUserMappingProtocol:Client通过该协议更新用户-用户映射关系。

(3)、RefreshAuthorizationPolicyProtocol:Client通过该协议更新MapReduce服务级别访问控制列表。

(4)、AdminOperationsProtocol:Client通过该协议更新队列,访问控制列表和节点列表。

出于安全考虑,常把(1)的权限交于普通用户。

另外2个位于MapReduce框架内部:

(1)、InterTrackerProtocol:TaskTracker和JobTracker之间的通讯协议。

(2)、TaskUmbilicalProtocol:Task与TaskTracker之间的通讯协议

所有使用MapReduce RPC的协议基类均为VersionedProtocol。

关系图:

作业提交与初始化

主要为后续作业执行准备环境,主要涉及创建目录,上传文件等操作。而一旦用户提交作业后,JobTracker端便会对作业进行初始化。

作业提交与初始化的4个步骤:

(1)、Shell命令提交作业

Jar命令将作业交给RunJar类处理,main函数经解压jar包设置环境变量后,将运行参数交给MapReduce程序。

(2)、将作业需要的全部文件上传到HDFS某目录

获取作业ID

创建目录

生成split文件

(3)、调用RPC接口向JobTracker提交作业

在JobTracker中依次进行操作:

1:创建JobInProgress对象

2:检查用户是否具有提交作业的权限

3:检查作业配置内存用量是否合理

4:通知TaskScheduler初始化作业

(4)、接受作业后,进行初始化

调用JobTracker.initJob()函数对新作业进行初始化。主要工作是构造Map Task和Reduce Task并对它们进行初始化。

小结:

作业提交与初始化过程是指从用户输入提交作业命令到作业初始化的整个过程。该过程涉及Hadoop三个非常重要的组件:JobClient、JobTracker、TaskScheduler。

作业提交主要是为后续作业执行准备环境,涉及创建目录、上传文件等操作。作业初始化的主要工作是根据输入数据量和作业配置参数将作业分解成若干个Map Task以及Reduce Task,并添加到相关数据结构中,以等待后续被调度执行。

Hadoop DistibutedCache是Hadoop为方便用户进行应用程序开发而设计的数据分发工具,它能够将只读的大文件自动分发到各个节点上进行本地缓存,以便Task运行时加载使用。它将待分发的文件根据可见级别分为public级别和private级别两种,其中,public级别文件允许同一个TaskTracker上所有用户共享,而private级别文件只允许某个用户的所有作业共享。

作业在JobTracker端经初始化后.会被存放到相关数据结构中等待被调度执行。

JobTracker

Hadoop MapReduce采用了Master/Slave结构。其中,Master—JobTracker,他是整个集群中唯一的全局

直接决定着

它是整个系统中最重

(1)作业控制

在其内部以“三层多叉树”的方式跟踪描述作业的运行状态。作业被抽象为三层:作业监

为了方便查找定位,JobTracker将JobID和JobInProgress映射到Map数据结构jobs中、TrackerID和TaskID集合映射关系保存到Map数据结构trackerToTaskMap中。

(2)资源管理

不断接收各个TaskTracker周期性发送过来的资源量和任务状态等信息,并综合考虑TaskTracker(所在DataNode)的数据分布、资源剩余量、作业优先级、作业提交时间等因素,为TaskTracker分配最合适的任务。

JobTracker启动过程分析

JobTracker是一个后台进程,它包含一个main 函数。其中函数startTracker()的主要工作是创建一个JobTracker对象,其构造函数的主要工作是对一些重要的变量进行初始化。而函数offerService()则是启动一些重要的服务和进程。

startTracker()

需初始化的变量列表:

ACLsManager类

权限管理类,提供了checkAccess方法以对用户的各种操作进行权限检查。设计两种权

HttpServer类

Hadoop对外提供Web服务的HTTP服务器,它封装了轻量级开源Web服务器Jetty DNSToSwitchMapper接口

定义了将DNS接口和节点IP地址转换成网络位置的规则。

OfferServer()

会启动JobTracker内部几个比较重要的后台服务线程。

hadoop基本命令_建表-删除-导数据

HADOOP表操作 1、hadoop简单说明 hadoop 数据库中的数据是以文件方式存存储。一个数据表即是一个数据文件。hadoop目前仅在LINUX 的环境下面运行。使用hadoop数据库的语法即hive语法。(可百度hive语法学习) 通过s_crt连接到主机。 使用SCRT连接到主机,输入hive命令,进行hadoop数据库操作。 2、使用hive 进行HADOOP数据库操作

3、hadoop数据库几个基本命令 show datebases; 查看数据库内容; 注意:hadoop用的hive语法用“;”结束,代表一个命令输入完成。 usezb_dim; show tables;

4、在hadoop数据库上面建表; a1: 了解hadoop的数据类型 int 整型; bigint 整型,与int 的区别是长度在于int; int,bigint 相当于oralce的number型,但是不带小数点。 doubble 相当于oracle的numbe型,可带小数点; string 相当于oralce的varchar2(),但是不用带长度; a2: 建表,由于hadoop的数据是以文件有形式存放,所以需要指定分隔符。 create table zb_dim.dim_bi_test_yu3(id bigint,test1 string,test2 string)

row format delimited fields terminated by '\t' stored as textfile; --这里指定'\t'为分隔符 a2.1 查看建表结构: describe A2.2 往表里面插入数据。 由于hadoop的数据是以文件存在,所以插入数据要先生成一个数据文件,然后使用SFTP将数据文件导入表中。

hadoop基本操作指令

Hadoop基本操作指令 假设Hadoop的安装目录HADOOP_HOME为/home/admin/hadoop,默认认为Hadoop环境已经由运维人员配置好直接可以使用 启动与关闭 启动Hadoop 1. 进入HADOOP_HOME目录。 2. 执行sh bin/start-all.sh 关闭Hadoop 1. 进入HADOOP_HOME目录。 2. 执行sh bin/stop-all.sh 文件操作 Hadoop使用的是HDFS,能够实现的功能和我们使用的磁盘系统类似。并且支持通配符,如*。 查看文件列表 查看hdfs中/user/admin/aaron目录下的文件。 1. 进入HADOOP_HOME目录。 2. 执行sh bin/hadoop fs -ls /user/admin/aaron 这样,我们就找到了hdfs中/user/admin/aaron目录下的文件了。 我们也可以列出hdfs中/user/admin/aaron目录下的所有文件(包括子目录下的文件)。 1. 进入HADOOP_HOME目录。 2. 执行sh bin/hadoop fs -lsr /user/admin/aaron 创建文件目录 查看hdfs中/user/admin/aaron目录下再新建一个叫做newDir的新目录。 1. 进入HADOOP_HOME目录。 2. 执行sh bin/hadoop fs -mkdir /user/admin/aaron/newDir 删除文件 删除hdfs中/user/admin/aaron目录下一个名叫needDelete的文件 1. 进入HADOOP_HOME目录。 2. 执行sh bin/hadoop fs -rm /user/admin/aaron/needDelete 删除hdfs中/user/admin/aaron目录以及该目录下的所有文件

Hadoop 学习笔记

Hadoop 在Hadoop上运行MapReduce命令 实验jar:WordCount.jar 运行代码:root/……/hadoop/bin/hadoop jar jar包名称使用的包名称input(输入地址) output(输出地址) 生成测试文件:echo -e "aa\tbb \tcc\nbb\tcc\tdd" > ceshi.txt 输入地址:/data2/u_lx_data/qiandongjun/eclipse/crjworkspace/input 输出地址:/data2/u_lx_data/qiandongjun/eclipse/crjworkspace/output 将测试文件转入输入文件夹:Hadoop fs -put ceshi.txt /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/input/ceshi.txt 运行如下代码:hadoop jar /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/WordCount.jar WordCount /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/input/ceshi.txt /data2/u_lx_data/qiandongjun/eclipse/crjworkspace/output Hadoop架构 1、HDFS架构 2、MapReduce架构 HDFS架构(采用了Master/Slave 架构) 1、Client --- 文件系统接口,给用户调用 2、NameNode --- 管理HDFS的目录树和相关的的文件元数据信息以及监控DataNode的状 态。信息以“fsimage”及“editlog”两个文件形势存放 3、DataNode --- 负责实际的数据存储,并将数据定期汇报给NameNode。每个节点上都 安装一个DataNode 4、Secondary NameNode --- 定期合并fsimage和edits日志,并传输给NameNode (存储基本单位为block) MapReduce架构(采用了Master/Slave 架构) 1、Client --- 提交MapReduce 程序并可查看作业运行状态 2、JobTracker --- 资源监控和作业调度 3、TaskTracker --- 向JobTracker汇报作业运行情况和资源使用情况(周期性),并同时接 收命令执行操作 4、Task --- (1)Map Task (2)Reduce Task ——均有TaskTracker启动 MapReduce处理单位为split,是一个逻辑概念 split的多少决定了Map Task的数目,每个split交由一个Map Task处理 Hadoop MapReduce作业流程及生命周期 一共5个步骤 1、作业提交及初始化。JobClient将作业相关上传到HDFS上,然后通过RPC通知JobTracker,

Hadoop 集群基本操作命令-王建雄-2016-08-22

Hadoop 集群基本操作命令 列出所有Hadoop Shell支持的命令 $ bin/hadoop fs -help (注:一般手动安装hadoop大数据平台,只需要创建一个用户即可,所有的操作命令就可以在这个用户下执行;现在是使用ambari安装的dadoop大数据平台,安装过程中会自动创建hadoop生态系统组件的用户,那么就可以到相应的用户下操作了,当然也可以在root用户下执行。下面的图就是执行的结果,只是hadoop shell 支持的所有命令,详细命令解说在下面,因为太多,我没有粘贴。) 显示关于某个命令的详细信息 $ bin/hadoop fs -help command-name (注:可能有些命令,不知道什么意思,那么可以通过上面的命令查看该命令的详细使用信息。例子: 这里我用的是hdfs用户。) 注:上面的两个命令就可以帮助查找所有的haodoop命令和该命令的详细使用资料。

创建一个名为 /daxiong 的目录 $ bin/hadoop dfs -mkdir /daxiong 查看名为 /daxiong/myfile.txt 的文件内容$ bin/hadoop dfs -cat /hadoop dfs -cat /user/haha/part-m-00000 上图看到的是我上传上去的一张表,我只截了一部分图。 注:hadoop fs <..> 命令等同于hadoop dfs <..> 命令(hdfs fs/dfs)显示Datanode列表 $ bin/hadoop dfsadmin -report

$ bin/hadoop dfsadmin -help 命令能列出所有当前支持的命令。比如: -report:报告HDFS的基本统计信息。 注:有些信息也可以在NameNode Web服务首页看到 运行HDFS文件系统检查工具(fsck tools) 用法:hadoop fsck [GENERIC_OPTIONS] [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]] 命令选项描述 检查的起始目录。 -move 移动受损文件到/lost+found -delete 删除受损文件。 -openforwrite 打印出写打开的文件。 -files 打印出正被检查的文件。 -blocks 打印出块信息报告。 -locations 打印出每个块的位置信息。 -racks 打印出data-node的网络拓扑结构。 打印版本信息 用法:hadoop version 运行集群平衡工具。管理员可以简单的按Ctrl-C来停止平衡过程(balancer)

(完整版)hadoop例题

选择题 1、关于MapReduce的描述错误的是() A、MapReduce框架会先排序map任务的输出 B、通常,作业的输入输出都会被存储在文件系统中 C、通常计算节点和存储节点是同一节点 D、一个Task通常会把输入集切分成若干独立的数据块 2、关于基于Hadoop的MapReduce编程的环境配置,下面哪一步是不必要的() A、安装linux或者在Windows下安装Cgywin B、安装java C、安装MapReduce D、配置Hadoop参数 3、关于基于Hadoop的MapReduce编程的环境配置,下面哪一步是不必要的() A、配置java环境变量 B、配置Hadoop环境变量 C、配置Eclipse D、配置ssh 4、下列说法错误的是() A、MapReduce中maperconbiner reducer 缺一不可 B、在JobConf中InputFormat参数可以不设 C、在JobConf中MapperClass参数可以不设

D、在JobConf中OutputKeyComparator参数可以不设 5、下列关于mapreduce的key/value对的说法正确的是() A、输入键值对不需要和输出键值对类型一致 B、输入的key类型必须和输出的key类型一致 C、输入的value类型必须和输出的value类型一致 D、输入键值对只能映射成一个输出键值对 6、在mapreduce任务中,下列哪一项会由hadoop系统自动排序() A、keys of mapper's output B、values of mapper's output C、keys of reducer's output D、values of reducer's output 7、关于mapreduce框架中一个作业的reduce任务的数目,下列说法正确的是() A、由自定义的Partitioner来确定 B、是分块的总数目一半 C、可以由用户来自定义,通过JobConf.setNumReducetTask(int)来设定一个作业中reduce的任务数目 D、由MapReduce随机确定其数目 8、MapReduce框架中,在Map和Reduce之间的combiner的作用是() A、对Map的输出结果排序 B、对中间过程的输出进行本地的聚集

Hadoop命令大全

Hadoop命令大全 Hadoop配置: Hadoop配置文件core-site.xml应增加如下配置,否则可能重启后发生Hadoop 命名节点文件丢失问题: hadoop.tmp.dir /home/limingguang/hadoopdata 环境变量设置: 为了便于使用各种命令,可以在.bashrc文件中添加如下内容: export JAVA_HOME=/home/limingguang/jdk1.7.0_07 export HADOOP_HOME=/home/limingguang/hadoop-1.0.3 export HIVE_HOME=/home/limingguang/hive-0.9.0 export MAHOUT_HOME=/home/limingguang/mahout-distribution-0.7 export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$MAHOUT_HOME/bin: $PATH export HADOOP_HOME_WARN_SUPPRESS=1 具体目录请更改为安装目录,HADOOP_HOME_WARN_SUPPRESS变量为抑制HADOOP_HOME变量重复时的告警。 常用命令:

1、列出所有Hadoop Shell支持的命令 $ bin/hadoop fs -help 2、显示关于某个命令的详细信息 $ bin/hadoop fs -help command-name 3、用户可使用以下命令在指定路径下查看历史日志汇总 $ bin/hadoop job -history output-dir 这条命令会显示作业的细节信息,失败和终止的任务细节。 4、关于作业的更多细节,比如成功的任务,以及对每个任务的所做的尝试次数等可以用下面的命令查看 $ bin/hadoop job -history all output-dir 5、格式化一个新的分布式文件系统: $ bin/hadoop namenode -format 6、在分配的NameNode上,运行下面的命令启动HDFS: $ bin/start-dfs.sh bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。 7、在分配的JobTracker上,运行下面的命令启动Map/Reduce: $ bin/start-mapred.sh bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves 文件的内容,在所有列出的slave上启动TaskTracker守护进程。 8、在分配的NameNode上,执行下面的命令停止HDFS: $ bin/stop-dfs.sh bin/stop-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止DataNode守护进程。 9、在分配的JobTracker上,运行下面的命令停止Map/Reduce: $ bin/stop-mapred.sh bin/stop-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止TaskTracker守护进程。 10、启动所有 $ bin/start-all.sh 11、关闭所有 $ bin/stop-all.sh DFSShell 10、创建一个名为 /foodir 的目录 $ bin/hadoop dfs -mkdir /foodir 11、创建一个名为 /foodir 的目录 $ bin/hadoop dfs -mkdir /foodir 12、查看名为 /foodir/myfile.txt 的文件内容 $ bin/hadoop dfs -cat /foodir/myfile.txt

hadoop常用命令

启动Hadoop ?进入HADOOP_HOME目录。 ?执行sh bin/start-all.sh 关闭Hadoop ?进入HADOOP_HOME目录。 ?执行sh bin/stop-all.sh 1、查看指定目录下内容 hadoopdfs –ls [文件目录] eg: hadoopdfs –ls /user/wangkai.pt 2、打开某个已存在文件 hadoopdfs –cat [file_path] eg:hadoopdfs -cat /user/wangkai.pt/data.txt 3、将本地文件存储至hadoop hadoopfs –put [本地地址] [hadoop目录] hadoopfs –put /home/t/file.txt /user/t (file.txt是文件名) 4、将本地文件夹存储至hadoop hadoopfs –put [本地目录] [hadoop目录] hadoopfs –put /home/t/dir_name /user/t (dir_name是文件夹名) 5、将hadoop上某个文件down至本地已有目录下hadoopfs -get [文件目录] [本地目录] hadoopfs –get /user/t/ok.txt /home/t 6、删除hadoop上指定文件 hadoopfs –rm [文件地址] hadoopfs –rm /user/t/ok.txt 7、删除hadoop上指定文件夹(包含子目录等)hadoopfs –rm [目录地址] hadoopfs –rmr /user/t

8、在hadoop指定目录内创建新目录 hadoopfs –mkdir /user/t 9、在hadoop指定目录下新建一个空文件 使用touchz命令: hadoop fs -touchz /user/new.txt 10、将hadoop上某个文件重命名 使用mv命令: hadoop fs –mv /user/test.txt /user/ok.txt (将test.txt重命名为ok.txt) 11、将hadoop指定目录下所有内容保存为一个文件,同时down至本地hadoopdfs –getmerge /user /home/t 12、将正在运行的hadoop作业kill掉 hadoop job –kill [job-id] 1、列出所有Hadoop Shell支持的命令 $ bin/hadoopfs -help 2、显示关于某个命令的详细信息 $ bin/hadoopfs -help command-name 3、用户可使用以下命令在指定路径下查看历史日志汇总 $ bin/hadoop job -history output-dir 这条命令会显示作业的细节信息,失败和终止的任务细节。 4、关于作业的更多细节,比如成功的任务,以及对每个任务的所做的尝试次数等可以用下面的命令查看 $ bin/hadoop job -history all output-dir 5、格式化一个新的分布式文件系统: $ bin/hadoopnamenode -format 6、在分配的NameNode上,运行下面的命令启动HDFS: $ bin/start-dfs.sh bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。 7、在分配的JobTracker上,运行下面的命令启动Map/Reduce: $ bin/start-mapred.sh bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。 8、在分配的NameNode上,执行下面的命令停止HDFS: $ bin/stop-dfs.sh

Hadoop命令大全

Hadoop命令大全 (2010-04-19 22:10:17) 1、列出所有Hadoop Shell支持的命令 $ bin/hadoop fs -help 2、显示关于某个命令的详细信息 $ bin/hadoop fs -help command-name 3、用户可使用以下命令在指定路径下查看历史日志汇总 $ bin/hadoop job -history output-dir 这条命令会显示作业的细节信息,失败和终止的任务细节。 4、关于作业的更多细节,比如成功的任务,以及对每个任务的所做的尝试次数等可以用下面的命令查看 $ bin/hadoop job -history all output-dir 5、格式化一个新的分布式文件系统: $ bin/hadoop namenode -format 6、在分配的NameNode上,运行下面的命令启动HDFS: $ bin/start-dfs.sh bin/start-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动DataNode守护进程。 7、在分配的JobTracker上,运行下面的命令启动Map/Reduce: $ bin/start-mapred.sh bin/start-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上启动TaskTracker守护进程。 8、在分配的NameNode上,执行下面的命令停止HDFS: $ bin/stop-dfs.sh bin/stop-dfs.sh脚本会参照NameNode上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止DataNode守护进程。 9、在分配的JobTracker上,运行下面的命令停止Map/Reduce: $ bin/stop-mapred.sh bin/stop-mapred.sh脚本会参照JobTracker上${HADOOP_CONF_DIR}/slaves文件的内容,在所有列出的slave上停止TaskTracker守护进程。 DFSShell 10、创建一个名为/foodir 的目录 $ bin/hadoop dfs -mkdir /foodir 11、创建一个名为/foodir 的目录 $ bin/hadoop dfs -mkdir /foodir 12、查看名为/foodir/myfile.txt 的文件内容 $ bin/hadoop dfs -cat /foodir/myfile.txt DFSAdmin 13、将集群置于安全模式 $ bin/hadoop dfsadmin -safemode enter 14、显示Datanode列表

hadoop提交作业分析

Hadoop提交作业流程分析 bin/hadoop jar mainclass args …… 这样的命令,各位玩Hadoop的估计已经调用过NN次了,每次写好一个Project或对Project做修改后,都必须打个Jar包,然后再用上面的命令提交到Hadoop Cluster上去运行,在开发阶段那是极其繁琐的。程序员是“最懒”的,既然麻烦肯定是要想些法子减少无谓的键盘敲击,顺带延长键盘寿命。比如有的人就写了些Shell脚本来自动编译、打包,然后提交到Hadoop。但还是稍显麻烦,目前比较方便的方法就是用Hadoop eclipse plugin,可以浏览管理HDFS,自动创建MR程序的模板文件,最爽的就是直接Run on hadoop了,但版本有点跟不上Hadoop的主版本了,目前的MR模板还是的。还有一款叫Hadoop Studio的软件,看上去貌似是蛮强大,但是没试过,这里不做评论。那么它们是怎么做到不用上面那个命令来提交作业的呢不知道没关系,开源的嘛,不懂得就直接看源码分析,这就是开源软件的最大利处。 我们首先从bin/hadoop这个Shell脚本开始分析,看这个脚本内部到底做了什么,如何来提交Hadoop作业的。 因为是Java程序,这个脚本最终都是要调用Java来运行的,所以这个脚本最重要的就是添加一些前置参数,如CLASSPATH等。所以,我们直接跳到这个脚本的最后一行,看它到底添加了那些参数,然后再

逐个分析(本文忽略了脚本中配置环境参数载入、Java查找、cygwin 处理等的分析)。 #run it exec "$JAVA"$JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH"$CLASS "$@" 从上面这行命令我们可以看到这个脚本最终添加了如下几个重要参数:JAVA_HEAP_MAX、HADOOP_OPTS、CLASSPATH、CLASS。下面我们来一个个的分析(本文基于Cloudera Hadoop 分析)。 首先是JAVA_HEAP_MAX,这个就比较简单了,主要涉及代码如下:JAVA_HEAP_MAX=-Xmx1000m # check envvars which might override default args if [ "$HADOOP_HEAPSIZE" !="" ];then #echo"run with heapsize $HADOOP_HEAPSIZE" JAVA_HEAP_MAX="-Xmx""$HADOOP_HEAPSIZE""m" #echo$JAVA_HEAP_MAX fi

(完整版)hadoop常见笔试题答案

Hadoop测试题 一.填空题,1分(41空),2分(42空)共125分 1.(每空1分) datanode 负责HDFS数据存储。 2.(每空1分)HDFS中的block默认保存 3 份。 3.(每空1分)ResourceManager 程序通常与NameNode 在一个节点启动。 4.(每空1分)hadoop运行的模式有:单机模式、伪分布模式、完全分布式。 5.(每空1分)Hadoop集群搭建中常用的4个配置文件为:core-site.xml 、hdfs-site.xml 、mapred-site.xml 、yarn-site.xml 。 6.(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块 中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求。 7.(每空2分)一个HDFS集群包括两大部分,即namenode 与datanode 。一般来说,一 个集群中会有一个namenode 和多个datanode 共同工作。 8.(每空2分) namenode 是集群的主服务器,主要是用于对HDFS中所有的文件及内容 数据进行维护,并不断读取记录集群中datanode 主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。 9.(每空2分) datanode 在HDFS集群中担任任务具体执行角色,是集群的工作节点。文 件被分成若干个相同大小的数据块,分别存储在若干个datanode 上,datanode 会定期向集群内namenode 发送自己的运行状态与存储内容,并根据namnode 发送的指令进行工作。 10.(每空2分) namenode 负责接受客户端发送过来的信息,然后将文件存储位置信息发 送给client ,由client 直接与datanode 进行联系,从而进行部分文件的运算与操作。 11.(每空1分) block 是HDFS的基本存储单元,默认大小是128M 。 12.(每空1分)HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到 3 个相互独立的硬件上,这样可以快速恢复损坏的数据。 13.(每空2分)当客户端的读取操作发生错误的时候,客户端会向namenode 报告错误,并 请求namenode 排除错误的datanode 后,重新根据距离排序,从而获得一个新的的读取路径。如果所有的datanode 都报告读取失败,那么整个任务就读取失败。14.(每空2分)对于写出操作过程中出现的问题,FSDataOutputStream 并不会立即关闭。 客户端向Namenode报告错误信息,并直接向提供备份的datanode 中写入数据。备份datanode 被升级为首选datanode ,并在其余2个datanode 中备份复制数据。 NameNode对错误的DataNode进行标记以便后续对其进行处理。 15.(每空1分)格式化HDFS系统的命令为:hdfs namenode –format 。 16.(每空1分)启动hdfs的shell脚本为:start-dfs.sh 。 17.(每空1分)启动yarn的shell脚本为:start-yarn.sh 。 18.(每空1分)停止hdfs的shell脚本为:stop-dfs.sh 。 19.(每空1分)hadoop创建多级目录(如:/a/b/c)的命令为:hadoop fs –mkdir –p /a/b/c 。 20.(每空1分)hadoop显示根目录命令为:hadoop fs –lsr 。 21.(每空1分)hadoop包含的四大模块分别是:Hadoop common 、HDFS 、

Hadoop FS Shell命令大全

Hadoop FS Shell命令大全 您的评价: 收藏该经验 调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme 是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如 /parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置文件中的默认值是namenode:namenodeport)。大多数FS Shell命令的行为和对应的Unix Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到stderr,其他信息输出到stdout。 cat 使用方法:hadoop fs -cat URI [URI …] 将路径指定文件的内容输出到stdout。 示例: ?hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2 ?hadoop fs -cat file:///file3 /user/hadoop/file4 返回值: 成功返回0,失败返回-1。 chgrp 使用方法:hadoop fs -chgrp [-R] GROUP URI [URI …] Change group association of files. With -R, make the change recursively through the directory structure. The user must be the owner of files, or else a super-user. Additional information is in the Permissions User Guide. --> 改变文件所属的组。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。更多的信息请参见HDFS权限用户指南。 chmod 使用方法:hadoop fs -chmod [-R] URI [URI …] 改变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。更多的信息请参见HDFS权限用户指南。 chown 使用方法:hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ] 改变文件的拥有者。使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。更多的信息请参见HDFS权限用户指南。

Hadoop入门教程(四)MR作业的提交监控、输入输出控制及特性使用-北京尚学堂

北京尚学堂提供 上次课讲到MR重要运行参数,本次继续为大家讲解MapReduce相关 提交作业并监控 JobClient是用户作业与JobTracker交互的主要接口,它提供了提交作业,跟踪作业进度、访问任务报告及logs、以及获取MR集群状态信息等方法。 提交作业流程包括: ?检查作业的输入输出 ?计算作业的输入分片(InputSplit) ?如果需要,为DistributedCache设置必须的账户信息 ?将作业用到的jar包文件和配置信息拷贝至文件系统(一般为HDFS)上的MR系统路径中 ?提交作业到JobTracker,并可监控作业状态 作业历史(Job History)文件会记录在https://www.doczj.com/doc/2a3374305.html,er.location指定的位置,默认在作业输出路径下的logs/history/路径下。因此历史日志默认在mapred.output.dir/logs/history下。 用户可以将https://www.doczj.com/doc/2a3374305.html,er.location值设置为none来不记录作业历史。 使用命令来查看历史日志: 1 $hadoop job -history output-dir 上面命令会显示作业的详细信息、失败的被kill的任务(tip)的详细信息。使用下面命令可以查看作业更详细的信息: 1 $hadoop job -history all output-dir 可以使用OutputLogFilter从输出路径中过滤日志文件。 一般,我们创建应用,通过JobConf设置作业的各种属性,然后使用JobClient提交作业并监控进度。 作业控制 有时可能需要一个作业链完成复杂的任务。这点是可以轻松实现的,因为作业输出一般都在分布式文件系统上,作业输出可以当做下个作业的输入,这样就形成了链式作业。 这种作业成功是否依赖于客户端。客户端可以使用以下方式来控制作业的执行: ?runJob(JobConf):提交作业并仅在作业完成时返回 ?submitJob(JobConf):提交作业后立即返回一个RunningJob的引用,使用它可以查询作业状态并处理调度逻辑。 ?JobConf.setJobEndNotificationURI(String):设置作业完成时通知 你也可以使用Oozie来实现复杂的作业链。 作业输入 下面讲作业输入的内容。 InputFormat描述MR作业的输入信息。InputFormat有以下作用: 1.验证作业的输入信息

Hadoop最全面试题整理(附目录)

Hadoop面试题目及答案(附目录) 选择题 1.下面哪个程序负责HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案C datanode 2. HDfS 中的block 默认保存几份? a)3 份b)2 份c)1 份d)不确定 答案A 默认3 份 3.下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 答案D 分析:hadoop 的集群是基于master/slave 模式,namenode 和jobtracker 属于master,datanode 和tasktracker 属于slave,master 只有一个,而slave 有多个SecondaryNameNode 内存需求和NameNode 在一个数量级上,所以通常secondaryNameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。 JobTracker 和TaskTracker JobTracker 对应于NameNode,TaskTracker 对应于DataNode,DataNode 和NameNode 是针对数据存放来而言的,JobTracker 和TaskTracker 是对于MapReduce 执行而言的。mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:jobclient,JobTracker 与TaskTracker。 1、JobClient 会在用户端通过JobClient 类将应用已经配置参数打包成jar 文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker 创建每一个Task(即MapTask 和ReduceTask)并将它们分发到各个TaskTracker 服务中去执行。 2、JobTracker 是一个master 服务,软件启动之后JobTracker 接收Job,负责调度Job 的每一个子任务task 运行于TaskTracker 上,并监控它们,如果发现有失败的task 就重新运行它。一般情况应该把JobTracker 部署在单独的机器上。 3、TaskTracker 是运行在多个节点上的slaver 服务。TaskTracker 主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在HDFS 的DataNode 上。 4. Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 答案C Doug cutting 5. HDFS 默认Block Size a)32MB b)64MB c)128MB 答案:B 6. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络c)磁盘IO d)内存 答案:C 磁盘 首先集群的目的是为了节省成本,用廉价的pc 机,取代小型机及大型机。小型机和大型机

基于Hadoop的数据作业管理平台设计与实现

基于Hadoop的数据作业管理平台设计与实现随着“大数据”时代的到来,分布式数据处理平台受到越来越广泛的关注,其中H adoop成为了以数据为中心的大规模数据处理平台的主流实现之一。Hadoop在互联网企业得到了广泛的应用,由于Hadoop任务处理需要编写MapReduce程序、处理数据的输入和输出,并且在大公司内每天的任务处理数量庞大,如何对Hadoop的任务进行有效管理成为了一大难点。因此开发一套基于Hadoop的数据作业管理平台显得十分有必要。本文首先详细分析了Hadoop的分布式文件系统和MapReduce计算框架,最后详细阐述了平台的设计和实现。 本文完成的主要工作包括:1.在充分考虑通用性、扩展性、安全性以及高效性的基础上确定了平台架构,规划了基于Hadoop的数据作业管理平台的框架设计,基于Nginx、FastGCI、MFC等技术设计了平台的逻辑功能模块、数据库结构和客户端界面。2.基于Hadoop的分布式文件系统(HDFS),实现了业务数据的分布式存储;基于Hadoop的MapReduce编程模型对平台的分布处理程序进行了封装,实现了Hadoop任务的统一调度。3.规划了图片批次数据从批次创建、数据准备、批次作业、批次验收到批次入库的处理流程,实现了业务流程的平台化管理。4.建立了平台的帐号管理体系,对帐号进行角色权限管理,实现了不同模块间的权限分离,保证了平台的数据安全性。 本文设计和实现的基于Hadoop的数据的数据作业管理平台已经在某企业投入使用。平台结合Hadoop分布式处理系统,支持图片业务数据的分布式存储、图片拼接分布式处理和图片隐私打码分布式处理,实现了图片业务数据的流程化处理。平台运行以来稳定可靠,缩短了业务数据的作业周期,减少了人力成本,达到了预期设计目标。

hadoop启动模式、基本配置、启动方式

Local (Standalone) Mode MapReduce程序运行在本地,启动jvm 启动本地模式: 1、配置hadoop-env.sh配置文件中的java_home路径 2、在hadoop安装目录下:mkdir input 3、在input目录下创建任意文件 4、统计input文件夹下所有文件中的单词的数量: bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount input output Pseudo-Distributed Mode 1、配置etc/hadoop/core-site.xml: ##配置namenode所在主机 fs.defaultFS hdfs://bxp:8020 ##配置文件临时目录 hadoop.tmp.dir /usr/lib/hadoop-2.5.0-cdh5.3.6/data/tmp 2、配置etc/hadoop/hdfs-site.xml: ##配置文件备份数量 dfs.replication 1 3、格式化文件系统 bin/hdfsnamenode -format

Hadoop原理期末作业(5)

Hadoop原理期末作业 一、搭建一个由三个节点构成的完全分布式非HA集群; 1、主机角色分配: 2、搭建HDFS集群: (1)core-site.xml配置文件代码及注释所编辑的代码行作用:(5分) fs.defaultFS hdfs://JYM2018122101001Master:9000 (2)hadoop-env.sh配置文件代码及注释所编辑的代码行作用:(5分) export JAVA_HOME=/home/YM/software/jdk1.8.0_45 (3)hdfs-site.xml配置文件代码及注释所编辑的代码行作用:(5分) https://www.doczj.com/doc/2a3374305.html,.dir /home/YM/dfsdate/name dfs.datanode.data.dir /home/YM/dfsdate/data

https://www.doczj.com/doc/2a3374305.html,node.secondary.http-address JYM2018122101001Slave01:50090 dfs.replication 2 dfs.blocksize 128M (4)slaves配置文件代码:(1分) JYM2018122101001Slave01 JYM2018122101001Slave02 (5)将Hadoop配置到/etc/profile系统环境变量;(2分) export JAVA_HOME=/home/YM/software/jdk1.8.0_45 export JRE_HOME=/home/YM/software/jdk1.8.0_45/jre export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export HADOOP_HOME=/home/YM/software/hadoop-2.8.1 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin (6)批量启动HDFS集群,查看各个节点的进程,并截图,要求截图中必须含有用户及主机名;(5分) 2、搭建简单yarn集群: (1)yarn-site.xml配置文件的内容及注释所编辑的代码行作用;(5分)

相关主题
文本预览
相关文档 最新文档