Hadoop实战-陆嘉恒-笔记

Hadoop实战-陆嘉恒-笔记
Hadoop实战-陆嘉恒-笔记

1,Hadoop项目和结构

hd的核心是mapReduce和HDFS

(1)core/common

提供了一些基本的API和服务,包括FileSystem、RPC等。

(2)Avro

用于数据序列化

(3)MapReduce

是一种编程模型,用于大于1TB的数据集的并行运算。

(4)HDFS

特点:高容错、高吞吐量(HDFS适合批量处理,而不适合用户交互处理的快速反应)、基于流访问

适合分析零碎小文件。

(6)Hive

(7)HBase

(8)Pig

支持大规模并行数据分析,提供了叫Pig Latin的语言使之更加容易编程。

(9)Zookeeper

是高有效和可靠的协同工作系统,Zookeeper能够用来leader选举,配置信息维护等,在一个分布式的环境中,需要一个Master实例或存储一些配置信息,确保文件写入的一致性等.

1.3 Hadoop的体系结构

1.3.1 HDFS体系结构

HDFS采用主从(Master/Slave)结构,NameNode作为主服务器管理文件系统的命名空间和客户端对文件的访问操作,也负责数据块到具体DataNode的映射。DataNode实际存储数据。

1.3.2 MapReduce的体系结构

MapReduce由运行在主节点上的JobTracker和运行在集群从节点上的TaskTraker组成。jobTraker调度任务和监控任务。

1.4 Hadoop 与分布式开发

Hd实现了分布式文件系统和部分分布式数据库的功能。

MR的原理是:利用一个输入的key/value对集合产生一个输出的key/value对集合。

1.数据分步存储

HDFS把文件割成了block,存储于不同的DataNode上,还可以通过复制block来达到容灾

2.并行式计算

3.本地计算

4. 任务粒度

把大数据切成小数据时,小数据等于默认block大小。如果有M个小数据等待处理就启动M个map任务,M个map任务分布于N台计算机并行运行。Reduce任务的数量R由用户指定。

5.数据分割(Partition)

6.数据合并(Combine)

7.Reduce

8. 任务管道

1.5 Hd计算模型-mapReduce

1.6 Hd的数据管理

HDFS分布式文件系统,HBase分布式数据库,Hive数据仓库。

1.6.1 HDFS的数据管理

1,文件写入和读取都是Client先向NameNode发起请求,再在DataNode里操作数据。

2,Block的复制:如果NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效;通知DataNode开始相互复制block

2.1 block的放置:block有三份:一份在NameNode指定的DataNode上,一份和指定的DataNode不同的机器上,一份在同一个Rack上

2.2心跳检测

2.3 数据复制

2.4 只有把数据都备份了三份成功,客户端才会开始写入下一个block

2.5 安全模式,就是不允许修改和删除数据。

1.6.2 HBase的数据管理

https://www.360docs.net/doc/163591099.html,/link?url=F95QnJ0hxY_RnT8JDDgPzCkc0BG28omSmHdXTboJBYkNGsZEI YFDo9ibdJRNUQF1oml3jR96LMVJe7qfwe_Eo5fx3arcST4tIxGbUV_JaO3

1,HBase特点:

2,关于列族:列族必须作为表模式定义的一部分预先给出。每个列族可以有多个列成员如:course:math, course是列族名,而math是列名。新的列成员可以动态加入。HBase 把同一列族里的数据存储在同一目录下,有几个文件保存。

3,逻辑存储结构是《网摘-笔记》

1.table{

2.// ...

3."aaaaa" : { //一行

4."A:foo" : { //一列

5. 15 : "y", //一个版本

6. 4 : "m"

7. },

8."A:bar" : { //一列

9. 15 : "d",

10. },

11."B:" : { //一列

12. 6 : "w"

13. 3 : "o"

14. 1 : "w"

15. }

16. },

17.// ...

18.}

查询"aaaaa"/"A:foo"/4,返回的结果就是"m",也就是可以(row:string,

column:string, time:int64)→string 来表示一条键值对记录。

1,Hbase的写操作是锁行的。

2,HBase 在分布式集群上依靠HRegion,HMaster,HClient管理。

主服务器作为HBase的中心,管理整个集群中的所有域,监控每台域服务器的运行情况等;域服务器接收来自服务器的分配域,处理客户端的域读写请求并回写映射文件等;客户端

