Hadoop入门学习笔记---part1

随着毕业设计的进行,大学四年正式进入尾声。任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定。无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力,好好做。正是因为选题和hadoop有关,现在正式开始学习hadoop。将笔记整理于此,希望与志同道合的朋友共同交流。

 作者:itRed           邮箱:[email protected]       个人博客链接:http://www.cnblogs.com/itred

好了,废话不多说。进入正题!开始hadoop的学习。

  part1的主要任务是了解Hadoop项目,理解Hadoop的相关术语,了解Hadoop的部署模式,为伪分布式模式准备集群的环境

一.Hadoop项目简介:

  这就是Hadoop的logo。而Hadoop的形象代言人就是这只棕黄色的小象。实际是一小孩儿的填充玩具,如果有兴趣了解Hadoop的名字起源。可以百度。

这里对Hadoop的介绍仅仅起到一个抛砖引玉的作用,我相信没有任何文档的介绍能搞比得上Hadoop的官方文档。贴出Hadoop官网:http://hadoop.apache.org/,因此阅读官方文档时最好的一种真正理解这门技术的方式。在此,我谈谈自己的理解。Hadoop是一个分布式系统基础架构,但是它可以让开发者在不需要了解分布式底层的基础上,开发分布式程序和应用。而且可以充分利用其集群的能力来进行高速运算和存储。一句话,就是它是适合打数据的分布式存储与计算平台。

Hadoop的核心设计就是HDFS(Hadoop分布式文件系统)和MapReduce。关于这些术语的介绍我会在后文给出解释。HDFS为海量的数据提供了存储,而MapReduce为海量数据提供了计算。

Hadoop项目主要包含的模块有:

  Hadoop Common:这个Common套件主要为支持其他的Hadoop模块;

  HDFS:一种分布式文件系统,支持高吞吐量的应用数据;

   Hadoop YERN:一种任务调度的框架和群资源管理;

  Hadoop MapReduce:YERN依靠的系统,主要用于处理打数据。

二.Hadoop 重要术语理解:

HDFS:Hadoop Distributed File System (Hadoop分布式文件系统)默认的最基本的存储单位是64M的数据块。而在HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。

MapReduce:就是一种编程模型,用于大规模数据集(大于1TB)的并行运算。"Map(映射)"和"Reduce(归约)",以及它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

三.Hadoop的部署模式主要分为三种:

本地模式:此时Hadoop使用本地文件系统而非分布式文件系统,而且其也不会启动任何Hadoop守护进程,Map和Reduce任务都作为同一进程的不同部分来执行。因此,本地模式下的Hadoop仅运行于本机。此种模式仅用于开发或调试MapReduce应用程序但却避免了复杂的后续操作。

伪分布模式:hadoop将所有进程运行于同一台主机上,但此时Hadoop将使用分布式文件系统,而且各jobs也是由JobTracker服务管理的独立进程。同时,由于伪分布式的Hadoop集群只有一个节点,因此HDFS的块复制将限制为单个副本,其secondary-master和slave也都将运行于本地主机。此种模式除了并非真正意义的分布式之外,其程序执行逻辑完全类似于完全分布式,因此,常用于开发人员测试程序执行。

集群模式:hadoop守护进程运行在一个集群上。

四.为安装Hadoop准备环境(伪分布模式):实现伪分布模式下的hadoop集群环境搭建。

准备软件:

    在虚拟机中装一个linux系统;

    Jdk;(版本根据您的实际情况来选择)

在linxu中安装jdk时,需要给jdk权限命令:chmod o+x  jdk..(根据版本的实际情况来);

然后利用 ./jdk….(版本)   进行安装;

  安装后的路径在:  /usr/java

  然后将java加入环境变量:#vi  /etc/profile

JAVA_HOME=/usr/java/jdk….
PATH=$PATH:/usr/java/jdk../bin
CLASSPATH=.:/usr/java/jdk…/jre/lib/rt.jar
Export JAVA_HOME PATH CLASSPATH    

  关闭linux防火墙:

命令:
#service iptables status //查看防火墙状态
#service iptables stop   //关闭防火墙
#chkconfig iptables off  //设置防火墙的自动启动为off,即禁止自启动

  修改ip:网络链接方式设置为host-only ,根据自己的实际宿主机ip地址进行更改

 命令:# vi  /etc/sysconfig/network-s/ifcfg-eth0  //利用vi修改

  修改hostname:

 命令:#vi /etc/sysconfig/network    //机器重启后有效

           HOSTNAME=Hadoop

  ssh自动登陆:注意并不是java三大框架!

命令操作如下:
#cd ~/.ssh
#ssh-keygen –t rsa   //然后就一直按Enter键,按着默认的进行下去;
#cp id_rsa.pub  authorized_keys
#ssh localhost  //利用这个命令进行验证

完成后,输入ssh localhost完成验证。

今天只是重点了解一下Hadoop项目,具体安装将在《Hadoop入门学习笔记---part2》中进行。

