hadoop学习心得

hadoop学习心得
hadoop学习心得

竭诚为您提供优质文档/双击可除

hadoop学习心得

篇一:hadoop初步学习文档

hadoop初步学习文档

1hadoop简介

Apachehadoop是一款支持数据密集型分布式应用并以Apache2.0许可协议发布的开源软件框架。它支持在商品硬件构建的大型集群上运行的应用程序。hadoop是根据google 公司发表的mapReduce和google文件系统的论文自行实现而成。

1.1hadoop基本构成

hadoop是一个能够对大量数据进行分布式处理的软件框架,hadoop实现了一个分布式文件系统(hadoopDistributedFilesystem),简称hDFs。hadoop的集群是基于master/slave模式

hadoop基本运行结构图如下:

其中master和slave1、slave2、

slave3、slave4分别为五台主机,namenode、Datanode

等为运行在主机上的进程。进程的作用如下:

(一)namenode是hDFs的守护程序,负责记录文件是

如何分割成数据块的,以及这些数据块分别被存到那些数据节点上,主要功能是对内存及I/o进行集中管理(是个单点,发生故障将使集群崩溃)

(二)Datanode这个后台程序负责把hDFs数据块读写

到本地的文件系统,当客户端要读写某个数据时候,先由namenode告诉客户端去哪个Datanode进行具体的读/写操作,然后客户端直接与这个Datanode服务器上的后台程序进行

通讯,并且对相关的数据块进行读/写操作。

(三)secondarynamenode:是一个用来监控hDFs状态的辅助后台程序,就像namenode一样,每个集群都有一个secondarynamenode,不接收或记录任何实时的数据变化,

但是,

他会与namenode进行通信,以便定期的保存hDFs元数据的快照,如果name发生问题,secondarynamenode可以及时的作为备用namenode。

(四)JobTracker:用来连接应用程序与hadoop,用户代码提交到集群以后,由JobTracker决定那个文件将被处理,并且为不同的task分配节点,同时,他还监控所有运

行的task一旦某个task失败了JobTacker就会自动重新开启task。每个集群只有唯一一个JobTracker,位于master

节点

(五)TaskTracker:与负责存储的Datanode结合,JobTracker负责分配Tasker,管理各自节点上的task。每个节点只有一个TaskTracker,但一个TaskTracker可以启动多个JVm,用于并行执行map或reduce

任务

1.2hadoop版本演进

hadoop经历了从hadoop1.x到hadoop2.x的演变,其中hadoop1.x中的namenodes只可能有一个,虽然可以通过secondarynamenode与namenode进行数据同步备份,但是总会存在一定的时延,如果namenode挂掉,但是如果有部分数据还没有同步到secondarynamenode上,还是可能会存在着数据丢失的问题。其架构图如下:

hadoop2相比较于hadoop1.x来说,hDFs的架构与mapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,hadoop2中有两个重要的变更:(1)hDFsnamenodes可以以集群的方式布署,增强了namenodes 的水平扩展能力和可用性;(2)mapReduce将JobTracker中的资源管理及任务生命周期管理(包括定时触发及监控),拆分成两个独立的组件,并更名为YARn (YetAnotherResourcenegotiator)。

hadoop2.x架构图如下:

2hadoop开发环境搭建

hadoop是一个开放源代码的大数据处理平台,既可以在windows系统下运行,也可以在linux系统下运行,但是由于其开源特性及系统性能等方面的原因,目前主要应用是在linux系统下,因此学习使用hadoop开发,一定要熟悉linux 系统的一些必要知识。

2.1应用系统之linux系统

Linux是一种自由和开放源代码的类unIx操作系统。Linux本身只是一个内核。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循gnu通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供guI的xwindow之类的程序。除了一部分专家之外,大多数人都是直接使用Linux发行版,而不是自己选择每一样组件或自行设置。

目前常用的Linux发行版本比较多,常用的有:

一、Redhat又称为小红帽,在国内,乃至是全世界的Linux用户所最熟悉、最耳闻能详的发行版。目前Redhat分为两个系列:由Redhat公司提供收费技术支持和更新的RedhatenterpriseLinux,以及由社区开发的免费的Fedoracore。Fedoracore的定位是桌面用户。它的版本更新

周期也非常短,仅六个月。因此服务器上大多数不用Fedoracore。适用于服务器的版本是RedhatenterpriseLinux,而由于这是个收费的操作系统。于是,国内外许多企业或空间商选择centos。centos可以算是RedhatenterpriseLinux的克隆版,但它最大的好处是免费!因此目前的服务器便采用的centos系统。由于centos 是开源的,可以到官网去下载安装centos系统。目前我们使用的Linux系统也正是centos6.5系统。

