零基础学习hadoop(编程篇)

零基础学习hadoop(编程篇)
零基础学习hadoop(编程篇)

1.hadoop编程需要哪些基础?

2.hadoop编程需要注意哪些问题?

3.如何创建mapreduce程序及其包含几部分?

4.如何远程连接eclipse,可能会遇到什么问题?

5.如何编译hadoop源码?

阅读此篇文章,需要些基础下面两篇文章

零基础学习hadoop到上手工作线路指导(初级篇)

零基础学习hadoop到上手工作线路指导(中级篇)

如果看过的话,看这篇不成问题,此篇讲hadoop编程篇。

hadoop编程,hadoop是一个Java框架,同时也是编程的一次革命,使得传统开发运行程序由单台客户端(单台电脑)转换为可以由多个客户端运行(多台机器)运行,使得任务得以分解,这大大提高了效率。

hadoop既然是一个Java框架,因为我们必须要懂Java,网上有大量的资料,所以学习Java 不是件难事。但是学到什么程度,可能是我们零基础同学所关心的。

语言很多情况下都是相通的,如果你是学生,还处于打基础的阶段,那么难度对于你来说还是不小的。

1.初学者要求必须有理论基础,并且能够完成一个小项目,最起码能够完成几个小例子,例如图书馆里等。

初学者基本的要求:

(1)懂什么是对象、接口、继续、多态

(2)必须熟悉Java语法

(3)掌握一定的常用包

(4)会使用maven下载代码

(5)会使用eclipse,包括里面的快捷键,如何打开项目

传统程序员,因为具有丰富的编程经验,因此只要能够掌握开发工具:

(1)会使用maven下载代码

(2)会使用eclipse,包括里面的快捷键,如何打开项目

(3)简单熟悉Java语法

上面的只是基础,如果想开发hadoop,还需要懂得下面内容

(1)会编译hadoop

(2)会使用hadoop-eclipse-plugin插件,远程连接集群

(3)会运行hadoop程序。

上面列出大概的内容,下面我们具体说一些需要学习的内容。

无论是传统开发人员还是学生,零基础下面都是需要掌握的:

我们就需要进入开发了。开发零基础,该如何,咱们提供了相关的内容分别介绍下面文章

学习hadoop----java零基础学习线路指导视频(1)

这一篇我们使用什么开发工具,甚至考虑使用什么操作系统。然后就是Java基础知识篇,包括变量、函数等。

学习hadoop---Java初级快读入门指导(2)

第一篇是属于思想篇,那么这一篇属于实战篇,通过不同的方式,交给你怎么编写第一个小

程序。

Java零基础:一步步教你如何使用eclipse创建项目及编写小程序实例

由于上面没有真正抽象出eclipse的使用,所以这里专门介绍了使用eclipse如何创建项目,及如何编写小程序实例

java基础:eclipse编程不得不知道的技巧

eclipse基本知识会了之后,我们在项目,这些技巧相当有用,而且经常用到

一、考虑开发环境

上面是我们打基础,有了这些基础,我们就开始学习开发hadoop了,但是我们该怎么搭建环境,我们知道Windows有32、64位之分,jdk也有,那么该如何解决,我们在window32位上需要使用32位jdk,64位则使用64位jdk,同样如果Linux则使用Linux32位于64位。

更详细,可以参考零基础利用Java开发hadoop需要考虑的问题

二、使用J2SE、J2EE

使用Java我们需要整体了解Java语言,Java包含下面三种

?J2EE java企业版,主要用于web开发

?J2SE java 标准版,主要用于WEB开发,但是缺少企业版的一些特性,一般情况下java下的应用都是指J2SE的开发。

?J2ME java微小版,主要用于手机等的开发

因此如果我们想处理、并展示数据,可以使用J2EE,更详细参考

hadoop开发--Java零基础之J2EE、J2SE、J2ME的区别

三、对Java有了一定的认识,我们开始使用Java

1.环境变量配置

对于惯用集成环境的开发者来讲,这有点不适应,比如.net,安装开发环境vs,直接开发就好了,为啥还需要配置环境变量。

环境变量可以让我们找到jdk的命令,这个或许.net的一点好处,就是都封装起来了。别的不用关心了。对于环境变量,我们

需要配置java_home,path路径,更详细参考:

hadoop开发--Java零基础之开发工具环境变量配置

2.开发工具选择

开发工具有很多种,不同的人习惯不同,开发工具也不一样,这里列出个人认为比较常用1.eclipse

2.MyEclipse

3.maven

更多工具参考hadoop开发—Java零基础,开发选择什么开发工具比较合适

而其中maven可以和eclipse一起使用,也可以单独使用,后面开发中它还是比较常用的,比如我们下载hadoop源码,编译hadoop,都是需要maven来完成的。

maven的学习可以参考

源码编译maven系列视频教程汇总

3.Java编译

