1、Hadoop简介

1、hadoop的诞生

l  Nutch和Lucene之父Doug Cutting在2006年完成Hadoop项目。

l  Hadoop并不是一个单词,它来源于DougCutting小儿子对所玩的小象玩具牙牙学语的称呼。就像是google也是由小孩子命名一样。

l  后又经过5年的开发,hadoop在所有云计算系统是稳居第一。

l  Hadoop目前使用最广泛的版本为hadoop-0.20版本。目前最新版本为hadoop-1.03

l  Hadoop运行在Linux系统中。在windows上安装可使用cgywin模拟linux环境。

2、hadoop的组成

l  hadoop Common – 是hadoop的核心,包括文件系统、远程调用RPC的序列化函数。

l  HDSF : 提供高吞吐量的可靠分布式文件系统是 GFS的开源实现。

•   Hadoop的文件系统。必须通过hadoop  fs 命令来读取。支持分布式。

l  MapReduce : 大型分布式数据处理模型,是Google MapReduce的开源实现。

•   合并/计算模型。

l  其他相关组成:

•    Hbase:结构化分部式数据库。BigTable的开源实现。

•    Hive:提供摘要和查询功能的数据仓库。

•    Cassandra:由Facebook开发分布式数据仓库。目前已经捐献给apache。且apache已经将Cassandra应用到了各种云计算系统中。

3、hadoop的体系结构

NameNode  - 主节点主服务器

SecondaryNameNode– 是辅助nameNode

DataNode  -数据保存用的

TaskTracker – 接收任务

JobTracker  - 分数据 -100M  Datanode1,DataNode2,DataNode3

Master:主节点,相当于项目经理

Slave:从节点相当于PG

Hadoop只能运行在linux系统上:

在linux系统上装JVM虚拟机,然后,上面运行了三个进程

SecondaryNameNode,Jobtracter,NameNode这三个进程,这三个都是java进程

其中,NameNode是最重要的一个java进程,他决定了主节点,在从节点上没有这个进程

SecondaryNameNode相当于NameNode的秘书,协助NameNode完成工作, Jobtracter任务跟踪进程,用来跟踪任务

并且把任务交给从节点.

可以看到通常应用都会有一个主节点和一个从节点,并且从节点中也有两个java进程,因为在装有从节点的服务器上,也装的是linux系统,在linux系统上装有jvm,然后跑了两个java进程,一个是: Jobtracter,另一个是:DataNode数据节点,这个进程用来处理和数据有关的任务.注意在hadoop系统中,只有一个主节点,其他的都属于从节点.

l  NameNode:这是hadoop的守护进程(注意是进程JVM)。负责记录文件是如何分割成数据块,以及这些数据块分别存储到哪些数据节点上。对内存进行集中管理。NameNode在整个hadoop中只有一个。一旦NameNode服务器宕机,整个系统将无法运行。

l  DataNode:集群中的每个从服务器都运行一个DataNode后台程序。这个后台程序负责将HDFS数据块写到本地的文件系统。

l  Secondary NomeNode:用来监控HDFS状态的辅助后台程序。如保存NameNode的快照。

l  JobTracker:用户连接应用程序和hadoop。每一个hadoop集群中只一个 JobTracker,一般它运行在Master节点上。

l  TaskTracker:负责与DataNode进行结合。

4、Hadoop的市场

l  facebook

l  淘宝

l  360完全

l  京东

l  yahoo

l  google

l  暴风

2、Hadoop的安装

Core-site.xml:

官方只提供linux的安装版本:

目前市场上出现了一种window上的可以安装的版本。其实是将Linux与hadoop整合的产物。目的是简化hadoop的安装。此安装程序使用的是hadoop-0.20版本+cgywin:

1、hadoop的单机安装-hadoop4win的安装方法

Hadoop的使用包括

n  安装

n  格式化NameNode

n  启动所有节点

Hadoop4win的安装方法非常简单,因为它就是一个setup安装程序,只要会点下一步即可。

选择语言:

接收:

选择组件:

选择安装位置:

等待安装:

查看hadoop的安装细节:

安装细节:

安装细节:格式化namenode:

安装细节-测试启动所有节点:

注意下面的停止顺序:

Hadoop安装完成以后的目录:

hadoop4win是Linux+jdk+hadoop的安装目录。

Var是namenode格式化以后生成的目录 。即hdfs的目录。

进入hadoop4win:

查看hadoop的配置文件:

Hadoop-env.sh:hadoop的环境变量配置文件

Core-site.xml:hadoop的核心配置文件

Hdfs-site.xml:hadoop的文件系统配置文件

Mapred-site.xml:hadoop的map/reduce配置文件。

查看上面文件的配置信息,你对了解hadoop有帮助。

2、启动hadoop

1、直接使用hadoop的start-haoop

2、使用jps检查java进程

如果发现有5个java进程,则说明启动成功:

因为这里我们用了一台机器,所以这台机器既充当了主节点,又充当了从节点.

用jps命令,可以查看启动了哪些java进程.

或使用ps命令:

3、单个启动与停止hadoop

启动和停止hadoop必须要遵循节点的顺序。

