Appache hadoop安装(hadoop:the definitive guide 附录A)

    在单机上安装Hadoop是非常简单的。(在集群上安装,参见第十章)

    在这个附录中,我们将介绍如何使用Apache软件基金会发布的压缩包来

安装Hadoop Common,HDFS,MapReduce和YARN。其它项目的安装包含在这本

书相关章节的开头部分。

    下面的说明适用于基于UNIX的系统,包括MAC OS X(用来开发而不是发布产品

的平台)。


前提

    确保你安装了一个相配的JAVA版本。你可以查看Hapoop wiki来找到你需要

的是哪个版本。使用下面的命令确认JAVA是否正确安装

% java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

安装

    先从确定你希望以哪个用户运行Hadoop开始。对于试运行hadoop或是开发

hadoop程序,你可以在一个单机上用你自己的账户来运行hadoop。

    从Apache hadoop下载下载一个稳定的发布版本,它是一个压缩包,把它解压

到你的文件系统

% tar xzf hadoop-x.y.z.tar.gz
    在你可以运行HADOOP之前,你需要告诉它如何在定位你系统中的JAVA。如果你有一个

JAVA_HOME环境变量指向了一个相配的JAVA安装,它会被使用,并且你不需要再配置(它

经常被配置在启动脚本中,比如~/.bash_profile或者~/.bashrc) 。不然,你需要修改conf/hadoop-env.sh

文件并声明JAVA_HOME变量。比如,在我的Mac上,我修改了这一行以指向我安装的JAVA:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

    创建一个环境变量指向HADOOP安装目录是非常方便的(方便起见,用HADOOP_HOME),

同时把HADOOP可执行文件目录添加到PATH中。例如:

% export HADOOP_HOME=~/sw/hadoop-x.y.z
% export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
   注意,sbin目录包含运行HADOOP后台程序的脚本,所以如果你要在你的机器上运行后台程序的

话它必须包含的PATH中。

    输入以下命令来确定HADOOP是否运行:

% hadoop version
Hadoop 2.5.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 2e18d179e4a8065
b6a9f29cf2de9451891265cce
Compiled by jenkins on 2014-09-05T23:11Z
Compiled with protoc 2.5.0
From source with checksum 6424fcab95bfff8337780a181ad7c78
This command was run using /Users/tom/sw/hadoop-2.5.1/share/hadoop/common/hadoop
-common-2.5.1.jar

配置

    HADOOP的每一个组件都是通过XML来配置的。Common的属性配置在core-site.xml中,

关于HDFS,MAPREDUCE,YARN的配置文件在与其名称对应的文件中:hdfs-site.xml,mapred-site.xml,

yarn-site.xml。所有这些文件都在etc/hadoop子目录中。

    HADOOP可以以下三各方式运行:

    标准(本地)模式

        没有后台程序,所有程序运行在同一个JVM中。标准模式适合在开发时运行MAPREDUCE,因为

它调试简单。

    伪分布式模式

        HADOOP后台程序在本机运行,模拟运行小规模的集群。

    分布式模式

        HADOOP后台程序运行在集群上。本书的第10章描述了它的安装。

    运行HADOOP,你需要做两件事情:设置合适的属性;开启HADOOP后台程序。表A-1列出了对应各个

模式需要设置的属性的最小集合。在标准模式中,需要用到本地文件系统和本地MAPREDUCE。在分布式

模式中,需要启动HDFS和YARN后台程序,MAPREDUCE使用YARN来配置。


标准模式

    在标准模式中,不需要额外的操作,因为它默认的属性已经设置,并且没有后台程序需要运行。

伪分布式模式

    在伪分布式模式中,需要创建配置文件并写入如下内容,并把它放在etc/hadoop目录中。或者,

你可以拷贝etc/hadoop目录到别的地方,并且把*-site.xml的配置文件放在那里。这种方式的优点是

把配置与安装文件分离。如果你这么做了,你需要设置HADOOP_CONF_DIR环境变量,并指向你

拷贝文件的位置,或者在你运行后台程序时加上--config选项:

<?xml version="1.0"?>
<!-- core-site.xml -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- hdfs-site.xml -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- mapred-site.xml -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<?xml version="1.0"?>
<!-- yarn-site.xml -->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置SSH

    在伪分布式模式中,我们须要开启后台程序,为了运行提供的脚本,我们需要安装SSH。HADOOP并

不区分伪分布式模式和分布式模式,它只是使用SSH登录集群(附属文件定义)中的各个主机并开启后台

进程。伪分布式模式只不是是分布式模式的一个特殊情况,它的主机(单一的)是localhost,所以我们须要

确保我们可以通过SSH登录到localhost,而且不需要输入密码。

    首先,确认SSH已经安装并且服务已经运行。在UBUNTU系统,比如,可以通过下面这条命令来安装:

% sudo apt-get install ssh
    然后,为了确保不需要密码登录,使用空密码创建一个新的SSH密钥。

% ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
% cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    如果你要运行ssh-agent,你需要运行ssh-add。

    测试是否可以连接:

% ssh localhost
    如果成功的话,你不须要输入密码。

格式化HDFS文件系统

    在HDFS可以被使用之前,文件系统需要被格式化。可以运行如下命令来做这件事情:

% hdfs namenode -format

开启和停止后台进程

    输入以下命令来开启HDFS,YARN以及MAPREDUCE等后台进程:

% start-dfs.sh
% start-yarn.sh
% mr-jobhistory-daemon.sh start historyserver
    如果你把配置文件人默认的conf目录中移出,需要在运行之前添加HADOOP_CONF_DIR

环境变量,或者在开启后台进程时附加--config选项,它需要配置文件的绝对路径:

% start-dfs.sh --config path-to-config-directory
% start-yarn.sh --config path-to-config-directory
% mr-jobhistory-daemon.sh --config path-to-config-directory
start historyserver

    在你的本地机器上,以下的后台进程会运行:namenode,secondary namenode,datanode(HDFS),

resource manager,node manager(YARN),以及history server(MapReduce).你可以通过查看日志文件

来检查后台进程是否启动成功(在HADOOP的安装目录),或者通过查看WEB页面,http://localhost:50070/

是namenode,http://localhost:8088是resource manager,http://localhost:19888/是history server。你也

可以通过JAVA的JPS命令来查看程序是否正在运行。

    停止后台进程可以通过以下命令:

% mr-jobhistory-daemon.sh stop historyserver
% stop-yarn.sh
% stop-dfs.sh
创建一个用户目录

    为你自己创建一个主目录,使用如下命令:

% hadoop fs -mkdir -p /user/$USER

分布式模式

    创建一个集群需要许多额外的事项,在本书的第10章中有介绍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值