二、ubuntu系统,这是比较常用的桌面发行版系统,ubuntu的安装非常的人性化,只要按照提示一步一步进行,安装和windows同样简便!并且,ubuntu被誉为对硬件支持最好最全面的Linux发行版之一,许多在其他发行版上无法使用,或者默认配置时无法使用的硬件,在ubuntu上轻松搞定。并且,ubuntu采用自行加强的内核(kernel),安全性方面更上一层楼。并且,ubuntu默认不能直接root登陆,必须从第一个创建的用户通过su或sudo来获取root权限(这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。ubuntu的版本周期为六个月,弥补了Debian 更新缓慢的不足。优点:人气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,可从Debianwoody直接升级缺点:还未建立成熟的商业模式。ubuntu系统安装简单,使用界面友好,适合入门使用。

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 0.18文档 Last Published: 07/01/2009 00:38:20 文档 概述 快速入门 集群搭建 HDFS构架设计 HDFS使用指南 HDFS权限指南 HDFS配额管理指南 命令手册 FS Shell使用指南 DistCp使用指南 Map-Reduce教程 Hadoop本地库 Streaming Hadoop Archives Hadoop On Demand API参考 API Changes 维基 常见问题 邮件列表 发行说明 变更日志 PDF Hadoop快速入门 ?目的 ?先决条件 o支持平台 o所需软件 o安装软件 ?下载 ?运行Hadoop集群的准备工作 ?单机模式的操作方法 ?伪分布式模式的操作方法

o配置 o免密码ssh设置 o执行 ?完全分布式模式的操作方法 目的 这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop 分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等。 先决条件 支持平台 ?GNU/Linux是产品开发和运行的平台。 Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证。 ?Win32平台是作为开发平台支持的。由于分布式操作尚未在Win32平台上充分测试,所以还不作为一个生产平台被支持。 所需软件 Linux和Windows所需软件包括: 1.Java TM1.5.x,必须安装,建议选择Sun公司发行的Java版本。 2.ssh必须安装并且保证sshd一直运行,以便用Hadoop 脚本管理远端 Hadoop守护进程。 Windows下的附加软件需求 1.Cygwin - 提供上述软件之外的shell支持。 安装软件 如果你的集群尚未安装所需软件,你得首先安装它们。 以Ubuntu Linux为例: $ sudo apt-get install ssh $ sudo apt-get install rsync

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最全面试题整理(附目录)

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命令大全 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的安装目录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测试题 一.填空题,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集群程序设计与开发教学大纲

《Hadoop集群程序设计与开发》教学 大纲 课程名称:Hadoop集群程序设计与开发 课程类别:必修 适用专业:大数据技术类相关专业 总学时:64学时 总学分:4.0学分 一、课程的性质 本课程是为大数据技术类相关专业学生开设的课程。大数据技术蓬勃发展,基于开源技术的Hadoop在行业中应用广泛。Hadoop开源免费、社区活跃,框架具备分布式存储和计算的核心功能,并且有企业成功的案例(如如淘宝、百度等)。本课程首先通过企业项目发展历程介绍了大数据与云计算的概念并将Hadoop在这二个领域中的作用与地位进行阐述。通过Hadoop源码片断与理论及实操结合的模式介绍Hadoop分布式存储框架HDFS与分布式计算框架MapReduce的用法。对于HDFS不能很好支持小条目读取的缺陷,引入HBase 框架进行应用说明。对于MapReduce框架对于项目专业人员的技能要求门槛高,复杂业务开发周期较长的问题引入了Hive框架进行应用说明。Hadoop与HBase和Hive结合进行项目中大数据的存取与统计计算在企业中的运用越来越广泛,学习Hadoop框架已然是进入大数据行业所必不可少的一步。 二、课程的任务 通过本课程的学习,使学生对Hadoop框架有一个全面的理解,课程内容主要包括了Hadoop基本原理与架构、集群安装配置、HDFS应用、HDFS I/O操作、MapReduce工作原理与应用编程、HBase基本应用、Hive基本应用,关键知识点配置Hadoop源码片断和实操案例进行辅助。涉及的知识点简要精到,实践操作性强。

三、教学内容及学时安排

四、考核方式 突出学生解决实际问题的能力,加强过程性考核。课程考核的成绩构成= 出勤(10%)+ 平时作业与课堂练习(30%)+ 课程设计(60%)。 五、教材与参考资料

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常用命令

启动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启动模式、基本配置、启动方式

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常见异常分析及解决方法

普开数据大数据关于Hadoop常见异常分析及解决方法 https://www.360docs.net/doc/f117231627.html,.apache.hadoop.security.AccessControlException:Permission denied:user=FDC2, access=EXECUTE, inode="job_201010161322_0003":heipark:supergroup:rwx‐‐‐‐‐‐解决方法:在hdfs‐site.xml 中添加如下: dfs.permissions false 2.localhost:Error:JAVA_HOME is not set. 需要在conf/hadoop‐env.sh中设置JAVA_HOME环境变量:...... export HADOOP_JOBTRACKER_OPTS="‐Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS" export JAVA_HOME="/usr/customize/java"3.Warning:$HADOOP_HOME is deprecated. 普开数据大数据分析:Hadoop在bin/hadoop‐config.sh中对HADOOP_HOME进行了判断,意思是提醒你自己也定义了变量HADOOP_HOME.判断发生的地方: #the root of the Hadoop installation export HADOOP_PREFIX=`dirname"$this"`/..export HADOOP_HOME=${HADOOP_PREFIX} 报出错误的地方: if["$HADOOP_HOME_WARN_SUPPRESS"==""]&&["$HADOOP_HOME"!=""];then echo"Warning:\$HADOOP_HOME is deprecated."1>&2留着异常也无所谓不会对程序的正常运行产生影响。解决方法: 添加export HADOOP_HOME_WARN_SUPPRESS=TRUE到hadoop‐env.sh中,注意要添加到集群中每一个节点中。 4.ERROR https://www.360docs.net/doc/f117231627.html,erGroupInformation:PriviledgedActionException java.io.IOException: https://www.360docs.net/doc/f117231627.html, could only be replicated to0nodes,instead of1 分析:是防火墙的问题,需要把防火墙关掉。解决方法: 首先Stop Hadoop集群,接着执行:sudo ufw disable 1:Shuffle Error:Exceeded MAX_FAILED_UNIQUE_FETCHES;bailing‐out Answer:

hadoop平台搭建-入门详细教程(含视频)

Hadoop平台搭建说明 1.Hadoop节点规划 本次安装规划使用三个节点,每个节点都使用centos系统。 三个节点的hostname分别规划为:centoshadoop1、centoshadoop2、centoshadoop3(此处为本教程参数,可根据实际环境情况修改) 三个节点的ip地址分别规划为:192.168.65.57、192.168.65.58、192.168.65.59(此处为本教程参数,根据实际环境情况修改) 2.平台搭建使用的软件 下载如下软件 操作系统安装包:Centos6.3_x64 Jdk安装包:jdk-6u37-linux-x64.bin Hadoop安装包:hadoop-1.1.2.tar.gz 3.安装centos操作系统 安装三个节点的操作系统,安装过程省略。 4.配置centoshadoop1节点 4.1.修改节点hostname [root@localhost ~]# vi /etc/sysconfig/network HOSTNAME=centoshadoop1 [root@localhost ~]# vi /etc/hosts …… 192.168.65.57 centoshadoop1 192.168.65.58 centoshadoop2 192.168.65.59 centoshadoop3 [root@localhost ~]#reboot

4.2.关闭iptables防火墙 [root@centoshadoop1~]#service iptables stop 注意每次操作系统重启后都要操作 4.3.建立无ssh密码登陆 生成签名文件 [root@centoshadoop1~]#cd /root [root@centoshadoop1~]#ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa [root@centoshadoop1~]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys [root@centoshadoop1~]# 测试本地SSH无密码登录 [root@centoshadoop1~]#sshcentoshadoop1 4.4.安装jdk 上传jdk-6u37-linux-x64.bin到/root目录下 [root@centoshadoop1~]#chmod 777 jdk-6u37-linux-x64.bin [root@centoshadoop1~]#./jdk-6u37-linux-x64.bin [root@centoshadoop1~]#ll 查看生成jdk-6u37-linux-x64目录 4.5.安装hadoop软件 上传hadoop-1.1.2.tar.gz到/root目录下 [root@centoshadoop1~]#tar -zvxfhadoop-1.1.2.tar.gz [root@centoshadoop1~]#ll 查看生成hadoop-1.1.2目录 [root@centoshadoop1~]#vi/conf/core-site.xml https://www.360docs.net/doc/f117231627.html, hdfs://192.168.65.57:9000

(完整word版)hadoop安装教程

1、VMware安装 我们使用Vmware 14的版本,傻瓜式安装即可。(只要) 双击 如过 2.安装xshell 双击 3.安装镜像: 解压centos6.5-empty解压 双击打开CentOS6.5.vmx 如果打不开,在cmd窗口中输入:netsh winsock reset 然后重启电脑。 进入登录界面,点击other 用户名:root 密码:root 然后右键open in terminal 输入ifconfig 回车 查看ip地址

打开xshell

点击链接 如果有提示,则接受 输入用户名:root 输入密码:root 4.xshell连接虚拟机 打开虚拟机,通过ifconfig查看ip

5.安装jkd 1.解压Linux版本的JDK压缩包 mkdir:创建目录的命令 rm -rf 目录/文件删除目录命令 cd 目录进入指定目录 rz 可以上传本地文件到当前的linux目录中(也可以直接将安装包拖到xshell窗口) ls 可以查看当前目录中的所有文件 tar 解压压缩包(Tab键可以自动补齐文件名)

pwd 可以查看当前路径 文档编辑命令: vim 文件编辑命令 i:进入编辑状态 Esc(左上角):退出编辑状态 :wq 保存并退出 :q! 不保存退出 mkdir /home/software #按习惯用户自己安装的软件存放到/home/software目录下 cd /home/software #进入刚刚创建的目录 rz 上传jdk tar包 #利用xshell的rz命令上传文件(如果rz命令不能用,先执行yum install lrzsz -y ,需要联网) tar -xvf jdk-7u51-linux-x64.tar.gz #解压压缩包 2.配置环境变量 1)vim /etc/profile 2)在尾行添加 #set java environment JAVA_HOME=/home/software/jdk1.8.0_65 JAVA_BIN=/home/software/jdk1.8.0_65/bin PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH Esc 退出编辑状态 :wq #保存退出 注意JAVA_HOME要和自己系统中的jdk目录保持一致,如果是使用的rpm包安

hadoop

MapReduce与Spark相比,有哪些异同点 1、基本原理上: a) MapReduce:基于磁盘的大数据批量处理系统 b) Spark:基于RDD(弹性分布式数据集)数据处理,显式的将RDD数据存储到磁盘和内存中。 2、模型上: a) MapReduce:可以处理超大规模的数据,适合日志分析挖掘等较少的迭代的长任务需求;结合了数据的分布式的计算。 b) Spark:适合数据的挖掘,机器学习等多伦迭代式计算任务 4、hadoop解决了什么问题 此处尽量通俗浅显地描述(先通过实际场景举例来引导:实际场景,海量日志如何处理,海量网页数据如何处理) hdfs 解决了海量数据的分布式存储,高可靠,易扩展,高吞吐量 mapreduce 解决了海量数据的分析处理,通用性强,易开发,健壮性 6、hadoop生态系统 分层次讲解----> 最底层平台hdfs yarn mapreduce spark ---- > 应用层hbase hive pig sparkSQL nutch ----> 工具类zookeeper flume HDFS默认Block大小是128MB 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间 Remote Procedure Call RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在

OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 ?RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 hadoop的整个体系结构就是构建在RPC之上的(见org.apache.hadoop.ipc)。 序列化概念 ?序列化(Serialization)是指把结构化对象转化为字节流。反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。 Hadoop序列化的特点 ?序列化格式特点: ?紧凑:高效使用存储空间。 ?快速:读写数据的额外开销小

Hadoop 常用命令

Hadoop 常用命令: 1、hadoop dfs 查看Hadoop HDFS支持的所有命令 2、hadoop dfs help 显示所有dfs命令的帮助信息 3、hadoop dfs -ls / 列出目录及文件信息 4、hadoop dfs -put 1.txt /user 将本地文件系统的1.txt复制到HDFS文件系统的/user目录下 5、hadoop dfs -copyFromLocal 1.txt /test 将本地文件1.txt 复制到HDFS的文件夹test下,等同于put 6、hadoop dfs -moveFromLocal /home/hadoop/1.txt /test1 将本地文件移动到HDFS文件系统上 7、hadoop dfs -get /test/1.txt /home/hadoop 将HDFS中的test.txt复制到本地文件系统中,与-put命令相反 8、hadoop dfs -copyToLocal /test/1.txt /home/hadoop 将HDFS上的文件复制到本地,等同于get 9、hadoop dfs -moveToLocal /test1/1.txt /home/hadoop 将HDFS的1.txt 文件移动到本地目录 10、hadoop dfs -cat /test/1.txt 查看HDFS文件系统里1.txt的内容 11、hadoop dfs -tail /test/1.txt 查看HDFS文件系统中1.txt最后1KB的内容 12、hadoop dfs -rm /test/1.txt 将1.txt这个文件移动到回收站 13、hadoop dfs -rm -skipTrash /test/1.txt 直接将1.txt这个文件删除 14、hadoop dfs -rmr /test 将test这个文件目录,包括底下的子目录、文件移动到回收站 15、hadoop dfs -rmr -skipTrash /test 直接将test这个文件目录,包括底下的子目录、文件删除 16、hadoop dfs -count /test1 查看test1目录底下的目录树和文件数,输出格式:目录数文件数大小文件名17、hadoop dfs -expunge 清空回收站 18、hadoop dfs -mkdir /test1 创建文件目录 19、hadoop dfs -touchz /1.txt 创建一个0字节的HDFS空文件

相关文档
最新文档