《Hadoop MapReduce实战手册》一1.8 在分布式集群环境中设置Hadoop

1.8 在分布式集群环境中设置Hadoop

Hadoop MapReduce实战手册
Hadoop的部署包括一套HDFS、一个JobTracker和多个TaskTracker。在1.5节中,我们讨论了HDFS的部署。为了设置Hadoop,我们需要配置JobTracker和TaskTracker,然后在HADOOP_
HOME/conf/slaves文件中指定TaskTracker列表。当我们启动JobTracker时,它会启动相应的TaskTracker节点列表。图1-5描述了一套完整的Hadoop部署。

准备工作
无论使用的是单台机器还是多台机器,本节都适用。如果你用的是多台机器,则应该选择一台机器作为主节点,用于运行HDFS NameNode和JobTracker进程。如果你使用的是单台机器,则可以用它既作主节点,又作从节点。

  1. 在所有用于安装Hadoop集群的机器上安装Java。
  2. 如果你使用的是Windows机器,则需要先在每一台机器上都安装Cygwin和SSH服务。链接http://pigtail.net/LRP/printsrv/cygwin-sshd.html提供了详细的说明。

操作步骤
让我们通过设置JobTracker和TaskTracker来设置Hadoop。

  1. 在每一台机器上,创建一个目录,用于存放Hadoop数据。我们把这个目录称作HADOOP_
    DATA_DIR。然后创建三个子目录,HADOOP_DATA_DIR/data、HADOOP_DATA_DIR/local和
    HADOOP_DATA_DIR/name。
  2. 在所有机器上设置SSH密钥,这样我们就可以从主节点登录到所有的节点。1.5节详细介绍了SSH设置。
  3. 使用>tar zxvf hadoop-1.x.x.tar.gz命令把Hadoop发行包解压缩到所有机器的相同位置。你可以使用任何Hadoop的1.0分支发行包。
  4. 在所有机器上,编辑HADOOP_HOME/conf/hadoop-env.sh,删除文件中JAVA_HOME行的注释,并将其指向你的本地Java安装目录。例如,如果Java安装在/opt/jdk1.6下,那么就要将JAVA_HOME行改为export JAVA_HOME=/opt/jdk1.6。
  5. 将主节点(运行JobTracker和NameNode的机器)的IP地址作为一行放置在HADOOP_HOME/conf/
    master中。如果你正在进行单节点部署,则保留当前值,填写为localhost。
209.126.198.72

  1. 然后将所有从节点的IP地址写入HADOOP_HOME/conf/slaves文件,每行一个独立的IP地址。
209.126.198.72
209.126.198.71

  1. 在每个节点的HADOOP_HOME/conf目录里面,将以下内容添加到core-site.xml、hdfs-
    site.xml和mapred-site.xml中。在添加这些配置之前,要先将MASTER_NODE字符串替换为主节点的IP地址,HADOOP_DATA_DIR替换为第一步创建的目录。

将NameNode的URL添加到HADOOP_HOME/conf/core-site.xml中。

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

在HADOOP_HOME/conf/hdfs-site.xml内添加元数据(名称空间)和本地数据存储的位置1:

<configuration>
<property>
<name>dfs.name.dir</name>
<value>HADOOP_DATA_DIR/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>HADOOP_DATA_DIR/data</value>
</property>
</configuration>

MapReduce本地目录是Hadoop用来存储所用临时文件的位置。在HADOOP_HOME/conf/mapred-site.xml中添加JobTracker的位置。Hadoop将用这个地址来管理作业。最后一个属性设置每个节点最大的map任务数,该值通常与(CPU)核数相同。

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>MASTER_NODE:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>HADOOP_DATA_DIR/local</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>8</value>
</property>
</configuration>
  1. 要格式化新的HDFS文件系统,需要在Hadoop的NameNode(主节点)上运行以下命令。如果在前一节中已经完成了HDFS安装,可以跳过这一步。
>bin/hadoopnamenode –format
...
/Users/srinath/playground/hadoop-book/hadoop-temp/dfs/name has
been successfully formatted.
12/04/09 08:44:51 INFO namenode.NameNode: SHUTDOWN_MSG:
/**
SHUTDOWN_MSG: Shutting down NameNode at Srinath-s-MacBook-Pro.
local/172.16.91.1
**/

  1. 在主节点上,将工作目录跳转到HADOOP_HOME,并运行以下命令:
