我爱编程

Hadoop的单机和集群部署

2016-02-27  本文已影响522人  wangmin

hadoop单机部署步骤:

Required software

download the latest version

Local(Standalone) Mode

hadoop可以直接独自运行在一个JVM程序里面。无需运行任何守护进程,所有程序都在同一个JVM上。在独立模式下测试和调试MapReduce程序很方便,因此该模式在开发阶段比较合适。在独立模式(本地模式)下将使用本地文件系统和本地MapReduce作业运行器。

Pseudo-Distributed Mode

可以使用伪分布式的方式运行hadoop,也就是所有的守护进程都是运行在一台机器上。

配置文件如下:

etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

现在需要使ssh localhost连接本地无需密码:

ssh localhost

如果执行这条命令需要密码,则需要执行如下命令:

  $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

以下是一个例子,没有运行在yarn上。

在单个节点上运行YARN

首先需要配置:etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置: etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

这个时候可以启动yarn了。

sbin/start-yarn.sh
sbin/stop-yarn.sh
sbin/stop-all.sh 结束所有的进程

hadoop的集群部署步骤
在集群的部署和伪分布式的部署不太一样,具体操作如下:

首先本地环境是两台物理机,ip地址分别为:

选取51作为master, 52作为slave

hadoop的版本这次选取的是: hadoop-2.5.1

准备工作

在安装之前需要分配一个hadoop用户专门用于hadoop的操作,同时在每台机器上安装JAVA(推荐使用oracle的JDK)和SSH。

通过修改hostname 和 hosts文件,这样我们可以通过访问主机名就能访问机器了,比如可以使用:

ping master 或者 ping slave 都能够ping通。

注意:修改hostname和修改hosts文件每台机器上都要做,修改hostname是为了将每天机器的主机名改成该机器相应的名字,比如将52改成slave。修改hosts文件,每天机器都需要做相同的操作,比如:在51上要做: 10.249.150.51 master && 10.249.150.52 slave,那在52上也要做相同的操作,这样才能在每台机器上ping通所有机器。

设置hadoop的配置文件

slave1
slave2
....

* 修改core-site.xml文件,在core-site.xml文件中配置成如下:

<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>

* 修改hdfs-site.xml,如下所示:

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

* 修改 mapred-site.xml文件,这个文件需要从模板中复制一份。

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

* 修改yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

* 到此,hadoop的基本配置完成。接下来需要将这个配置的hadoop文件拷贝到所有slave机器上。**注意:slave机器上的hadoop路径要和master上的hadoop路径一直。**

上诉步骤完成后就可以在master节点上启动hadoop了,使用的命令如下:

bin/hdfs namenode -format // 这个是在hadoop第一次使用的时候执行,以后就不需要执行。
sbin/start-dfs.sh // 启动hdfs
sbin/start-yarn.sh // 启动yarn

启动hdfs和启动yarn可以合并到一个命令:
sbin/start-all.sh
启动完成后可以在master节点上使用: jps命令查看hadoop启动的进程。在slave节点上使用 jps可以查看slave节点上启动的hadoop进程。

成功启动后(一般在启动的终端上没有出现warning信息一般为启动成功),可以使用http://master:50070/访问 DataNode和NameNode

* 在集群上执行MapReduce例子,执行的例子可以参考伪分布式中的例子。在执行的过程中可以访问: http://master:8088/cluster来查看任务的执行情况。
上一篇 下一篇

猜你喜欢

热点阅读