主要用来查找用户域所在的域服务器地址信息。

3,主服务器负责域的分配工作,通过“根域(单一域)”和“元域(用户域,随用户增

长而增长)”配合分配;主服务器监控域服务器的运行,如发现域服务器不可达或者超负荷,则连到别的域服务器。

4,HRegionServer 主要有服务于主服务器分配的域、处理客户端的读写请求、缓存区回写、压缩、分割等功能

4.1 写请求和缓存回写过程:

①客户端和主服务器通信获取域和域所在域服务器列表,就可以直接向域服务器发送域读

写请求。②如果是写请求,先把写请求信息写入一个日志文件Hlog,HLog被缓存在存储

缓存区MemCache中。③如果是读请求,域服务器先检查请求数据在存储缓存区中是否命中,如果没有命中,云服务器再去查找相关的映射文件。④当存储缓存区的大小达到一定

值后,将缓存区中的数据写到磁盘上,形成映射文件。

4.2压缩:当映射文件数量达到一定值时,服务器会将多个映射文件合并成一个,叫压缩。

4.3 分割:当射文件大小达到一定值时(比如256M),一个域服务器会被分成两个小的子域。

5,HBaseClient

Client查找用户域所在域服务器地址请求过程:①client 问主服务器查找到根域②定位到根

域后,连上根域服务器,再通过扫描根域获取元域信息,③再连上元域服务器,通过扫描

元域来获取用户域所在域服务器地址。④客户端连接域服务器发出读写请求,并且域服务

器的地址在客户端被缓存,后续请求无需重复上述过程。⑤不管是由于主服务器为了负载

均衡重新分配域还是域服务器崩溃,客户端都要重新扫描元表来定位新的用户域地址。

1.6.2 Hive的数据管理

数据仓库的作用--存储历史数据-进而对数据进行分析,只提供查询-不提供修改。Hive 的目标是做成数据仓库,所以它提供了SQL,提供了文件-表的映射关系,又由于Hive基于HDFS,所以不提供Update,因为HDFS本身就不支持。

Hive的数据管理按照层次可以分元数据存储、数据存储、数据交换

1,元数据存储

Hive 将元数据存在RDBMS中,可以又三种模式连接到数据库:比较常用的是multi user mode 通过网络连接数据库。

2,数据存储

Table 类似于数据库中的table,每个table都有一个目录来存数据。

Partition类似于索引

Buckets 对指定列计算hash,根据hash值切分数据,目的是为了便于并行,每个bucket一个文件

External table指向已经在HDFS中存在的数据。

3,数据交换

第二章 hadoop 的安装配置

摘《Hadoop平台搭建及实例运行_(自测版).doc》

步骤一般来说就是安装java;安装hadoop;配置master和slave;生成input文件夹和文件;运行测试的程序;生成输出在output

第三章 hadoop应用案例分析

hadoop的强项是对海量数据进行处理

3.1 hadoop在yahoo的应用

1. 大规模的数据处理分为三个不同的任务:数据收集,数据准备,数据表示。

数据收集比如可以采用网络爬虫。

数据准备通常被认为是ETL(提取、转换和加载),或者是数据工厂。

数据准备的经典是数据流水线包括反馈、清洗和转换。可以使用Pig Latin (Pig Latin,该语言借鉴了SQL和map/reduce两者的优点,既具有类似SQL的灵活可变式性,又有过程式语言的数据流特点。Pig Latin语言在编程风格上与SQL有明显差别,前者凸显了程序的执行数据流,后者只关注最终结果。SQL更适合于编程经验不丰富的程序员,适合小规模数据集;Pig Latin更适合有经验的程序员和大规模数据集. Pig Latin程序被编译为mapreduce作业,在hadoop上执行。)

数据表示一般是指数据仓库。

商业智能分析可以将数据连接(如Hive通过ODBC)到BI工具上产生报表.而特定查询,Hive 提供了SQL接口和关系模型。

3.2 hadoop在ebay的应用

3.3 hadoop在百度的应用

第四章 mapReduce 计算模型

4.2.1 MapReduce job

Map接受,产生另外一个< key1,value2 >.hadoop会接受< key2,value2 >,且收集有相同key的元素,以给reduce,reduce会输出