Java可以一处编译处处运行,原因是因为jvm。编译后的效果,可以查看:

Java零基础,学习hadoop:为什么要编译Java源代码,编译后会有什么效果

4.如何打开Java项目

Java项目的开发,还是比较特别的,是通过导入的方式,折合其它比如.net项目,直接点击图标就能打开,Java项目,例如通过eclipse的import导入,详细参考下面帖子:

零基础教你如何导入Java项目到eclipse中

5.Java资源下载:

上面补充了一些基本的知识,可能还不够全面,如果缺少这方面的知识,有两种办法:

1.百度,查看视频,缺什么看什么视频

2.如果想自己什么时候,都能看,可以下载下面的资源

javaWeb图书馆管理系统源码mysql版本

Java使用hadoop开发基础:Javaweb视频共享

几百GJava文件共享

java百G内容下载:包含自学,入门,高级应用,案例等

Java基础完毕,我们终于可以开发了,其实开发也并不怎么困难,经常遇到的问题如下:1.使用插件连接不上集群

windows下连接集有两个原因

1.用户名不一致

解决办法:

1、如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。(1.2.1 版本只有这个方法可行),如何操作可以参考第一个问题。

2、修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi项,将此项改为启动hadoop的用户名即可

3 修改window 机器的用户名为hadoop 用户名。

2.运行mapreduce程序的时候,会检查权限

根据hadoop开发方式总结及操作指导

我们知道hadoop开发可以使用插件,也可以不使用插件,如果不使用插件开发可能会遇到下面问题

解决办法修改下权限就好了

windows eclipse运行mapreduce遇到权限问题该如何解决

3.缺少hadoop.dll,以及winutils.exe

(1)缺少winutils.exe回报如下错误:

Could not locate executable null \bin\winutils.exe in the hadoop binaries

windows通过hadoop-eclipse-plugin插件远程开发hadoop运行mapreduce遇到问题及解决

(2)缺少hadoop.dll

错误如下:

Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决办法:

1.首先将hadoop.dll放到hadoop的bin目录下,如下图所示

2.配置hadoop home及path

path,这里使用的是绝对路径,path里面配置的是hadoop的bin路径。配置完毕,切忌重启机器

如下图所示

包及插件的下载,可以在这里面找

hadoop家族、strom、spark、Linux、flume等jar包、安装包汇总下载(持续更新)

上面总结了我们开发环境中经常遇到的问题,上面问题打了预防针,我们后面在连接的时候,就会顺利多了。

上面主要讲的window远程连接集群,还有另外一种就是Linux连接集群,这个遇到的问题不多,后面也有所涉及

开发hadoop,可以在Linux下,也可以在window下面

这里主要讲的是window下面:

该如何远程连接hadoop集群

对于不同版本不同的配置,远程连接的配置有所不同,特别是端口的配置,但是总体的步骤是差不多的,下面分别是hadoop1.X与hadoop2.X

1.插件远程连接

hadoop1.X

hadoop开发方式之一:利用插件开发指导

hadoop2.X

新手指导:Windows上使用Eclipse远程连接Hadoop进行程序开发

hadoop2.2 eclipse链接hdfs(hadoop)

配置Hadoop 2.x开发环境(Eclipse)

2.远程连接问题

连接中存在问题上面总结了一部分,比如插件、缺.dll、版本等问题

3.运行mapreduce

当然操作hdfs,会遇到权限问题,修改hdfs-site.xml即可,我们不在重复。

除了操作hdfs上传下载文件等操作,我们还需要完成一定的功能,比如wordcount等简单功能。这里面编程完成三方面内容:

1.map函数,起到分割的作用

2.reduce函数,处理然后汇总

3.main()驱动。

4.如何带参数还需要继续Tool接口,带参数详细参考

如何编写运行带参数输入输出路径hadoop程序

(1)创建mapreduce

运行mapreduce参数参考下面:

我们首先可以完成一定的功能,功能的实现,可以参考

MapReduce初级案例(1):使用MapReduce去重

MapReduce初级案例(2):使用MapReduce数据排序

MapReduce初级案例(3):使用MapReduce实现平均成绩

通过上面的实现,这里有一个例子,可以放到项目中,直接运行,当然你需要创建数据文件,及根据自己的实际情况修改uri,也就是hdfs://。。。需要修改成自己的内容。

新手指导,该如何在开发环境中,创建mapreduce程序

如果我们对mapreduce有一个深度的了解,我们可以把大部分程序转换为mapreduce来实现,详细参考如何让传统程序转换成mapreduce

hadoop编程需要注意的问题虽然hadoop是Java语言编写的,但是其有自己的数据类型,及并且可能会遇到编码问题,同时由于mapreduce的分区,采用的是hash算发,下面的内容,可以了解一下

hadoop编程基础:数据类型介绍及与Java数据类型之间转换

eclipse 调试hadoop需要注意编码问题