启动时按以下顺序启动:(停止时按相反的顺序停止)

Namenode

Datanode

Secondarynamenode

Jobtracker

Tasktracker

使用hadoop-daemon.sh start 启动各节点:

检查启动是否成功:使用jps命令查看是否启动成功

停止:

使用hadoop-daemon.sh stop namenode停止每个节点即可

3、测试访问

Hadoop启动以后,访问50030端口可以访问jobtracker。

访问50070端口可以访问hdfs文件系统。

http://localhost:50030 - Jobtracker

http://localhost:50070 - hdfs

以下是50070

3、hdfs概念与命令

Hdfs是hadoop Distributed file system的缩写,是hadoop的分布式文件系统。

Hdfs由hadoop来管理,它不同于普通的文件系统,不能直观的查找文件,必须要通过hadoop命令操作hdfs。

HDFS是一个主从结构的体系,一个HDFS集群是由一个名字节点,它是一个管理文件的命名空间和调节客户端访问文件的主服务器,当然还有的数据节点,一个节点一个,它来管理存储。HDFS暴露文件命名空间和允许用户数据存储成文件。

  内部机制是将一个文件分割成一个或多个的块,这些块存储在一组数据节点中。名字节点操作文件命名空间的文件或目录操作,如打开,关闭,重命名,等等。它同时确定块与数据节点的映射。数据节点来负责来自文件系统客户的读写请求。

  数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指示。

  名字节点和数据节点都是软件运行在普通的机器之上,机器典型的都是linux,HDFS是用java来写的,任何支持java的机器都可以运行名字节点或数据节点,利用java语言的超轻便型,很容易将HDFS部署到大范围的机器上。典型的部署时将有一个专门的机器来运行名字节点软件,机群中的其他机器运行一个数据节点实例。体系结构排斥在一个机器上运行多个数据节点的实例,但是实际的部署不会有这种情况。

集群中只有一个名字节点极大地简单化了系统的体系。名字节点是仲裁者和所有HDFS的元数据的仓库。系统设计成用户的实际数据不经过名字节点。

1、hadoop下的文件操作命令

1 :列出hdfs文件

~# hadoop dfs –ls /

~# hadoop fs –ls /

查看user下的内容

hadoop fs –ls  /user

这里查看这个文件还有一个方法就是在网页中查看:进入http://127.0.0.1:50070,也就是hdfs的管理系统

然后点击相应的文件目录就可以了.

这里需要注意:当查看hadoop文件系统的时候需要用命令hadoop fs –ls  这样前面加上hadoop fs 因为假如

直接用ls的话,那么就是指模拟出来的linux文件系统中的东西

2:将文件上传到hdfs

这里演示将windows系统中的一个credream.txt文件上传到hadoop的hdfs分布式系统中,

首先可以通过cd c:进入本地的windows的c盘

然后cd..走到系统的根目录

Ls可以看到当前文件系统的盘符

Cd c

Ls

可以列出c盘中的文件

:

xiaofeng@xiaofeng-PC/cygdrive/c

下面通过命令把本地c盘中的credream.txt文件传到hadoop hdfs文件系统中的user目录下

下面是命令行:

注意:这里hadoop fs –put credream.txt/user/credream.txt

就是把c盘的文件上传到hadoop的hdfs文件系统的user目录下.

hadoop fs –put credream.txt,这个指的是本地c盘,因为可以看到cygdrive/c指的就是c盘了,所以没有另外指定本地的

文件目录

而且可以对文件进行重命名:

hadoop fs –put credream.txt/user/hadoop.txt就是把本地c盘的credream.txt文件上传到hadoop的hdfs系统并进行

重命名.

echo hello credream > test.txt就是指的是在本地的C盘进行创建一个test.txt文件,但是如果是win7系统的话,那么会有

权限问题

可以看到在c盘不可以,但是在d盘就可以创建test.txt文件了

这是把本地D盘的test.txt文件上传到hdfs文件系统的/user/目录下不改变文件的名字

这里是上传整个目录到hdfs文件系统的/user/目录下

mkdirhadooptest 在本地d盘创建一个hadooptest文件夹

cp test.txthadooptest就是把test.txt文件拷贝到hadooptest文件夹中

hadoop fs –put hadooptest/user/

把hadooptest文件夹上传到hdfs文件系统的/user/目录下

从上图中可以看到

使用hadoop fs –copyFromLocaltest.txt /user/testa.txt

将本地的test.txt文件拷贝一份然后上传到hdfs文件系统中并且重命名为testa.txt文件

然后通过hadoop fs –ls/user查看hdfs文件系统中user目录下的文件

3:将hdfs中的文件复制到本地系统中

通过get命令,即可以操作文件也可以操作文件夹:

操作一个文件,将hdfs上的文件/wj/a.txt保存到本地,并取名为b.txt

以下下载整个文件到当前目录下来,注意最后的一个点

Get命令例子二:

通过hadoop fs –get/user/testa.txt testb.txt就是把hdfs中的user/下的testa.txt文件下载到本地并重命名

hadoop fs –get /user/testa.txt .直接把hdfs中的user/下的testa.txt文件下载到本地 .代表直接到本地不进行重命名