4.2.1 hadoop中的Hello world程序

1,InputFormat

Map接受的是受InputFormat类生成的InputSplit控制的,比如对于TextInputFormat来说,每行记录会生成一个,其中key是字节偏移量,value是每行的内容。

2,outputFormat

比如对于TextOutputFormat来说,每条记录以一行的形式存入文本文件。

Map的输出是写在本地磁盘上的,而reduce的输出是输出到HDFS上。

3,编写mapReduce程序的一般注意点:

(1)写一个内部类implements Mapper<输入key,输入值,输出key,输出值> ,且实现Map()方法

(2)写一个内部类implements Reducer <输入key,输入值,输出key,输出值>,且实现reduce()方法

(3)在包裹内部类的外部类的main方法里设置:

4.3 MapReduce任务的优化

1,主要优化i/o和计算性能

2,mapReduce擅长处理少量的大数据,而不擅长大量小数据。所以可以可以通过调整block大小来优化

3,combine函数在本地合并有相同key的值,减少网络i/o

3,压缩输出来减少网络i/o

第五章开发mapReduce 应用程序

1,

Hadoop有三种运行方式:本地、伪分布(本地运行,但是运行的文件系统为HDFS,能够完全模仿完全分步模式)、完全分步

2,

3,每个输入文件一个map任务,但是可以设置每个taskTracker节点,同时“正在执行”的map任务的个数,建议设置为比较大的值,从而缩短运行时间。

第十三章 Mahout

集成了一些机器学习算法

第十五章 zookeeper (摘:https://www.360docs.net/doc/163591099.html,/blog/2014486)

其实就是基于DFS来协调系统

1,zooker的架构

也有leader和follower的概念

Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。

当leader崩溃或者leader失去大多数的follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的leader,让所有的Server都恢复到一个正确的状态。Zk的选举算法有两种:一种是基于basic paxos实现的

Basic paxos简单来说就是如果“多数”Server认为某个server是leader,那这个server就是leader。

2,Zookeeper的设计目标:

(1)最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper 最重要的性能。

(2)原子性:更新只能成功或者失败,没有中间状态。

(3)实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。

(4)顺序性:一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布

3,应用

Zookeepr允许分布式的继承通过共享体系的命名空间来进行协调。命名空间类似文件系统的目录,也就是每个server都对某个共享目录进行监控,来协调工作工作

每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识,如/SERVER2节点的标识就为/APP3/SERVER2

比如说,配置的集群,Zookeeper很容易实现这种集中式的配置管理,比如将APP1的所有配置配置到/APP1 znode下,APP1所有机器一启动就对/APP1这个节点进行监控(zk.exist("/APP1",true)),并且实现回调方法Watcher,那么在zookeeper上/APP1 znode节点下数据发生变化的时候,每个机器都会收到通知,Watcher方法将会被执行,那么应用再取下数据即可(zk.getData("/APP1",false,null));

另外有一个应用场景就是集群选master,一旦master挂掉能够马上能从slave中选出一个master,实现步骤和前者一样,只是机器在启动的时候在APP1SERVERS创建的节点类型变为EPHEMERAL_SEQUENTIAL类型,这样每个节点会自动被编号

我们默认规定编号最小的为master,所以当我们对/APP1SERVERS节点做监控的时候,得到服务器列表,只要所有集群机器逻辑认为最小编号节点为master,那么master就被选出,而这个master宕机的时候,相应的znode会消失,然后新的服务器列表就被推送到客户端,然后每个节点逻辑认为最小编号节点为master,这样就做到动态master选举。

hadoop集群完整配置过程详细笔记

本文为笔者安装配置过程中详细记录的笔记 1.下载hadoop hadoop-2.7.1.tar.gz hadoop-2.7.1-src.tar.gz 64位linux需要重新编译本地库 2.准备环境 Centos6.4 64位,3台 hadoop0 192.168.1.151namenode hadoop1 192.168.1.152 datanode1 Hadoop2 192.168.1.153 datanode2 1)安装虚拟机: vmware WorkStation 10,创建三台虚拟机,创建时,直接建立用户ha,密码111111.同时为root密码。网卡使用桥接方式。 安装盘 、 2). 配置IP.创建完成后,设置IP,可以直接进入桌面,在如下菜单下配置IP,配置好后,PING 确认好用。 3)更改三台机器主机名 切换到root用户,更改主机名。 [ha@hadoop0 ~]$ su - root Password: [root@hadoop0 ~]# hostname hadoop0 [root@hadoop0 ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop0 以上两步后重启服务器。三台机器都需要修改。 4)创建hadoop用户 由于在创建虚拟机时,已自动创建,可以省略。否则用命令创建。