(2)运行mapreduce

创建完毕,我们有两种方式运行mapreduce,一种打包到集群运行,一种在eclipse中运行。hadoop集群,如何运行Java jar包---如何运行mapreduce程序

(3)运行中会遇到的问题

在开头已经说了一些经典的问题,这里在列出一些相关帖子。

1.eclipse中开发Hadoop

2.x的Map/Reduce项目汇总

阐述了下面问题:

1.如何创建MR程序?

2.如何配置运行参数?

3.HADOOP_HOME为空会出现什么问题?

4.hadoop-common-2.2.0-bin-master/bin的作用是什么?

扩展:

4.winutils.exe是什么?

2.Win7 Eclipse调试Centos Hadoop2.2-Mapreduce出现问题解决方案

阐述下面问题:

1.建一个MapReduce Project,运行时发现出问题:Could not locate executable null,该如何解决?

2.Could not locate executabl ....\hadoop-2.2.0\hadoop-2.2.0\bin\winutils.exe in the Hadoop binaries.该如何解决?

(4)mapreduce调试:

调试的方法有多种,这里说一种最简单、原始的一种。

记得Javascript刚开始之初是不能调试的,于是我们就采用alert的方法,看看结果是不是我们想要的,这里我们调试mapreduce采用的是类似的方法。我们通过Counter countPrint1

= context.getCounter("Map中循环strScore", “输出信息”);来输出调试信息,getCounter 可以把程序里面的变量输出到Java控制台,这样就达到了调试效果。

详细参考:

Hadoop中调试(mapreduce)map与redcue信息的输出办法

当然还有其他调试方法,可以参考下面

Win7 Eclipse调试Centos Hadoop2.2-Mapreduce出现问题解决方案

调试Hadoop源代码:eclipse调试及日志打印

4.获取源码、阅读源码

获取源码可以通过git,maven等方式。

(1)maven

maven可以单独使用,也可以作为插件放在eclipse中,由于hadoop src采用的是maven 的方式,所以我们需要学习和使用maven。

eclipse maven plugin 插件安装和配置及maven实战书籍下载

源码编译maven系列视频教程汇总

如果看了上面的内容,那么我们对maven已经算是很熟悉了,可以通过maven获取hadoop 源码了,在获取的源码的时候,最起码要保持网络畅通,如何获取,以及查看hadoop源码,查看的时候,我们还需要关联一些包,否则会出现下面情况,source not found。

更多内容,详细可参考:

源码获取了,我们该如何查看阅读源码,如何通过eclipse查看类的定义,函数的实现,通过下面帖子即可达到我们的目的。

如何通过eclipse查看、阅读hadoop2.4源码

(2)其它获取源码工具git、svn

5.编译hadoop源码

源码编译,刚开始还是比较复杂的,需要安装不少的软件包括maven、protobuf、CMake、ant等工具的安装,编译完毕之后,我们就可以安装了。更详细,可以查看下面内容

从零教你在Linux环境下(ubuntu)如何编译hadoop2.4

Hadoop 源代码eclipse 编译教程

对于编译的.class文件,如果想查看源码,可以通过反编译工具实现

java的class文件反编译和Eclipse、MyEclipse反编译插件安装、使用

6.插件制作

eclipse开发,有的同学,感兴趣,想制作插件,可以查看下面内容

7.资源:

由于一些同学经常找不到安装包、插件等,这里汇总一些资源:

hadoop学习课程介绍

云凡教育Hadoop网络培训第二期 开课时间:2014年1月20日 授课方式:YY在线教育+课程视频+资料、笔记+辅导+推荐就业 YY教育平台:20483828 课程咨询:1441562932 大胃 云凡教育Hadoop交流群:306770165 费用: 第二期优惠特价:999元; 授课对象: 对大数据领域有求知欲,想成为其中一员的人员 想深入学习hadoop,而不只是只闻其名的人员 基础技能要求: 具有linux操作一般知识(因为hadoop在linux下跑) 有Java基础(因为hadoop是java写的并且编程也要用java语言) 课程特色 1,以企业实际应用为向导,进行知识点的深入浅出讲解; 2,从零起步,循序渐进,剖析每一个知识; 3,萃取出实际开发中最常用、最实用的内容并以深入浅出的方式把难点化于无形之中 学习安排: Hadoop的起源与生态系统介绍(了解什么是大数据;Google的三篇论文;围绕Hadoop形成的一系列的生态系统;各个子项目简要介绍)

