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

  fs.default.name

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

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

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

$ vi hdfs-site.xml

  hadoop.tmp.dir          // 临时文件目录

  /usr/local/hadoop/tmp

  A base for other temporary directories.

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

/usr/local/hadoop/filesystem/name

  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.

  dfs.data.dir            //DFS 文件数据

  /usr/local/hadoop/filesystem/data

  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.

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

  2

  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.

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

$ vi mapred-site.xml

mapred.job.tracker

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

  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.

五、部署 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 的工作状态。

 

你可能感兴趣的:(网格技术)