`
yale
  • 浏览: 359887 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

hadoop分布式集群

 
阅读更多

hadoop的基础知识我就不在这里介绍了,任何有关hadoop书籍中都有非常详细的原理以及其开源框架(HDFS、Mapreduce、combiner、Partitioner等)、子项目(Hive、Hbase等)的介绍以及讲解,而这些方面的知识也不是在短期内能够了解和深入的,有一个循序渐进的过程,我这里只是针对其集群结合介绍其原理介绍,让大家更快速的对hadoop有一个了解,但也请大家意识到,会搭建集群并不代表掌握了hadoop,集群的搭建之后,会涉及到集群的深度优化、多集群、性能调优等,除了hadoop集群之外还要深入的了解他的子项目以及框架才能更好的利用Hadoop来达到最佳效果

集群网络图

 文件写入:
1. Client向NameNode发起文件写入的请求。
2. NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。
3. Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。
文件读取:
1. Client向NameNode发起文件读取的请求。
2. NameNode返回文件存储的DataNode的信息。
3. Client读取文件信息。
文件Block复制:
1. NameNode发现部分文件的Block不符合最小复制数或者部分DataNode失效。
2. 通知DataNode相互复制Block。
3. DataNode开始直接相互复制。
图:

 

 

Hadoop集群流程

流程如下:
1  分布式环境中客户端创建任务并提交。
2
  InputFormatMap前的预处理,主要负责以下工作:
a)   
验证输入的格式是否符合JobConfig的输入定义,这个在实现Map和构建Conf的时候就会知道,不定义可以是Writable的任意子类。
b)   
input的文件split为逻辑上的输入InputSplit,其实这就是在上面提到的在分布式文件系统中blocksize是有大小限制的,因此大文件会被划分为多个block
c)   
通过RecordReader来再次处理inputsplit为一组records,输出给Map。(inputsplit只是逻辑切分的第一步,但是如何根据文件中的信息来切分还需要   RecordReader来实现,例如最简单的默认方式就是回车换行的切分) 

3. RecordReader处理后的结果作为Map的输入,Map执行定义的Map逻辑,输出处理后的key,value对到临时中间文件。
 4. Combiner可选择配置,主要作用是在每一个Map执行完分析以后,在本地优先作Reduce的工作,减少在Reduce过程中的数据传输量。
 5. Partitioner可选择配置,主要作用是在多个Reduce的情况下,指定Map的结果由某一个Reduce处理,每一个Reduce都会有单独的输出文件。
 6. Reduce执行具体的业务逻辑,并且将处理结果输出给OutputFormat。
 7.  OutputFormat的职责是,验证输出目录是否已经存在,同时验证输出结果类型是否如Config中配置,最后输出Reduce汇总后的结果。

Hadoop相关配置

下载hadoop后(我使用的是1.1.2版本),jdk(这里我就不讲解jdk的配置了)
配置环境变量(在/home/hadoop/.bashrc 中追加, 每台机器都需要配置)
export  JAVA_HOME=/usr/java/jdk1.6.0_23
export PATH=/usr/java/hadoopcluster1.1.2/hadoop-1.1.2/bin:$JAVA_HOME/bin:$PATH

 

在hadoop-1.1.2/conf/hadoop-evn.sh中追加
export  JAVA_HOME=/usr/java/jdk1.6.0_23
export  HADOOP_LOG_DIR=/tmp/log

 

重新登录使其生效: ssh  localhost
查看配置结果:which  hadoop


配置HADOOP运行参数

vi conf/masters

localhost替换为oraclerac1

 

vi conf/slaves

删除localhost,加入两行:
oraclerac1
oraclerac2

 

下述3个文件的配置远远不只这些,配置的属性非常多,我们这里的配置只是一个基础

  vi conf/core-site.xml

<property>
<name>fs.default.name</name>
<value>hdfs://oraclerac1:9000</value>
</property>

 

  vi conf/hdfs-site.xml
  标准的副本是3,在写入一个块时默认放置策略是:如果执行写操作的客户端是hadoop集群的一部分,第一个副本应放在客户端所在DataNode中,第二个副本随机放置在与第一个副本不同的机架上,第三个副本放在与第二个副本相同机架上的不同节点上

<property>
  <name>dfs.name.dir</name>
  <value>/home/hadoop/dfs/filesystem/name</value>
</property>
<property>
  <name>dfs.data.dir</name>
  <value>/home/hadoop/dfs/filesystem/data</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

 

vi conf/mapred-site.xml

<property>
  <name>mapred.job.tracker</name>
  <value>oraclerac1:9001</value>
</property>
<property> 
  <name>mapred.tasktracker.map.tasks.maximum</name>
  <value>4</value>
</property> 
<property> 
  <name>mapred.tasktracker.reduce.tasks.maximum</name>
  <value>4</value>
</property>
<property>
  <name>mapred.system.dir</name>
  <value>/home/hadoop/mapreduce/system</value>
</property>
<property>
  <name>mapred.local.dir</name>
  <value>/home/hadoop/mapreduce/local</value>
</property>

 

复制HADOOP文件到其他节点

scp -r /usr/java/hadoopcluster1.1.2/hadoop1.1.2 hadoop@oraclerac2: /usr/java/hadoopcluster1.1.2/hadoop-1.1.2

格式格式化HDFS

hadoop namenode –format
每次namenode format会重新创建一个namenodeId,而dfs.data.dir参数配置的目录中包含的是上次format创建的id,和dfs.name.dir参数配置的目录中的id不一致。namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空所有节点的dfs.data.dir参数配置的目录,如果还无法正常启动,删除掉所有节点的/tmp目录下内容,在针对各个进程日志进行排错

 

启动(因为配置了ssh ,只需要在oraclerac1机器上启动,看看启动了哪些机器的哪些进程,是否和当初自己所想一致)
start-all.sh

 

查看集群各机器进程是否正常启动,通过jdkjps(如此处相关进程没有正确启动,需要查看hadoop集群中各个节点的相关进程日志进行排错至正常启动)

 

执行hadoop自带例子

创建一个文件yale.txt,存放在hadoop目录下,添加一些内容

执行:hadoop fs -put yale.txt input/yale.txt

查看:hadoop fs -cat  input/yale.txt

执行:hadoop jar hadoop-examples -1.1.2.jar wordcount input output

 

执行完成后,我们可以通过hadoop fs –ls 查看生成了什么

 

具体查看:

hadoop fs –ls output

hadoop fs -cat output/p*

 

小提醒:当需要删除inputoutput上面的内容时,可以通过hadoop fs –rmr的方式进行删除,如还需了解更多参数命令,可以直接hadoop一下,进行查看

 

查看WEB管理界面
访问主节点IP+50030端口:http://192.168.2.11:50030/:可以查看 JobTracker 的运行状态

 

访问主节点IP+50060端口:http://192.168.2.11:50060可以查看 TaskTracker 的运行状态

 

访问主节点IP+50070端口:http://192.168.2.11:50070,可以查看 NameNode 以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及 log 等,在这里我们可以通过Browse the filesystem进行刚才inputoutput的查看

 

分享到:
评论

相关推荐

    hadoop 分布式集群搭建

    Hadoop分布式集群搭建的知识点包括以下几个主要方面: 1. 环境准备与组件安装: - 首先,需要准备一个网络中各个节点之间能够通信的环境,确保集群中的每台计算机都能够通过SSH无密码登录,这对于集群中的各个服务...

    Hadoop分布式集群配置指南

    Hadoop分布式集群配置指南 Hadoop分布式集群配置是大数据处理的关键步骤之一,本指南将指导读者成功配置一个由5台计算机构成的Hadoop集群,并成功运行wordcount处理大型数据(大于50G)。 一、Hadoop集群架构简介 ...

    大数据之hadoop分布式集群初次启动.docx

    Hadoop分布式集群初次启动 本文档主要讲解了Hadoop分布式集群的初次启动过程,包括配置SSH免密登录、格式化HDFS、启动HDFS和YARN模块等步骤。 一、配置SSH免密登录 在Hadoop分布式集群中,需要配置集群中各个节点...

    大数据之hadoop分布式集群初次启动 (2).docx

    大数据之 Hadoop 分布式集群初次启动 本文将指导读者如何从头开始启动 Hadoop 分布式集群,并对相关的知识点进行详细的解释。 1. SSH 免密登录 在 Hadoop 分布式集群中,需要配置集群中各个节点间的 SSH 免密登录...

    大数据之hadoop分布式集群初次启动 (2).pdf

    Hadoop 分布式集群初次启动 Hadoop 分布式集群初次启动是大数据处理中的重要步骤,本文将指导用户如何在虚拟机中搭建 Hadoop 分布式集群,并对其进行初次启动。 1. SSH 免密登录 在 Hadoop 分布式集群中,各个...

    大数据之hadoop分布式集群初次启动.pdf

    Hadoop 分布式集群初次启动 Hadoop 分布式集群初次启动是大数据处理的重要步骤,涉及到 Hadoop 集群的搭建、ssh 免密登录、HDFS 格式化、Hadoop 集群启动等多个知识点。本文将详细介绍 Hadoop 分布式集群初次启动的...

    DFS命令行工具操作Hadoop分布式集群初体验

    2. Hadoop分布式集群:Hadoop分布式集群是指运行Hadoop平台的多个计算机节点组成的集群,这些节点协同工作,共同处理大量数据。Hadoop的核心组件包括HDFS(用于存储数据)和MapReduce(用于处理数据)。 3. Hadoop...

    大数据之hadoop分布式集群参数配置.docx

    Hadoop分布式集群参数配置 Hadoop分布式集群参数配置是大数据处理中不可或缺的一部分。本文将详细介绍Hadoop分布式集群参数配置的过程,包括master节点和slave节点的配置。 一、Hadoop分布式集群参数配置概述 ...

    基于Hadoop分布式集群搭建方法研究.pdf

    基于Hadoop分布式集群搭建方法研究的知识点包含以下几个方面: 1. Hadoop简介与大数据分布式基础架构: Hadoop是一个开源的大数据平台,由Apache软件基金会支持。它包括HDFS(Hadoop分布式文件系统)和MapReduce...

    hadoop 分布式集群大数据云计算源码视频教程.zip

    《Hadoop分布式集群大数据云计算源码视频教程》是一套深入解析Hadoop技术栈及大数据云计算实践的综合学习资源。该教程旨在帮助学习者理解和掌握Hadoop在分布式集群环境中的核心概念、工作原理以及实际应用,从而提升...

    Hadoop分布式集群搭建所需安装包资源

    在构建Hadoop分布式集群的过程中,有两个关键的组件是必不可少的:Java开发工具包(JDK)和Hadoop发行版。本资源包包含了这两个组件的安装文件,分别是`jdk-8u171-linux-x64.tar.gz`和`hadoop-2.7.5.tar.gz`,它们...

    Hadoop分布式集群搭建.pdf

    《Hadoop分布式集群搭建》 在大数据处理领域,Hadoop是一个关键的开源框架,它提供了在分布式计算环境中存储和处理海量数据的能力。本教程将详细阐述如何在多台机器上搭建一个Hadoop分布式集群。 首先,搭建Hadoop...

    构建Hadoop分布式集群环境

    构建Hadoop分布式集群环境是一项涉及多个知识点的复杂任务,它要求系统管理员或大数据工程师具备对Hadoop架构、云计算平台和Linux操作系统深入的理解和实践经验。下面将详细介绍在构建Hadoop分布式集群时所需的知识...

    Hadoop分布式集群IP配置和VBox linux虚拟机网卡配置

    Hadoop分布式集群搭建过程中IP配置,包括单机伪分布式和多台机器集群搭建。同时包括VBox linux虚拟机网卡配置

    Hadoop 分布式集群搭建.md

    Hadoop 分布式集群搭建.md

    Hadoop分布式集群容错验证

    Hadoop分布式集群容错验证

    (85条消息) Hadoop分布式集群搭建(完整版)_卡布达暴龙兽的博客-CSDN博客_hadoop分布式集群搭建.htm

    (85条消息) Hadoop分布式集群搭建(完整版)_卡布达暴龙兽的博客-CSDN博客_hadoop分布式集群搭建.htm

Global site tag (gtag.js) - Google Analytics