1_Linux系统环境搭建和基本命令使用 针对很多同学对linux命令不熟悉,在课程的学习中,由于命令不熟悉导致很多错误产生,所以特意增加一节linux基础课程,讲解一些常用的命令,对接下来的学习中做好入门准备; 02_Hadoop本地(单机)模式和伪分布式模式安装 本节是最基本的课程,属于入门级别,主要对Hadoop 介绍,集中安装模式,如何在linux上面单机(本地)和伪分布模式安装Hadoop,对HDFS 和MapReduce进行测试和初步认识。 03_HDFS的体系结构、Shell操作、Java API使用和应用案例 本节是对hadoop核心之一——HDFS的讲解。HDFS是所有hadoop操作的基础,属于基本的内容。对本节内容的理解直接影响以后所有课程的学习。在本节学习中,我们会讲述hdfs的体系结构,以及使用shell、java不同方式对hdfs 的操作。在工作中,这两种方式都非常常用。学会了本节内容,就可以自己开发网盘应用了。在本节学习中,我们不仅对理论和操作进行讲解,也会讲解hdfs 的源代码,方便部分学员以后对hadoop源码进行修改。 04_MapReduce入门、框架原理、深入学习和相关MR面试题 本节开始对hadoop核心之一——mapreduce的讲解。mapreduce是hadoop 的核心,是以后各种框架运行的基础,这是必须掌握的。在本次讲解中,掌握mapreduce执行的详细过程,以单词计数为例,讲解mapreduce的详细执行过程。还讲解hadoop的序列化机制和数据类型,并使用自定义类型实现电信日志信息的统计。最后,还要讲解hadoop的RPC机制,这是hadoop运行的基础,通过该节学习,我们就可以明白hadoop是怎么明白的了,就不必糊涂了,本节内容特别重要。 05_Hadoop集群安装管理、NameNode安全模式和Hadoop 1.x串讲复习 hadoop就业主要是两个方向:hadoop工程师和hadoop集群管理员。我们课程主要培养工程师。本节内容是面向集群管理员的,主要讲述集群管理的知

入门大数据,需要学习哪些基础知识

大数据的发展历程总体上可以划分为三个重要阶段,萌芽期、成熟期和大规模应用期,20世纪90年至21世纪初,为萌芽期,随着,一批商业智能工具和知识管理技术的开始和应用,度过了数据萌芽。21世纪前十年则为成熟期,主要标志为,大数据解决方案逐渐走向成熟,形成了并行计算与分布式系统两大核心技,谷歌的GFS和MapReduce等大数据技术受到追捧,Hadoop平台开始大行期道,2010年以后,为大规模应用期,标志为,数据应用渗透各行各业,数据驱动决策,信息社会智能化程度快速提高。 数据时代的到来,也推动了数据行业的发展,包括企业使用数据获取价值,促使了大量人员从事于数据的学习,学习大数据需要掌握基础知识,接下从我的角度,为大家做个简要的阐述。 学习大数据需要掌握的知识,初期了解概念,后期就要学习数据技术,主要包括: 1.大数据概念 2.大数据的影响

3.大数据的影响 4.大数据的应用 5.大数据的产业 6.大数据处理架构Hadoop 7.大数据关键技术 8.大数据的计算模式 后三个牵涉的数据技技术,就复杂一点了,可以细说一下: 1.大数据处理架构Hadoop:Hadoop的特性、Hadoop生态系统、Hadoop 的安装与使用; 2.大数据关键技术技术:数据采集、数据存储与管理、数据处理与分析、数据隐私与安全; 3.大数据处理计算模式:批处理计算、流计算、图计算、查询分析计算

数据的核心技术就是获取数据价值,获取数据前提是,先要有数据,这就牵涉数据挖掘了。 本文内容由北大青鸟佳音校区老师于网络整理,学计算机技术就选北大青鸟佳音校区!了解校区详情可进入https://www.360docs.net/doc/ca13631567.html,网站,学校地址位于北京市西城区北礼士路100号!

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

java 基础知识之hadoop源码阅读必备(一)