5)修改hosts文件 [root@hadoop0 ~]# vi /etc/hosts 127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4 ::1localhostlocalhost.localdomain localhost6 localhost6.localdomain6 192.168.1.151 hadoop0 192.168.1.152 hadoop1 192.168.1.153 hadoop2 此步骤需要三台机器都修改。 3.建立三台机器间,无密码SSH登录。 1)三台机器生成密钥,使用hadoop用户操作 [root@hadoop0 ~]# su– ha [ha@hadoop0 ~]$ ssh -keygen -t rsa 所有选项直接回车,完成。 以上步骤三台机器上都做。 2)在namenode机器上,导入公钥到本机认证文件 [ha@hadoop0 ~]$ cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys 3)将hadoop1和hadoop2打开/home/ha/.ssh/ id_rsa.pub文件中的内容都拷贝到hadoop0的/home/ha /.ssh/authorized_keys文件中。如下: 4)将namenode上的/home/ha /.ssh/authorized_keys文件拷贝到hadoop1和hadoop2的/home/ha/.ssh文件夹下。同时在三台机器上将authorized_keys授予600权限。 [ha@hadoop1 .ssh]$ chmod 600 authorized_keys 5)验证任意两台机器是否可以无密码登录,如下状态说明成功,第一次访问时需要输入密码。此后即不再需要。 [ha@hadoop0 ~]$ ssh hadoop1 Last login: Tue Aug 11 00:58:10 2015 from hadoop2 4.安装JDK1.7 1)下载JDK(32或64位),解压 [ha@hadoop0 tools]$ tar -zxvf jdk-7u67-linux-x64.tar.gz 2)设置环境变量(修改/etx/profile文件), export JAVA_HOME=/usr/jdk1.7.0_67 export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin 3)使环境变量生效,然后验证JDK是否安装成功。

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集群管理员。我们课程主要培养工程师。本节内容是面向集群管理员的,主要讲述集群管理的知

hadoop3安装和配置

hadoop3.0.0安装和配置1.安装环境 硬件:虚拟机 操作系统:Centos 7 64位 IP:192.168.0.101 主机名:dbp JDK:jdk-8u144-linux-x64.tar.gz Hadoop:hadoop-3.0.0-beta1.tar.gz 2.关闭防火墙并配置主机名 [root@dbp]#systemctl stop firewalld #临时关闭防火墙 [root@dbp]#systemctl disable firewalld #关闭防火墙开机自启动 [root@dbp]#hostnamectl set-hostname dbp 同时修改/etc/hosts和/etc/sysconfig/network配置信息 3.配置SSH无密码登陆 [root@dbp]# ssh-keygen -t rsa #直接回车 [root@dbp]# ll ~/.ssh [root@dbp .ssh]# cp id_rsa.pub authorized_keys [root@dbp .ssh]# ssh localhost #验证不需要输入密码即可登录

4.安装JDK 1、准备jdk到指定目录 2、解压 [root@dbp software]# tar–xzvf jdk-8u144-linux-x64.tar.gz [root@dbp software]# mv jdk1.8.0_144/usr/local/jdk #重命名4、设置环境变量 [root@dbp software]# vim ~/.bash_profile 5、使环境变量生效并验证 5.安装Hadoop3.0.0 1、准备hadoop到指定目录 2、解压

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面试题-企业项目实战

大数据hadoop面试题-企业项目实战 大数据技术逐渐被企业所重视,其带来的益处其实是可以被无限放大的,要知道,现在的市场都是,得数据者得天下!而数据的获得还是要靠大数据技术的,Hadoop作为大数据技术的一个重要技术点,在面试大数据工程师的时候是肯定要被问及的,千锋小编整理一些关于大数据Hadoop的面试题,预祝每一位大数据工程师都能找到自己理想的工作。 1、在Hadoop中定义的主要公用InputFormat中,默认是哪一个?(A) A、TextInputFormat B、KeyValueInputFormat C、SequenceFileInputFormat 2、下面哪个程序负责HDFS 数据存储?(C) https://www.360docs.net/doc/163591099.html,Node B.JobTracker C.DataNode