hadoop fs –get /user/hadooptest . 直接把hdfs中的user/下的hadooptest文件夹下载到本地 .代表直接到本地不进行重命名

hadoop fs –get /user/hadooptestcredreamhadoop直接把hdfs中的user/下的hadooptest文件夹下载到本地,并重命名

4:删除hdsf下的某个文档

这里是删除本地的文件,和linux下的命令一样

删除文件夹的时候要用递归

这里是删除hdfs文件系统中的文件和文件夹的例子:

hadoop fs –rm /user/testa.txt删除user文件夹下的testa.txt文件

hadoop fs –rm /user/*.txt删除user文件夹下所有.txt的文件

hadoop fs –rm /user/hadooptest这样是不能删除一个文件夹的要用递归

hadoop fs –rmr user/hadooptest这个命令可以删除文件夹和文件夹中的文件递归删除

5:其他更多操作,可以通过查帮助获取

云计算学习笔记004---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载相关推荐

  1. 安装、进程-云计算学习笔记---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载-by小雨...

    本文是一篇关于安装.进程-的帖子 1.Hadoop简介 1.hadoop的生诞 l  Nutch和Lucene之父Doug Cutting在2006年成完Hadoop目项. l  Hadoop并非一个 ...

  2. 云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin

    云计算学习笔记---异常处理---hadoop问题处理ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.lang.NullPoin ...

  3. Python3学习笔记(一)简介 、 安装 、 解释器

    python(一)简介.安装 . python解释器介绍 一. 简介 python提供了非常完善的基础代码库 , 覆盖了网络 . 文件 . GUI . 数据库 . 文本等大量的内容 , 被称之为&qu ...

  4. Spark基础学习笔记08:Scala简介与安装

    文章目录 零.本讲学习目标 一.Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1.一切都是对象 2.一切都是函数 3.一切都是表达式 (四)在线运行Scala 二.选择 ...

  5. Java开发学习(三十四)----Maven私服(二)本地仓库访问私服配置与私服资源上传下载

    一.本地仓库访问私服配置 我们通过IDEA将开发的模块上传到私服,中间是要经过本地Maven的 本地Maven需要知道私服的访问地址以及私服访问的用户名和密码 私服中的仓库很多,Maven最终要把资源 ...

  6. 学习笔记——zhon库的简介、安装、使用方法之详细攻略

    zhon库的简介 Zhon是一个Python库,它提供了中文文本处理中常用的常量. 包括常用常量: 中日韩文字和部首 中文标点符号 汉语句子规则表达模式 拼音元音.辅音.小写.大写和标点符号 拼音音节 ...

  7. 文档上传下载 php开源,PHP文件的上传下载 - PHP开发学习门户的个人空间 - OSCHINA - 中文开源技术交流社区...

    (1).在标签中将enctype和method两个属性指明相应的值. Enctype="multipart/form-data"; Method="POST" ...

  8. 后台学习六---ajaxFileupload文件上传下载

    这一章讲讲文件的上传下载,这里我们使用ajax的上传文件方法. ps:基于maven的springmvc框架都已经搭建好了的,如有问题,参考 : 后台学习一-spring+maven+mybatis+ ...

  9. HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介

    本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...

最新文章

  1. 4566: [Haoi2016]找相同字符 SAM
  2. 我的博士之路(壮根美颜-康亚龙):五年读博路,苦熬曙光明
  3. SAP S/4HANA CDS View的访问控制实现:DCL介绍
  4. Linux安装ipvsadm工具查看ipvs
  5. Django日志模块配置
  6. react+redux+generation-modation脚手架搭建一个todolist
  7. 天池OCR大赛前排方案总结!
  8. 转一篇矩阵方面有趣的文章
  9. linux 虚拟内存分配,是否可以在linux中分配大量虚拟内存?
  10. 阶段3 3.SpringMVC·_06.异常处理及拦截器_1 SpringMVC异常处理之分析和搭建环境
  11. 校园网免认证登录基于DNS伪装包
  12. 正确的java学习顺序--刚入门的同学可以看这里
  13. 设计模式之单例模式:饿汉模式(懒汉模式)及优缺点分析
  14. python 列表嵌套 元素全部相同
  15. Win10系统杀毒软件defender无法自动启用的解决方法
  16. Linux下oracle11Gr2(64位)安装说明
  17. Warshall算法JAVA实现
  18. 程序员常见常用的英语单词
  19. python3 简单选课系统
  20. jQuery-Ajax请求Json数据并加载在前端页面,附视频教程讲解!

热门文章

  1. 轻松理解条件随机场(CRF)
  2. sumk-db的主要方法及注解
  3. vue2.0实现点击后显示,再次点击隐藏
  4. 连接数据库超时设置autoReconnect=true
  5. python实战===用python识别图片中的中文
  6. nginx学习之详细安装篇(二)
  7. Jenkins-安装jenkins2.7.1版本
  8. grub的概念,简单描述一下
  9. 搭建局域网HTTP FTP服务
  10. java 基础知识-数组的7种算法(排序、求和、最值、遍历...)