Hadoop入门

Hadoop

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

      

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进程,则说明启动成功:

或使用ps命令:

3、单个启动与停止hadoop

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

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

       Namenode

       Datanode

       Secondarynamenode

       Jobtracker

       Tasktracker

      

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

      

检查启动是否成功:

      

停止:

       使用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 /

 

2:将文件上传到hdfs

以下命令,将本地目录下的a.txt上传到hdfs下的wj目录下,并重命名为b.txt

Hadoop fs –put a.txt /wj/b.txt

 

也可以使用copyFromLocal命令将本目录下的文件上传到hdfs文件系统中:

 

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

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

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

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

 

4:删除hdsf下的某个文档

 

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

 

 

2、MapReduce 范例操作-测试字符统计

先向服务器上传一文件:

执行统计:

root@linux:/home/wangjian#hadoop fs -copyFromLocal a.txt /wj/a.txt

root@linux:/home/wangjian#cd /opt/hadoop-0.20.2/

root@linux:/opt/hadoop-0.20.2#hadoop jar hadoop-0.20.2-examples.jar wordcount /wj/a.txt /wj/result2

4、查看结果:

默认情况下结果文件名为:/wj/result2/part-0000

 

root@linux:/opt/hadoop-0.20.2#hadoop fs -cat /wj/result2/part*

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值