现在的位置: 首页 > 综合 > 正文

部署Hadoop_单机部署

2013年08月17日 ⁄ 综合 ⁄ 共 2494字 ⁄ 字号 评论关闭

部署Hadoop

1.1 Hadoop单机部署

首先我们从在单机上完成Hadoop的安装与使用以便可以对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等。

1.1.1先决条件

1 支持平台

1)GNU/Linux是产品开发和运行的平台。 Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证。

2)Win32平台是作为开发平台支持的。由于分布式操作尚未在Win32平台上充分测试,所以还不作为一个生产平台被支持。

2 所需软件

Linux和Windows所需软件包括:

1) JavaTM1.5.x以上版本必须安装,建议选择Sun公司发行的Java版本。

2) ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。

Windows下的附加软件需求

1)Cygwin - 提供上述软件之外的shell支持。

3 安装软件

如果你的集群尚未安装所需软件,你得首先安装它们。这里以ubuntu linux 为例:

$ sudo apt-get install ssh
$ sudo apt-get install rsync

在Windows平台上,如果安装cygwin时未安装全部所需软件,则需启动cyqwin安装管理器安装如下软件包:

  • openssh - Net

i.下载Hadoop稳定版

为了获取Hadoop的发行版,从Apache的某个镜像服务器上下载最近的
稳定发行版
,本文以Hadoop0.18.3为例。

ii. 运行Hadoop集群的准备工作

解压所下载的Hadoop的发行版。编辑 conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。

尝试如下命令:
$ bin/hadoop
将会显示hadoop 脚本的使用文档

iii.单机模式的操作方法

默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。这对调试非常有帮助。下面的实例将已解压的 conf 目录拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的output目录。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/

iv. 伪分布模式的操作方法

Hadoop可以在单节点上以所谓的伪分布式模式运行,此时每一个Hadoop守护进程都作为一个独立的Java进程运行。

1 配置

).修改配置文件conf/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://localhost:9000</value>
 
        </property>
 
</configuration>
 
修改conf/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>dfs.replication</name>
 
                   <value>1</value>
 
         </property>
 
</configuration>
 
修改conf/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>localhost:9001</value>
 
        </property>
 
</configuration>

 

2 免密码ssh设置

现在确认能否不输入口令就用ssh登录localhost:
$ ssh localhost

如果不输入口令就无法用ssh登陆localhost,执行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

3 执行

格式化一个新的分布式文件系统:
$ bin/hadoop namenode -format

启动Hadoop守护进程:
$ bin/start-all.sh

Hadoop守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).

浏览NameNode和JobTracker的网络接口,它们的地址默认为:

将输入文件拷贝到分布式文件系统:
$ bin/hadoop fs -put conf input

运行发行版提供的示例程序:
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'

查看输出文件:

将输出文件从分布式文件系统拷贝到本地文件系统查看:
$ bin/hadoop fs -get output output
$ cat output/*

或者

在分布式文件系统上查看输出文件:
$ bin/hadoop fs -cat output/*

完成全部操作后,停止守护进程:
$ bin/stop-all.sh

抱歉!评论已关闭.