java 程序员你真的懂java吗? 一起来看下hadoop中的如何去使用java的 大数据是目前IT技术中最火热的话题,也是未来的行业方向,越来越多的人参与到大数据的学习行列中。从最基础的伪分布式环境搭建,再到分布式环境搭建,再进入代码的编写工作。这时候码农和大牛的分界点已经出现了,所谓的码农就是你让我做什么我就做什么,我只负责实现,不管原理,也不想知道原理。大牛就开始不听的问自己why?why?why?于是乎,很自然的去看源码了。然而像hadoop这样的源码N多人参与了修改和完善,看起来非常的吃力。然后不管如何大牛就是大牛,再硬的骨头也要啃。目前做大数据的80%都是从WEB开发转变过来的,什么spring mvc框架、SSH框架非常熟悉,其实不管你做了多少年的WEB开发,你很少接触到hadoop中java代码编写的风格,有些人根本就看不懂什么意思。下面我来介绍下hadoop源码怎么看。 hadoop体现的是分布式框架,因此所有的通信都基于RPC来操作,关于RPC的操作后续再介绍。hadoop源码怎么看系列分多个阶段介绍,下面重点介绍下JA V A基础知识。 一、多线程编程 在hadoop源码中,我们能看到大量的类似这样的代码 return executor.submit(new Callable() { @Override public String call() throws Exception { //方法类 } 下面简单介绍下java的多线程编程 启动一个线程可以使用下列几种方式 1、创建一个Runnable,来调度,返回结果为空。 ExecutorService executor = Executors.newFixedThreadPool(5); executor.submit(new Runnable() { @Override public void run() { System.out.println("runnable1 running."); } }); 这种方式启动一个线程后,在后台运行,不用等到结果,因为也不会返回结果 2、创建一个Callable,来调度,有返回结果 Future future1 = executor.submit(new Callable() { @Override public String call() throws Exception { // TODO Auto-generated method stub //具体执行一些内部操作 return "返回结果了!"; } }); System.out.println("task1: " + future1.get());

hadoop入门学习资料大全

Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性(fault-tolerent)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。 搜索了一些WatchStor存储论坛关于hadoop入门的一些资料分享给大家希望对大家有帮助 jackrabbit封装hadoop的设计与实现 https://www.360docs.net/doc/ca13631567.html,/thread-60444-1-1.html 用Hadoop进行分布式数据处理 https://www.360docs.net/doc/ca13631567.html,/thread-60447-1-1.html

Hadoop源代码eclipse编译教程 https://www.360docs.net/doc/ca13631567.html,/thread-60448-1-2.html Hadoop技术讲解 https://www.360docs.net/doc/ca13631567.html,/thread-60449-1-2.html Hadoop权威指南(原版) https://www.360docs.net/doc/ca13631567.html,/thread-60450-1-2.html Hadoop源代码分析完整版 https://www.360docs.net/doc/ca13631567.html,/thread-60451-1-2.html 基于Hadoop的Map_Reduce框架研究报告 https://www.360docs.net/doc/ca13631567.html,/thread-60452-1-2.html Hadoop任务调度 https://www.360docs.net/doc/ca13631567.html,/thread-60453-1-2.html Hadoop使用常见问题以及解决方法 https://www.360docs.net/doc/ca13631567.html,/thread-60454-1-2.html HBase:权威指南

Hadoop题库

1. 以下哪一项不属于Hadoop可以运行的模式___C___。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 2. Hadoop的作者是下面哪一位__B____。 A. Martin Fowler B. Doug cutting C. Kent Beck D. Grace Hopper 3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。 A. TaskTracker B. DataNode C. SecondaryNameNode D. Jobtracker 4. HDFS 默认 Block Size的大小是___B___。 5. 下列哪项通常是集群的最主要瓶颈____C__。 A. CPU B. 网络

C. 磁盘IO D. 内存 6. 下列关于MapReduce说法不正确的是_____C_。 A. MapReduce是一种计算框架 B. MapReduce来源于google的学术论文 C. MapReduce程序只能用java语言编写 D. MapReduce隐藏了并行计算的细节,方便使用 8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。 A.一次写入,少次读 B.多次写入,少次读 C.多次写入,多次读 D.一次写入,多次读 9. HBase依靠__A____存储底层数据。 A. HDFS B. Hadoop C. Memory D. MapReduce 10. HBase依赖___D___提供强大的计算能力。 A. Zookeeper B. Chubby C. RPC D. MapReduce

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,

Hbase学习笔记复习过程

H b a s e学习笔记

参考书籍: Hadoop in action, 吴超沉思录 1.Hbase简介 1.面向列的分布式数据库 2. 以HDFS作为文件系统 3. 利用MapReduce处理Hbase中海量数据 4. ZookKeeper作为协调工具 5. sqoop提供Hbase到关系型数据库中数据导入功能 6. Hive和pig提供高层语言支持如HSQL 2. 伪分布式安装 准备:安装Hadoop 详细见上一篇日志:hadoop分布式安装hbase版本: hbase-0.94.7-security.tar.gz 安装目录 /usr/local 步骤: 1. 安装 tar -zxvf hbase-0.94.7-security.tar.gz 2. 重命名: mv hbase-0.94.7-security hbase 3. 配置环境变量hbase_home (vi /etc/profile) 4. 修改配置文件 1. hbase_home/conf/hbase_env.sh

修改java_home export JAVA_HOME=/usr/local/jdk/ 修改zookeeper(最后一行) export HBASE_MANAGES_ZK=true(使用Hbase托管的ZooKeeper)2. hbase_home/conf/hbase-site.xml文件 configuration 中加入: hbase.rootdir hdfs://hadoop0:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum hadoop0 dfs.replication 1 5. 启动hbase 先启动hadoop(start-all.sh)

基于Hadoop平台的并行数据挖掘算法工具箱与数据挖掘云

基于Hadoop平台的并行数据挖掘算法工具 箱与数据挖掘云 来源:南京大学计算机科学与技术系作者:高阳,杨育彬,商琳时间:2011-06-27 浏览次数:60 一基于云计算的海量数据挖掘 2008年7 月,《Communications of the ACM》杂志发表了关于云计算的专辑,云计算因其清晰的商业模式而受到广泛关注,并得到工业和学术界的普遍认可。目前工业界推出的云计算平台有Amazon公司的EC2和S3,Google公司的Google Apps Engine, IBM公司的Blue Cloud,Microsoft公司的Windows Azure, Salesforce公司的Sales Force, VMware公司的vCloud,Apache软件开源组织的Hadoop等。在国内,IBM与无锡市共建了云计算中心,中石化集团成功应用IBM的云计算方案建立起一个企业云计算平台。阿里巴巴集团于2009年初在南京建立电子商务云计算中心。 严格的讲,云计算是一种新颖的商业计算模型,它可以将计算任务分布在大量互连的计算机上,使各种应用系统能够根据需要获取计算资源、存储资源和其他服务资源。Google公司的云平台是最具代表性的云计算技术之一,包括四个方面的主要技术:Google文件系统GFS、并行计算模型MapReduce、结构化数据表BigTable和分布式的锁管理Chubby。基于以上技术,云计算可以为海量数据处理和分析提供一种高效的计算平台。简单来说,将海量数据分解为相同大小、分布存储,然后采用MapReduce模型进行并行化编程,这种技术使Google公司在搜索引擎应用中得到了极大的成功。 然而MapReduce计算模型适合结构一致的海量数据,且要求计算简单。对于大量的数据密集型应用(如数据挖掘任务),往往涉及到数据降维、程序迭代、

基于Hadoop平台的海量数据高效抽取方法及应用

基于Hadoop 平台的海量数据高效抽取方法及应用 徐金玲1,金 璐1,李昆明2,熊 政2,仲春林2,方 超2 (1.江苏省南京供电公司,江苏南京,210008;2.江苏方天电力技术有限公司,江苏南京,211102) 摘要:本文从数据抽取过程的本质出发,论述了传统数据抽取过程与大数据平台数据抽取过程的异同,以基于Hadoop 的大数据平台为例,结合传统的关系型数据库和非关系型数据库(NoSQL)的特点,提出了一种从关系型数据库到大数据平台的高效数据抽取方法,实现了对数据源系统资源占用的最小化,并在电力公司用电大数据抽取中得到广泛应用。关键词:海量数据;数据抽取;NoSQL;大数据平台 Method and application of efficient extraction of mass data based on Hadoop platform Xu Jinling 1,Jin Lu 1,Li Kunming 2,Xiong Zheng 2,Zhong Chunlin 2,Fang Chao 2 (1.Jiangsu Nanjing power supply company,Jiangsu Nanjing,210008;2.Jiangsu Fangtian Power Technology Co. Ltd.,Jiangsu Nanjing,211102) Abstract :This article from the essence of data extraction process,discusses the similarities and differences between traditional data extraction process and the data platform,data extraction process, the data platform based on Hadoop as an example,combining the traditional relational database and non relational database(NoSQL)characteristics,proposes a from relational database to efficient data extraction method of data platform,thereby minimizing the occupancy of the data source of the system resources, and the power companies in large data extraction has been widely applied in. Keywords :data;data extraction;NoSQL;data platform 0 引言 对于大数据的抽取,一般通过使用Sqoop 来实现。但是Sqoop 组件自身的局限性导致其对于特定的场景并不适用(例如,进行TB 级大数据量数据抽取时效率较低,进行增量数据抽取需改变源数据库表结构,对源数据库性能也有较大影响)。因此,本文提出了基于大数据平台的一种海量数据抽取的高效方法,该方法可以快速、高效、可靠地将海量数据从关系型数据库抽取到大数据平台中。同时,由于通过对数据源日志文件的分析实现对增量数据的抽取,因此该方法在抽取数据时对源数据库的影响非常小。 1 系统开发环境 系统开发环境采用CentOS 6.5操作系统,以Cloudera CDH 5.0为大数据平台框架,并结合Tomcat 作为Web Server。集群由20台服务器组成,划分为2个机架,每台服务器配置32核CPU、64GB 内存和10块磁盘。Cloudera 是全球领先的Hadoop 服务提供商,其CDH 5.0是最新的Hadoop 发行版,提供了高度的稳 定性和使用便捷性。数据源采用Oracle 数据库,抽取工具采用Golden Gate。 2 系统结构和处理流程 2.1 技术架构 系统以Oracle 为数据源,以CDH 5.0为大数据平台框架,结合Tomcat 作为Web Server 提供Web 层的访问服务。在大数据平台中,以MapReduce 作为大数据的计算引擎,以HDFS 分布式文件系统存储非结构化和半结构化的数据,以HBase 分布式数据库存 图1. 系统技术架构

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/ca13631567.html, hdfs://192.168.65.57:9000

基于hadoop平台海量数据的快速查询与实现

龙源期刊网 https://www.360docs.net/doc/ca13631567.html, 基于hadoop平台海量数据的快速查询与实现 作者:褚福银张林何坤鹏 来源:《电脑知识与技术》2016年第21期 摘要:随着互联网技术的发展,人类产生的数据量正在呈指数级增长,Hadoop作为大数据领域的常用工具,在现代生活中发挥着至关重要的作用。Hive是基于Hadoop的一个数据仓库工具,在做查询统计分析时最终翻译成Hadoop平台上的MapReduce程序运行,当数据量不断增大时,就会使得查询效率[5]下降。该文就此提出了一种Hive与Spark结合的方案,将Hive的查询作为Spark的任务提交到Spark集群上进行计算,利用Spark的特性提高Hive 查询性能。该研究首先理论阐述了Hive与Spark各自的工作机制,然后介绍Hive_Spark原理,最后通过做实验,对实验结果进行对比,分析,从而验证Hive_Spark提高了查询效率,对大规 模数据处理具有一定参考意义。 关键词:Hadoop;Hive;Spark;查询;海量数据 中图分类号:TP31 文献标识码:A 文章编号:1009-3044(2016)21-0003-03 Abstract: With the development of Internet technology, The amount of data generated by humans is growing exponentially. Hadoop as a common tool in the field of big data, play a vital role in modern life. Hive is a data warehouse tools based on Hadoop, when doing statistical analysis queries eventually translated into Hadoop program running on the platform, when increasing amounts of data, it makes the query efficiency will be reduced. In this paper, we propose a Hive and Spark combination of the program, the Hive query as the task of Spark to submit to the Spark cluster computing, using the characteristics of Spark to improve the performance of Hive query. This research firstly theory elaborated the Hive and Spark their working mechanism, and then this paper introduces the principle of Hive_Spark finally by doing experiment, compared with the result of the experiment and analysis, to validate Hive_Spark improve the query efficiency, for large-scale data processing has a certain reference significance. Key words: Hadoop; Hive; Spark; Data query; Mass data 1 引言 随着大数据时代的到来,数据量的急速增长以及对数据实时查询的迫切需求使得传统的数据仓库引擎难以满足企业对大数据存储与分析的需求。Hadoop[3-4] 作为一种开源的架构凭借其低成本、可伸缩性和高容错性等优点开始取代传统数据仓库[8],采用 MapReduce 编程模型可以对海量数据进行有效分割和合理分配。hive是基于Hadoop的一个数据仓库工具,提供了

Hadoop_Ubuntu学习笔记

Hadoop+Ubuntu 学习笔记 ——IT 进行时(zhengxianquan AT https://www.360docs.net/doc/ca13631567.html, ) 环备一、境准 Hadoop-0.20.1 Ubuntu 9.10 二、安装JDK6 开终执打端,行以下命令: sudo apt-get install sun-java6-jdk 按照提示做就是了。 配置JAVA 环变境量: sudo gedit /etc/environment 在其中添加如下两行: CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib JAVA_HOME=/usr/lib/jvm/java-6-sun 执行命令:sudo gedit /etc/jvm,在最前面加入: /usr/lib/jvm/java-6-sun 三、配置SSH 见方便起,新增hadoop 组户的及其同名用: zhengxq@zhengxq-desktop:~$ sudo addgroup hadoop zhengxq@zhengxq-desktop:~$ sudo adduser --ingroup hadoop hadoop 别则请接下来需要做些特的工作(否参考FAQ“xx is not in the sudoers file”): hadoop@zhengxq-desktop:~$ su root@zhengxq-desktop:/home/hadoop# ls -l /etc/sudoers -r--r----- 1 root root 557 2009-11-10 22:01 /etc/sudoers

root@zhengxq-desktop:/home/hadoop# ls -l /etc/sudoers -rw-r----- 1 root root 557 2009-11-10 22:01 /etc/sudoers root@zhengxq-desktop:/home/hadoop# gedit /etc/sudoers 在root ALL=(ALL) ALL后面添加:hadoop ALL=(ALL) ALL root@zhengxq-desktop:/home/hadoop# chmod u-w /etc/sudoers root@zhengxq-desktop:/home/hadoop# exit 安装openssh-server: $ sudo apt-get install openssh-server 建立SSH KEY: zhengxq@zhengxq-desktop:~$ su hadoop hadoop@zhengxq-desktop:/home/zhengxq$ ssh-keygen -t rsa -P "" Generating public/private rsa key pair. Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): Created directory '/home/hadoop/.ssh'. Your identification has been saved in /home/hadoop/.ssh/id_rsa. Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub. The key fingerprint is: f4:5f:6a:f4:e5:bf:1d:c8:08:28:1c:88:b4:31:4a:a0 hadoop@zhengxq-desktop …… 启用SSH KEY: hadoop@zhengxq-desktop:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

hadoop环境配置入门教程

ubuntu 下安装配置hadoop 1.0.4 第一次搞hadoop,折腾我2天,功夫不负有心人,终于搞好了,现在来分享下, 我的环境 操作系统:wmv虚拟机中的ubuntu12.04 hadoop版本:hadoop-1.0.4(听说是稳定版就下了) eclipse版本:eclipse-jee-indigo-SR2-win32 1.先安装好jdk,然后配置好jdk的环境变量,在这里我就不累赘了!网上多的是 2.安装ssh这个也不用说了 2.把hadoop-1.0.4.tar.gz拖到虚拟机中,解压,比如: /home/wys/Documents/hadoop-1.0.4/ (有的还单独建了个用户,为了舍去不必要的麻烦我都是用root用户来操作的) 3.修改hadoop-1.0.4/conf 下面的core-site.xml文件,如下: https://www.360docs.net/doc/ca13631567.html, hdfs://192.168.116.128:9000 hadoop.tmp.dir /home/wys/Documents/tmp

192.168.116.128这个是虚拟机中ubuntu的ip,听说用localhost,127.0.0.1都不行,我没试过,直接写上ip地址了 tmp是预先创建的一个目录 4.修改hadoop-env.sh 把export JAVA_HOME=xxxxxx 这行的#号去掉,写上jdk的目录路径 5.修改hdfs-site.xml如下: dfs.replication 1 dfs.permissions false 说明:为了以后用eclipse开发出现各种问题,就把权限关了!

Hadoop基础知识面试题大汇总

1.Hadoop集群可以运行的3个模式分别是什么, 都有哪些注意点? ?单机(本地)模式:这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。 ?伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点 (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。 ?全分布式模式:全分布模式通常被用于生产环境,使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode 运行的主机,Datanode运行的主机,以及task tracker运行的主机。 在分布式环境下,主节点和从节点会分开。 2. VM是否可以称为Pseudo? 不是,两个事物,同时Pseudo只针对Hadoop。 3. 当Job Tracker宕掉时,Namenode会发生什么? 当Job Tracker失败时,集群仍然可以正常工作,只要Namenode没问题。 4. 是客户端还是Namenode决定输入的分片? 这并不是客户端决定的,在配置文件中以及决定分片细则。 5. 是否可以在Windows上运行Hadoop? 可以,但是最好不要这么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系统。 6. Hadoop是否遵循UNIX模式? 是的,在UNIX用例下,Hadoop还拥有“conf”目录。 7. Hadoop安装在什么目录下? Cloudera和Apache使用相同的目录结构,Hadoop被安装在 cd/usr/lib/hadoop-0.20/。 8. Namenode、Job tracker和task tracker的端口号是? Namenode,70;Job tracker,30;Task tracker,60。

Hadoop试题试题库

1.以下哪一项不属于Hadoop 可以运行的模式___C___。 A.单机(本地)模式 B.伪分布式模式 C.互联模式 D.分布式模式 2.Hadoop 的作者是下面哪一位__B ___ 。 A.Martin Fowler B.Doug cutting C.Kent Beck D.Grace Hopper 3.下列哪个程序通常与NameNode 在同一个节点启动__D___。 A.TaskTracker B.DataNode C.SecondaryNameNode D.Jobtracker 4.HDFS 默认Block Size 的大小是___B___。 A.32MB B.64MB C.128MB D.256M 5.下列哪项通常是集群的最主要瓶颈__ C__。 A.CPU B.网络 C.磁盘IO D.内存 6.下列关于MapReduce 说法不正确的是___ C_。 A.MapReduce 是一种计算框架 B.MapReduce 来源于google 的学术论文 C.MapReduce 程序只能用java 语言编写 D.MapReduce 隐藏了并行计算的细节,方便使用 8. HDFS 是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是__D 。 A.一次写入,少次读 B.多次写入,少次读

C.多次写入,多次读 D.一次写入,多次读 7.HBase 依靠__A ___ 存储底层数据。 A.HDFS B.Hadoop C.Memory D.MapReduce 8.HBase 依赖___D___提供强大的计算能力。 A.Zookeeper B.Chubby C.RPC D.MapReduce 9.HBase 依赖___A___提供消息通信机制 A.Zookeeper B.Chubby C.RPC D.Socket 10.下面与HDFS 类似的框架是___C___ ? A.NTFS B.FAT32 C.GFS D.EXT3 11.关于SecondaryNameNode 下面哪项是正确的___C___。 A.它是NameNode 的热备 B.它对内存没有要求 C.它的目的是帮助NameNode 合并编辑日志,减少NameNode 启动时间 D.SecondaryNameNode 应与NameNode 部署到一个节点 12.大数据的特点不包括下面哪一项___D___。 A.巨大的数据量 B.多结构化数据 C.增长速度快 D.价值密度高

相关文档
最新文档