Hadoop之伪分布式

来源:互联网 发布:java获取当前目录 编辑:程序博客网 时间:2024/05/20 17:41

三种受支持模式启动Hadoop集群:

  • 本地(独立)模式
  • 伪分布式模式
  • 完全分布式模式

本地(独立)模式:

默认情况下,Hadoop被配置为以非分布模式运行,作为单个Java进程。这对调试很有用。

以下示例将解压缩的配置目录复制为输入,然后查找并显示给定正则表达式的每个匹配项。输出写入给定的输出目录。

  $ mkdir input  $ cp etc/hadoop/*.xml input  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar grep input output 'dfs[a-z.]+'  $ cat output/*

伪分布式模式 :

Hadoop也可以在伪分布模式下的单节点上运行,其中每个Hadoop守护进程都在单独的Java进程中运行。

配置如下:

1.配置一个HDFS文件系统:

vi etc/hadoop/core-site.xml
    新增HDFS文件系统节点:
<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://localhost:9000</value>    </property></configuration>

2 .指定副本节点数量

vi etc/hdfs-site.xml

新增

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

3.配置ssh无秘钥登录
现在检查你是否可以不用密码ssh到本地主机:

  $ ssh localhsot

如果您不能在没有密码的情况下ssh到本地主机,请执行以下命令:

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

以下说明是在本地运行MapReduce作业。

1.格式化文件系统:

  $ bin/hdfs namenode -format

2.启动NameNode守护进程和DataNode守护进程:

  $ sbin/start-dfs.sh

查看服务是否启动正常

  $ jps

如果看到NameNode,DataNode,SecondaryNameNode等进程,则表示启动正常。
如果启动失败,可以查看相关的日志文件。Hadoop日志默认在Hadoop目录下的logs文件夹下。

  $  cd logs

3.浏览NameNode的Web界面

  http://localhost:50070/

4.创建执行MapReduce作业所需的HDFS目录:

  $ bin/hdfs dfs -mkdir /user  $ bin/hdfs dfs -mkdir /user/<username>

username本人写的root。
5.将输入文件复制到分布式文件系统中:

  $ bin/hdfs dfs -put etc/hadoop /user/root/input

上传到HDFS的/user/root/input目录下。
6.运行一些提供的例子:

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

7.检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:

  $ bin/hdfs dfs -get /user/root/output output  $ cat output/*

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

  $ bin/hdfs dfs -cat /user/root/output/*

8.测试完毕后,停止守护进程:

  $ sbin/stop-dfs.sh
原创粉丝点击