>bin/start-dfs.sh

startingnamenode, logging to /root/hadoop-setup-srinath/
hadoop-1.0.0/libexec/../logs/hadoop-root-namenode-node7.beta.out

209.126.198.72: starting datanode, logging to /root/hadoop-setupsrinath/
hadoop-1.0.0/libexec/../logs/hadoop-root-datanode-node7.beta.out

209.126.198.71: starting datanode, logging to /root/hadoop-setupsrinath/
hadoop-1.0.0/libexec/../logs/hadoop-root-datanode-node6.beta.out

209.126.198.72: starting secondarynamenode, logging to /root/hadoop-
setup-srinath/hadoop-1.0.0/libexec/../logs/hadoop-root-secondarynamenode-node7.beta.out

>bin/start-mapred.sh

startingjobtracker, logging to /root/hadoop-setup-srinath/hadoop-1.0.0/
libexec/../logs/hadoop-root-jobtracker-node7.beta.out

209.126.198.72: starting tasktracker, logging to /root/hadoop-setup-
srinath/hadoop-1.0.0/libexec/../logs/hadoop-roottasktracker-node7.beta.out

209.126.198.71: starting tasktracker, logging to /root/hadoop-setup-srinath/
hadoop-1.0.0/libexec/../logs/hadoop-roottasktracker-node6.beta.out

  1. 在主节点和从节点上,通过ps | grep java命令(如果你使用的是Linux)或通过任务管理器(如果你使用的是Windows)验证部署后的进程列表是否已经正常启动。主节点会列出四个进程—NameNode、DataNode、JobTracker和TaskTracker,从节点有DataNode和TaskTracker。
  2. 浏览NameNode和JobTracker的Web监控页面。
    NameNode:http://MASTER_NODE:50070/。
    JobTracker:http://MASTER_NODE:50030/。
    
  3. 你可以在${HADOOP_HOME}/logs下找到日志文件。
  4. 通过使用HDFS命令行列出文件的方式,确认HDFS安装正确。
bin/hadoopdfs -ls /

Found 2 items
drwxr-xr-x - srinathsupergroup 0 2012-04-09 08:47 /Users
drwxr-xr-x - srinathsupergroup 0 2012-04-09 08:47 /tmp

工作原理
正如本章简介中所描述的,Hadoop的安装包括HDFS节点、JobTracker节点和工作节点。当我们启动NameNode时,它通过HADOOP_HOME/slaves文件查找DataNode配置,并在启动时通过SSH在远程服务器上启动DataNode。同样,当我们启动JobTracker时,它通过HADOOP_HOME/slaves文件找到TaskTracker配置,进而启动TaskTracker。

更多参考在下一节中,我们将讨论如何使用分布式环境执行前面提及的WordCount程序。之后的几节将讨论如何使用MapReduce的监控UI监控分布式Hadoop的安装。

时间: 2024-08-04 12:30:12

《Hadoop MapReduce实战手册》一1.8 在分布式集群环境中设置Hadoop的相关文章

《Hadoop MapReduce实战手册》一1.9 在分布式集群环境中运行WordCount程序

1.9 在分布式集群环境中运行WordCount程序 Hadoop MapReduce实战手册本节将描述如何在分布式集群中运行作业. 准备工作启动Hadoop集群. 操作步骤现在让我们在分布式的Hadoop环境中运行WordCount示例程序. 把你的Hadoop发行版目录的README.txt文件复制到HDFS文件系统的/data/input1位置,作为我们前一节中编写的WordCountMapReduce示例的输入数据. >bin/hadoopdfs -mkdir /data/ >bin/

《Hadoop MapReduce实战手册》一1.2 在你的机器上安装Hadoop

准备工作从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载并安装Java 1.6或者更高版本. 操作步骤现在让我们来完成Hadoop的安装. 从http://hadoop.apache.org/下载最新的Hadoop 1.0分支发行版. 使用下列命令解压Hadoop发行版.必须将文件名中的x.x换成你实际下载的版本号.如果你使用的是Windows,可以使用自己喜欢的解压缩工具(如WinZip或者WinRAR)

《Hadoop MapReduce实战手册》一导读