作者:itRed
邮箱:[email protected]
博客:http://www.cnblogs.com/itred
***版权声明:本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。
时间: 2024-10-11 13:33:54

Hadoop入门学习笔记---part1的相关文章

Hadoop入门学习笔记---part4

紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操作,前提是按照<Hadoop入门学习笔记---part2>中的已经在虚拟机中搭建好了Hadoop伪分布环境:并且确定现在linux操作系统中hadoop的几个进程已经完全启动了. 好了,废话不多说!实际的例子走起. 在myeclipse中新建一个java工程: 在项目工程中新建一个lib包用于存放

Hadoop入门学习笔记---part3

2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hadoop有了一个基础的了解.但是还是有一些理论性的东西需要重复理解,这样才能彻底的记住它们.个人认为重复是记忆之母.精简一下: NameNode:管理集群,并且记录DataNode文件信息: SecondaryNameNode:可以做冷备份,对一定范围内的数据作快照性备份: DataNode:存储数据:

Hadoop入门学习笔记之一

http://hadoop.apache.org/docs/r1.2.1/api/index.html 适当的利用 null 在map中可以实现对文件的简单处理,如排序,和分集合输出等. 需要关心的内容 一个节点面对的是一个Map任务,一个Map任务面对的是一个split文件,一个map方法面对的是一个split文件生成的键值对. mapper类中map方法的输入是InputFormat的ReadeRecord类读取到的键值对 学习一周之后问题总结: 1.实验时使用的文件过小,大量小文件问题,需

汇编入门学习笔记 (六)—— si、di,双重循环

疯狂的暑假学习之  汇编入门学习笔记 (六)-- si.di,双重循环 参考: <汇编语言> 王爽 第7章 1. and和or指令,与[bx+idata] and和or,就不多说了. [bx+idata] 这样写是可以的,某些情况下,比较方便. [bx+idata] 也可以写成 idata[bx] 直接见例子: 把'ABcde' 跟 'fGHig' 都改成大写(ASCII中大写字母与小写字母二进制中,只有第五位不同,大写字母是0,小写字母是1) assume cs:code,ds:data d

汇编入门学习笔记 (八)—— 转移指令

疯狂的暑假学习之  汇编入门学习笔记 (八)--  转移指令 參考: <汇编语言> 王爽 第9章 能够改动ip或者同一时候改动cs和ip的指令统称为转移指令. 8086CPU转移行为分为: 段内转移:仅仅改动ip 段间转移:同一时候改动cs和ip 段内转移按ip改动的范围可分为: 短转移:ip改动范围 -128~127 近转移:ip改动范围 -32768~32767 转移指令分为: 无条件转移指令.如 jmp 条件转移指令 循环指令.如 loop 过程. 中断. 1. offset,nop指令

汇编入门学习笔记 (三) —— 第一个程序

疯狂的暑假学习之  汇编入门学习笔记 (三)-- 第一个程序 参考:<汇编语言> 王爽  第四章 1.一个源程序从写到执行的过程 第一步:编写汇编源程序 第二步:对源程序进行编译连接 第三步:在操作系统中执行 2.源程序 代码: assume cs:first first segment start: mov ax,2 add ax,ax add ax,ax mov ax,4C00H int 21H first ends end start 代码解释: assume .segment.ends

Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记

?                                 Python 实现 CNKI批量下载 和FireFox Extension 入门学习笔记? 由于需要也是为了督促自己学习新的东西,我原本想要尝试着写一个爬虫程序,能够在cnki上自动得将论文进行批量下载,学习过程中遇到了诸多情况,cnki也真是专业,不得不佩服cnki的强大. 下面进入正题: 学习.实验环境:ubuntu 14.04 工具:Eclipse ,  FireFox, FireBug,HttpFox 编程语言:pyth

汇编入门学习笔记 (十四)—— 直接定址表

疯狂的暑假学习之  汇编入门学习笔记 (十四)-- 直接定址表 参考: <汇编语言> 王爽 第16章 1. 描述单元长度的标号 普通的标号:a,b assume cs:code code segment a:db 1,2,3,4,5,6,7,8 b:dw 0 start: mov si,offset a mov di,offset b mov ah,0 mov cx,8 s: mov al,cs:[si] add cs:[di],ax inc si loop s mov ax,4c00h in

汇编入门学习笔记 (四)—— [BX] 和 loop指令

疯狂的暑假学习之  汇编入门学习笔记 (四)-- [BX]  和 loop指令 参考:<汇编语言> 王爽 第5章 1.[BX] mov al,[1] 在debug中,会把bs:1 中数据赋给al,但在在masm中不会把bs:1 中数据赋给al,而是把 [1] 认为是 1 赋给al. 如果要实现在debug中的mov al,[1],在masm中就需要[bx] 如: mov bx,1 mov al,[bx] 还可以用 bs:[1] 的方式 如: mov al,bs:[1] 2.loop 循环 要使