D.SecondaryNameNode E.tasktracker 3、HDFS 中的block 默认保存几份?(A) A.3 份 B.2 份 C.1 份 D.不确定 4、下列哪个程序通常与NameNode 在一个节点启动?(D) A.SecondaryNameNode B.DataNode C.TaskTracker D.JobTracker 解析:hadoop的集群是基于master/slave模式,namenode和jobtracker 属于master,datanode和tasktracker属于slave,master只有一个,而slave 有多个. SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。 JobTracker对应于NameNode,TaskTracker对应于DataNode. DataNode和NameNode是针对数据存放来而言的.JobTracker和TaskTracker是对于MapReduce执行而言的. mapreduce中几个主要概念,mapreduce 整体上可以分为这么几条执行

(完整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入门学习资料大全

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/163591099.html,/thread-60444-1-1.html 用Hadoop进行分布式数据处理 https://www.360docs.net/doc/163591099.html,/thread-60447-1-1.html

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

hadoop安装简要过程和相关配置文件

Hadoop安装简要过程及配置文件 1、机器准备 ①、Linux版操作系统centos 6.x ②、修改主机名,方便配置过程中记忆。修改文件为: /etc/sysconfig/network 修改其中的HOSTNAME即可 ③、配置局域网内,主机名与对应ip,并且其中集群中所有的机器的文件相同,修改文件为 /etc/hosts 格式为: 10.1.20.241 namenode 10.1.20.242 datanode1 10.1.20.243 datanode2 2、环境准备 ①、配置ssh免密码登陆,将集群中master节点生成ssh密码文件。具体方法: 1)、ssh-keygen -t rsa 一直回车即可,将会生成一份 ~/.ssh/ 文件夹,其中id_rsa为私钥文件 id_rsa.pub公钥文件。 2)、将公钥文件追加到authorized_keys中然后再上传到其他slave节点上 追加文件: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 上传文件: scp ~/.ssh/authorized_keys root@dananode:~/.ssh/ 3)、测试是否可以免密码登陆:ssh 主机名或局域网ip ②、配置JDK ③、创建hadoop用户 groupadd hadoop useradd hadoop -g hadoop 4)、同步时间 ntpdate https://www.360docs.net/doc/163591099.html, 5)、关闭防火墙 service iptables stop 3、安装cdh5 进入目录/data/tools/ (个人习惯的软件存储目录,你可以自己随便选择); wget "https://www.360docs.net/doc/163591099.html,/cdh5/one-click-install/redhat/ 6/x86_64/cloudera-cdh-5-0.x86_64.rpm" yum --nogpgcheck localinstall cloudera-cdh-5-0.x86_64.rpm 添加cloudera仓库验证: rpm --importhttps://www.360docs.net/doc/163591099.html,/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera

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 Hive实战

