Hadoop3.0: 单机(伪集群)配置

目的

本文主要讲解的是在单节点下的Hadoop的环境安装和配置,以帮助您可以快速的使用Hadoop的MapReduce和HDFS

前提条件

环境支持

GNU/Linux现已支持开发和生产环境. Hadoop可以在 GNU/Linux集群上支持2000节点。
Windows现也支持但是没有Linux那么先进.关于如何在Windows上配置Hadoop ,请查看链接 wiki page 

必需的软件

Linux下需要的软件包括:
1.   Java™必须已经安装好.与Hadoop版本对应的JDK版本请参考 HadoopJavaVersions.
2.   如果使用Hadoop脚本对Hadoop的守护进程进行远程管理。必须安装ssh并且启动sshd服务。

软件安装

如果您的集群没有安装对应的软件,你需要安装它们。
以Ubuntu Linu为例: 
$ sudo apt-get install ssh
$ sudo apt-get install pdsh

Hadoop下载

获取最新的Hadoop,您可以从Apache的下载镜像中进行选择下载 Apache Download Mirrors.

搭建Hadoop Cluster

准备工作

解压Hadoop压缩包。然后进入目录。编辑etc/hadoop/hadoop-env.sh的下列参数:
  # set to the root of your Java installation
# set to the root of your Java installation
  export JAVA_HOME=/usr/java/latest

保存退出后,执行以下命令:

$ bin/hadoop

它将显示hadoop脚本可用的文件。
现在您可以开始从下列三种支持的Hadoop cluster模式中选择一种来进行环境搭建了:

  • 本地(单机)模式
  • 伪分布式模式
  • 分布式模式

单机设置

默认情况下,Hadoop的配置是非分布式模式,就像一个Java进程一样,它有利于进行debug调试。
您可以复制下个例子中的代码到解压路径下进行执行根据指定的表达式,匹配查找每次输入的结果,并且对其进行输出到output路径下。。
  
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*

伪分布式设置

Hadoop也是支持在单节点上配置伪分布式模式的。在这样的情况下,Hadoop的守护进程都是单独的java进程。

配置

配置如下:
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密码

检查现有ssh下的localhost是否为不需要密码的:
 $ ssh localhost
您也可以配置ssh下localhost免密码模式。执行下列命令:
 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 $ chmod 0600 ~/.ssh/authorized_keys

执行

下列一系列的指令是配置配置MapReduce job的。如果您想在YARN上执行job。可以查看YARN单节点配置。
1.   格式化HDFS文件系统:
 $ bin/hdfs namenode -format
2.   启动NameNode守护进程和DataNode守护进程: 
 $ sbin/start-dfs.sh
3.    hadoop守护进程日志输出到$HADOOP_LOG_DIR 路径 (默认为 $HADOOP_HOME/logs)。
4.   通过浏览器访问NameNode的web接口,默认地址为:http://localhost:9870/。
5.   创建需执行MapReduce jobs的HDFS目录:
 $ bin/hdfs dfs -mkdir input
 $ bin/hdfs dfs -put etc/hadoop/*.xml input
6.   复制input文件到分布式文件系统:
 $ bin/hdfs dfs -mkdir input
 $ bin/hdfs dfs -put etc/hadoop/*.xml input
7.   运行提供的示例程序:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+'
8.   检查输出文件:从分布式文件系统复制output文件到本地然后进行检查:
$ bin/hdfs dfs -get output output
$ cat output/*
    或
    直接在分布式文件系统中进行查看:
$ bin/hdfs dfs -cat output/*
9.   当您已经完成上面所有的工作的时候,您可以停止守护进程了:
$ sbin/stop-dfs.sh

YARN上运行单点

您可以在单点模式的YARN上运行MapReduce job。您只需要增加ResourceManager守护进程和NodeManager守护进程设置就可以了。
其实现方式通过下面1~4步骤进行配置:
1.   配置参数如下:
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>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>
2.   启动 ResourceManager守护进程和NodeManager守护进程:
$ sbin/start-yarn.sh
3.   通过浏览器访问ResourceManager的web接口,默认地址为: http://localhost:8088/
4.   运行一个 MapReduce job.
5.   当您已经完成上面所有的工作的时候,您可以停止守护进程了:
 $ sbin/stop-yarn.sh

 分布式集群配置

关于分布式集群配置,请查看 集群配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值