前 言 Hadoop MapReduce实战手册 本书目标是帮助读者学会处理大型的复杂数据集.本书虽从简单的例子开始,但仍然可以看到深入的内容.这是一本简单的一站式指南,传授如何完成复杂的事情.它以一种简单而直接的方式呈现了90个攻略,给出了一步步的指导和真实环境的应用示例. 本产品包括在Apache软件基金会(http://www.apache.org/)开发的软件. 本书涵盖的内容 第1章解释了如何以单点模式以及集群模式安装和运行Hadoop. 第2章介绍了一套高级的HDFS操作,在处理大规

《Hadoop MapReduce实战手册》一第1章 搭建Hadoop并在集群中运行

第1章 搭建Hadoop并在集群中运行 Hadoop MapReduce实战手册本章将学习以下内容: 在你的机器上安装Hadoop 写WordCountMapReduce示例程序,打包并使用独立的Hadoop运行它 给WordCountMapReduce程序增加combiner步骤 安装HDFS 使用HDFS监控UI HDFS的基本命令行文件操作 在分布式集群环境中设置Hadoop 在分布式集群环境中运行WordCount程序 使用MapReduce监控UI

《Hadoop MapReduce实战手册》一2.10 挂载HDFS(Fuse-DFS)

2.10 挂载HDFS(Fuse-DFS) Hadoop MapReduce实战手册 Fuse-DFS项目使我们能够在Linux上挂载HDFS(也支持许多其他版本的Unix)作为标准的文件系统.这样做,可以允许任何程序或用户使用类似于传统的文件系统的方式访问HDFS和与HDFS交互. 准备工作 系统中必须安装以下软件: Apache Ant(http://ant.apache.org/): Fuse和fuse开发包.Fuse开发文件可以通过Redhat/Fedora安装fuse-devel RP

《Hadoop MapReduce实战手册》一2.11 在HDFS中合并文件

2.11 在HDFS中合并文件 Hadoop MapReduce实战手册本节将传授如何合并HDFS中的若干文件,以创建一个单独的文件.对于获取有多个输出部分结果的reducer的MapReduce作业的计算结果来说,这招非常有用. 操作步骤HDFS的getMerge命令可以将HDFS中给定路径下的文件,复制到本地文件系统的单个合并后的文件中. >bin/hadoopfs -getmerge /user/foo/demofiles merged.txt 工作原理getmerge命令的语法如下: h

《Hadoop MapReduce实战手册》一1.7 HDFS的基本命令行文件操作

1.7 HDFS的基本命令行文件操作 Hadoop MapReduce实战手册HDFS是一个分布式的文件系统,就像一个Unix文件系统一样,它允许用户使用shell命令操纵文件系统.本节将说明如何使用HDFS的基本命令行来执行这些操作. 值得注意的是,每一条HDFS命令都有一个与之一一对应的Unix命令.例如,下面的命令: >hadoopdfs –cat /data/foo.txt 该命令用于读取/data/foo.txt文件,并把它打印到屏幕上,就像Unix系统的cat命令一样. 准备工作通过

《Hadoop MapReduce实战手册》一2.2 HDFS基准测试

2.2 HDFS基准测试 Hadoop MapReduce实战手册运行基准测试程序,可以很好地验证HDFS集群是否已如预期般正确设置并执行.DFSIO是一个Hadoop自带的基准测试,可以用来分析一个HDFS集群的I/O性能.该部分展示了如何使用DFSIO来对HDFS集群的读取和写入性能进行基准测试. 准备工作在运行这些基准程序之前,必须安装和部署HDFS和MapReduce.导出HADOOP_HOME环境变量,将其指向Hadoop安装根目录: >export HADOOP_HOME = /..

《Hadoop MapReduce实战手册》一2.7 设置文件冗余因子

2.7 设置文件冗余因子 Hadoop MapReduce实战手册HDFS跨集群存储文件时,会把文件切分成粗粒度的.大小固定的块.出于容错的目的,这些粗粒度的数据块会被复制到不同的DataNode中.数据块的冗余有助于增加数据本地化MapReduce计算的能力,同时也可以增加总的数据访问带宽.减少冗余因子则有助于节省HDFS上的存储空间. HDFS冗余因子(HDFS replication factor)是文件级属性,可以基于每个文件进行单独配置.本节将展示如何通过改变HDFS部署的默认冗余因子