Hadoop的安装与配置

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_rsa id_rsa.pub 文件。

$cp id_rsa.pub authorized_keys

拷贝一份 id_rsa.pub authorized_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-m conf 目录下的 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.xml hdfs-site.xml mapred-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 守护。包括 Jobtracker Tasktrack

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

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

* 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 即可以查看当前的 job Task 的工作状态。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值