• 5. 伪分布式模式的操作方法
    • 配置
    • 免密码 ssh 设置
    • 执行
    • 运行在单节点的 YARN

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

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

    配置

    使用如下的:

    etc/hadoop/core-site.xml:

    1. <configuration>
    2. <property>
    3. <name>fs.defaultFS</name>
    4. <value>hdfs://localhost:9000</value>
    5. </property>
    6. </configuration>

    etc/hadoop/hdfs-site.xml:

    1. <configuration>
    2. <property>
    3. <name>dfs.replication</name>
    4. <value>1</value>
    5. </property>
    6. </configuration>

    免密码 ssh 设置

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

    1. $ ssh localhost

    如果不输入口令就无法用 ssh 登陆 localhost,执行下面的命令:

    1. $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    2. $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    3. $ chmod 0600 ~/.ssh/authorized_keys

    执行

    下面演示本地运行一个 MapReduce 的 job,以下是运行步骤。

    (1)格式化一个新的分布式文件系统:

    1. $ bin/hdfs namenode -format

    (2)启动 NameNode 守护进程和 DataNode 守护进程:

    1. $ sbin/start-dfs.sh

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

    (3)浏览 NameNode 的网络接口,它们的地址默认为:

    1. NameNode - http://localhost:50070/

    (4)创建 HDFS 目录来执行 MapReduce 的 job:

    1. $ bin/hdfs dfs -mkdir /user
    2. $ bin/hdfs dfs -mkdir /user/<username>

    (5)将输入文件拷贝到分布式文件系统:

    1. $ bin/hdfs dfs -put etc/hadoop input

    (6)运行发行版提供的示例程序:

    1. $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'

    (7)查看输出文件

    将输出文件从分布式文件系统拷贝到本地文件系统查看:

    1. $ bin/hdfs dfs -get output output
    2. $ cat output/*

    或者,在分布式文件系统上查看输出文件:

    1. $ bin/hdfs dfs -cat output/*

    (8)完成全部操作后,停止守护进程:

    1. $ sbin/stop-dfs.sh

    运行在单节点的 YARN

    您可以通过设置几个参数,另外运行 ResourceManager 的守护进程和 NodeManager 守护进程以伪分布式模式在 YARN 上运行 MapReduce job。

    以下是运行步骤。

    (1)配置

    etc/hadoop/mapred-site.xml:

    1. <configuration>
    2. <property>
    3. <name>mapreduce.framework.name</name>
    4. <value>yarn</value>
    5. </property>
    6. </configuration>

    etc/hadoop/yarn-site.xml:

    1. <configuration>
    2. <property>
    3. <name>yarn.nodemanager.aux-services</name>
    4. <value>mapreduce_shuffle</value>
    5. </property>
    6. </configuration>

    (2)启动 ResourceManager 守护进程和 NodeManager 守护进程

    1. $ sbin/start-yarn.sh

    (3)浏览 ResourceManager 的网络接口,它们的地址默认为:

    1. ResourceManager - http://localhost:8088/

    (4)运行 MapReduce job

    (5)完成全部操作后,停止守护进程:

    1. $ sbin/stop-yarn.sh