HadoopHive实战 1内部表 1.1 创建表并加载数据 第一步启动HDFS、YARN和Hive,启动完毕后创建Hive数据库 hive>create database hive; hive>show databases; hive>use hive; 第二步创建内部表 由于Hive使用了类似SQL的语法,所以创建内部表的语句相对SQL只增加了行和字段分隔符。 hive>CREATE TABLE SOGOUQ2(DT STRING,WEBSESSION STRING,WORD STRING,S_SEQ INT,C_SEQ INT,WEBSITE STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' ; 第三步加载数据 数据文件可以从HDFS或者本地操作系统加载到表中,如果加载HDFS文件使用LOAD DATA INPATH,而加载本地操作系统文件使用LOAD DATA LOCAL INPATH命令。HIVE表保存的默认路径在${HIVE_HOME}/conf/hive-site.xml配置文件的hive.metastore.warehouse.dir属性指定,当创建表时会在hive.metastore.warehouse.dir指向的目录下以表名创建一个文件夹,在本演示中表默认指向的是/user/hive/warehouse。 数据文件在本地操作系统将复制到表对应的目录中,而数据文件在HDFS中,数据文件将移

动到表对应的目录中,原来的路径将不存在该文件。在这里使用《Spark编程模型(上)--概念及Shell试验》中在本地操作系统中的搜狗日志数据文件: hive>LOAD DATA LOCAL INPATH '/home/hadoop/upload/sogou/SogouQ2.txt' INTO TABLE SOGOUQ2; 在/user/hive/warehouse/hive.db/sogouq2目录下,可以看到SougouQ2.txt数据文件: 1.2 查询行数 可以用count关键字查询SogouQ2.txt数据行数,查询时会启动MapReduce进行计算,Map 的个数一般和数据分片个数对应,在本查询中有2个Map任务(数据文件有2个Block),1个Reduce任务。 hive>select count(*) from SOGOUQ2;

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. 系统技术架构

Cloudera hadoop 大数据平台实战指南(10)

1.什么是kafka?传统的日志分析系统提供了一种离线处理日志信息的可扩展 方案,若要进行实时处理,通常会有较大延迟。而现有的消息(队列)系统能够很好地处理实时或者近似实时的应用,但未处理的数据通常不会写到磁盘上,这对于 Hadoop 之类(一小时或者一天只处理一部分数据)的离线应用而言可能存在问题。 Kafka 正是为了解决以上问题而设计的,它能够很好地支持离线和在线应用。 2.kafka的基本架构? 从架构图可以看出,生产者 Producer、缓存代理 Broker 和消费者 Consumer 都可以有多个。 Producer 和 Consumer 实现 Kafka 注册的接口,数据从 Producer 发送到 Broker, Broker 承担一个中间缓存和分发的作用。 Broker 分发注册到系统中的 Consumer。 Broker 的作用类似于缓存,即活跃的数据和离线处理系统之间的缓存。客户端和服务器端的通信是基于简单的、高性能的且与编程语言无关的 TCP 协议。 Kafka 使用 ZooKeeper 作为其分布式协调框架,其动态扩容扩容是通过

ZooKeeper 来实现的。 3.kafka的基本概念?数据发生器(如 Facebook、 Twitter)产生的数据会被单个地运行在其服务器上的 Agent 所收集,之后数据收集器从各个 Agent 上汇集数据,并将采集到的数据存入 HDFS 或者 HBase 中。这个过程涉及以下几个基本概念。(1) Topic:特指 Kafka 处理的消息源的不同分类。(2) Partition: Topic 物理上的分组,一个 Topic 可以分为多个 Partition,每个 Partition 是一个有序的队列。Partition 中的每条消息都会被分配一个有序的 id。(3) Message:消息,是通信的基本单位。每个 Producer 可以向一个 Topic(主题)发布一些消息。(4)Producer:消息和数据生产者。向 Kafka 的一个 Topic 发布消息的过程叫作Producer。(5) Consumer:消息和数据消费者。订阅 Topics 并处理其发布的 消息的过程叫作 Consumer。(6) Broker:缓存代理。 Kafka 集群中的一台或多台服务器统称为 Broker。一台 Kafka 服务器就是一个 Broker。一个集群由多个Broker 组成,一个 Broker 可以容纳多个 Topic。

Hadoop详细安装配置过程

1.下载并安装安装ssh sudo apt-get install openssh-server openssh-client 3.搭建vsftpd #sudo apt-get update #sudo apt-get install vsftpd 配置参考的开始、关闭和重启 $sudo /etc/vsftpd start #开始 $sudo /etc/vsftpd stop #关闭 $sudo /etc/vsftpd restart #重启 4.安装 sudo chown -R hadoop:hadoop /opt cp /soft/ /opt sudo vi /etc/profile alias untar='tar -zxvf' sudo source /etc/profile source /etc/profile untar jdk* 环境变量配置 # vi /etc/profile ●在profile文件最后加上 # set java environment export JAVA_HOME=/opt/ export CLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/lib/ export PATH=$JAVA_HOME/bin:$PATH 配置完成后,保存退出。 ●不重启,更新命令 #source /etc/profile ●测试是否安装成功 # Java –version 其他问题: 出现unable to resolve host 解决方法 参考 开机时停在Starting sendmail 不动了的解决方案 参考安装软件时出现E: Unable to locate package vsftpd 参考vi/vim 使用方法讲解 参考分类: Hadoop

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

相关文档
最新文档