Hadoop 文档阅读(1)

Hadoop 文档阅读(1)


1. 本地模式

利用Hadoop自带的mapreduce_example跑一下简单的mapreduce内容
命令如下(当前目录为hadoop项目目录):

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

默认的模式,无需运行任何守护进程(daemon),所有程序都在单个JVM上执行。由于在本机模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。
使用本地文件系统,而不是分布式文件系统。

Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。

用于对MapReduce程序的逻辑进行调试,确保程序的正确。

所谓默认模式,及安装完jdk及hadoop,配置好相应的环境,及本地模式配置完成

2. 伪分布式

在单台机器上开多个Hadoop守护进程

  • 格式化文件系统
$ bin/hdfs namenode -format

输出以下内容说明格式化成功
在这里插入图片描述

  • 启动NameNode守护进程和DataNode守护进程:
$ sbin/start-dfs.sh

过程中出现了JAVA_HOME找不到的错误
解决办法
1.将export JAVA_HOME等路径配置添加到/etc/bashrc 前面
2.将JAVA_HOME路径写死到 $HADOOP_HOME/etc/hadoop/hadoop-env.sh中。

成功执行利用命令jps应该能看到
在这里插入图片描述
hadoop守护进程日志输出被写入HADOOP_LOG_DIR目录(默认是$HADOOP_HOME/logs)

  • 浏览NameNode的web页面;默认位于 http://localhost:50070
  • 创建执行MapReduce作业所需的HDFS目录:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
  • 将输入文件复制到分布式文件系统中:
$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input

上传文件的时候可能会遇到如下形式的报错:

20/08/10 07:03:11 WARN hdfs.DFSClient: Caught exception 
java.lang.InterruptedException
   at java.lang.Object.wait(Native Method)
   at java.lang.Thread.join(Thread.java:1252)
   at java.lang.Thread.join(Thread.java:1326)
   at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.closeResponder(DFSOutputStream.java:716)
   at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.endBlock(DFSOutputStream.java:476)
   at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:652)

但是该报错不影响文件的上传,据说是hadoop自己的一个bug,文件上传后不会损坏或影响使用。

  • 运行提供的一些示例:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar grep input output 'dfs[a-z.]+'

  • 检查输出文件:将输出文件从分布式文件系统复制到本地文件系统,然后查看它们:
$ bin/hdfs dfs -get output output
$ cat output/*

或者在分布式文件系统上查看文件

$ bin/hdfs dfs -cat output/*    
  • 完成后,停止守护进程:
$ sbin/stop-dfs.sh

3. 完全分布式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值