Hadoop的安装与配置

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if !mso]> <object classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui> </object> <style> st1/:*{behavior:url(#ieooui) } </style> <![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

Hadoop 安装与配置

本文主要介绍在 Ubuntu 环境下 Hadoop0.20.2 的安装及配置:

步聚一、机器分配及用途

hdfs-m--------------172.16.11.197 (Master--NameNode)

hdfs-s1-------------172.16.11.149 (Slave1--DataNode)

hdfs-s2-------------172.16.11.97 (Slave2--DataNode)

步聚二、 IP 地址及别名配置

为了能够使用别名来访问服务器,需要在 /etc/hosts 文件中进行 IP 地址及别名对应关系的配置。

在主服务器上的 /etc/hosts 文件中进行的配置如下:

$ vi /etc/hosts

172.16.11.197 hdfs-m

172.16.11.149 hdfs-s1

172.16.11.97 hdfs-s2

在从服务器上的 /etc/hosts 文件中的配置如下(以 hdfs-s1 为例, hdfs-s2 同理):

$ vi /etc/hosts

172.16.11.197 hdfs-m

172.16.11.149 hdfs-s1

在完成上述配置服务器的配置后,在 hdfs-m 上进行 ping hdfs-s1 来验证别名与 IP 地址是否已经建立起了对应关系。如果能够拼通则表明配置成功。

步骤三、 ssh 配置

hdfs-m 上进行如下操作:

$ ssh-keygen -t rsa

root 用户执行时,会在 /root/.ssh 目录中生成 id_rsaid_rsa.pub 文件。

$cp id_rsa.pub authorized_keys

拷贝一份 id_rsa.pubauthorized_keys

hdfs-s1/hdfs-s2 上进行如下操作:

$ cd /root

$mkdir .ssh

创建 .ssh 目录,用于存放公钥信息。

创建完成之后,在 hdfs-m 上进行如下操作 , 操作目录 :/root/.ssh/

$scp authorized_keys hdfs-s1:/root/.ssh/

authorized_keys 文件通过远程 ssh 的方式拷贝至 hdfs-s1 机器中的 /root/.ssh/ 目录下。

在完成之后,在 hdfs-m 上通过如下命令进行测试,以验证是否已经成功配置了 ssh 环境。

$ ssh hdfs-s1

$ ifconfig

在运行完上述命令后,即可以看到 IP 地址已经从 197 变为了 149 ,即已通过 SSH 登录 149 机器。

步骤四、安装 Hadoop

4.1 Hadoop 环境变量

下载 Hadoop0.20.2.tar.gz 包,并将其解压至 hdfs-m 机器上的 /usr/local/hadoop 目录下。

修改 hdfs-mconf 目录下的 hadoop-env.sh ,并在其中配置 hadoop 的环境变量。

export JAVA_HOME=/usr/lib/jvm/java-6-sun

export HADOOP_HOME=/usr/local/hadoop

conf 目录下打开 slaves 文件,在其中添加有几个数据结点,本文的配置如下所示:

$vi slaves

hdfs-s1

hdfs-s2

conf 目录下打开 masters 文件,在其中添加 namenode 结点,本文的配置如下所示:

$vi masters

hdfs-m

在完成上述配置后,即已经完成了架构的部署。即有一台 master 及多台 slaves

4.2 Hadoop 配置文件

Hadoop 安装的 conf 目录下,需要修改以下三个文件,即 core-site.xmlhdfs-site.xmlmapred-site.xml

conf 目录下配置 core-site.xml 文件:

$ vi core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://hdfs-m:9000</value> // 此处应该是 NameNode 的别名,一定要加 hdfs://

<description>The name of the default file system. Either the literal string "local" or a host:port for DFS.</description>

</property>

</configuration>

conf 目录下配置 hdfs-site.xml 文件:

$ vi hdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>hadoop.tmp.dir</name> // 临时文件目录

<value>/usr/local/hadoop/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<property>

<name>dfs.name.dir</name> //DFS 文件目录名字

<value>/usr/local/hadoop/filesystem/name</value>

<description>Determines where on the local filesystem the DFS name node should store the name table. If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy. </description>

</property>

<property>

<name>dfs.data.dir</name> //DFS 文件数据

<value>/usr/local/hadoop/filesystem/data</value>

<description>Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.</description>

</property>

<property>

<name>dfs.replication</name> //DFS 备份的文件数目为 2

<value>2</value>

<description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.</description>

</property>

</configuration>

conf 目录下配置 mapred-site.xml 文件:

$ vi mapred-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>hdfs-m:9001</value> // 此处应该填写 NameNode 的别名

<description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task.</description>

</property>

</configuration>

五、部署 Hadoop

前面讲的这么多 Hadoop 的环境变量和配置文件都是在 hdfs-m 这台机器上的,现在需要将 hadoop 部署到其他的机器上,保证目录结构一致。

$scp -r /usr/local/hadoop hdfs-s1:/usr/local/

$scp -r /usr/local/hadoop hdfs-s2:/usr/local/

至此,可以说, Hadoop 已经在各个机器上部署完毕了下面就让我们开始启动 Hadoop 吧。

六、格式化 Hadoop

启动之前,我们先要格式化 namenode ,先进入 /usr/local/hadoop 目录,执行下面的命令

$bin/hadoop namenode -format

10/10/18 00:12:48 INFO namenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG: host = ubuntu/127.0.1.1

STARTUP_MSG: args = [-format]

STARTUP_MSG: version = 0.20.2

STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010

************************************************************/

Re-format filesystem in /usr/local/hadoop/filesystem/name ? (Y or N) Y

10/10/18 00:12:53 INFO namenode.FSNamesystem: fsOwner=root,root,adm,dialout,fax,cdrom,tape,audio,dip,video,plugdev,fuse,lpadmin,netdev,admin,sambashare

10/10/18 00:12:53 INFO namenode.FSNamesystem: supergroup=supergroup

10/10/18 00:12:53 INFO namenode.FSNamesystem: isPermissionEnabled=true

10/10/18 00:12:53 INFO common.Storage: Image file of size 94 saved in 0 seconds.

10/10/18 00:12:53 INFO common.Storage: Storage directory /usr/local/hadoop/filesystem/name has been successfully formatted.

10/10/18 00:12:53 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1

************************************************************/

不出意外,应该会提示格式化成功。如果不成功,就去 hadoop/logs/ 目录下去查看日志文件 . 注意这里的交互式问题一定要输入大写的 Y

七、启动 Hadoop

下面就该正式启动 hadoop 啦,在 bin/ 下面有很多启动脚本,可以根据自己的需要来启动。

* start-all.sh 启动所有的 Hadoop 守护。包括 namenode, datanode, jobtracker, tasktrack

* stop-all.sh 停止所有的 Hadoop

* start-mapred.sh 启动 Map/Reduce 守护。包括 JobtrackerTasktrack

* stop-mapred.sh 停止 Map/Reduce 守护

* start-dfs.sh 启动 Hadoop DFS 守护 .NamenodeDatanode

* stop-dfs.sh 停止 DFS 守护

在格式化完成后,即可以启动 hadoop.

root@ubuntu:/usr/local/hadoop/bin# ./start-all.sh

starting namenode, logging to /usr/local/hadoop/logs/hadoop-root-namenode-ubuntu.out

hdfs-s1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-ubuntu.out

localhost: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-ubuntu.out

hdfs-s2: starting datanode, logging to /usr/local/hadoop/logs/hadoop-root-datanode-ubuntu.out

localhost: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-root-secondarynamenode-ubuntu.out

starting jobtracker, logging to /usr/local/hadoop/logs/hadoop-root-jobtracker-ubuntu.out

hdfs-s1: starting tasktracker, logging to /usr/local/hadoop/logs/hadoop-root-tasktracker-ubuntu.out

localhost: starting tasktracker, logging to /usr/local/hadoop/logs/hadoop-root-tasktracker-ubuntu.out

hdfs-s2: starting tasktracker, logging to /usr/local/hadoop/logs/hadoop-root-tasktracker-ubuntu.out

在成功启动后,在主服务器上通过如下地址进行访问:

http://hdfs-m:50070 即可以查看当前有几个数据结点,它们的状态如何。

http://hdfs-m:50030 即可以查看当前的 jobTask 的工作状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值