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