Hadoop版本是hadoop-2.8.2

Java版本是Java8

   

Hadoop目录是/home/coley/hadoop

   

Hadoop 的主要概念之间的关系:

从机器上来说,分为一个master server和多个slave server

从Mapreduce计算来说,分为Jobtracker和TaskTracker,jobtrack控制多个TaskTracker

从HDFS来说,分为一个NameNode和多个DataNode,NameNode中记录着DataNode的信息

   

  • 伪分布式集群
  • 所谓的伪分布式集群,主要意思是我们单机测试开发的时候,改server既当Master Server也是Slave Server,既是NameNode,也是DataNode,既是JobTracker也是TaskTracker
  • 具体配置
  • 进入~/hadoop/etc/hadoop 目录,打开core-site.xml文件。配置HDFS服务的地址及端口号
  • 然后修改hdfs-site.xml,配置HDFS的备份方式。一般默认是3,但是在我们的伪分布式环境中,需要设置为1

屏幕剪辑的捕获时间: 2017/10/29 20:19

  • 接下来配置MapReduce的配置文件,一开始环境中并没有这个文件,只有一个叫做 mapred-site.xml.template 的文件,我们可以复制这个文件,重命名为

屏幕剪辑的捕获时间: 2017/10/29 20:24

  • 接下来格式化HDFS
  • 到bin目录下执行HDFS格式化命令:

结果如下:

伪分布式hadoop需要几台虚拟机_Hadoop

屏幕剪辑的捕获时间: 2017/10/29 21:12

  • 格式化完成之后,我们就可以开启我们的Hadoop服务了。执行如下命令~/hadoop/sbin/start-all.sh

屏幕剪辑的捕获时间: 2017/10/29 21:17

伪分布式hadoop需要几台虚拟机_hadoop_02

屏幕剪辑的捕获时间: 2017/10/29 21:18

最后发现我们报错了,因为JAVA_HOME没有设置,我要到一个配置环境的文件中设置下:

修改文件:./etc/hadoop/hadoop-env.sh

伪分布式hadoop需要几台虚拟机_HDFS_03

屏幕剪辑的捕获时间: 2017/10/29 21:26

然后接下来,重新执行一遍,成功了:

伪分布式hadoop需要几台虚拟机_HDFS_04

屏幕剪辑的捕获时间: 2017/10/29 21:27

不过也要注意的是,Start-all.sh 将要过期,后续可能会不再使用这个脚本启动服务。我们可以使用start-dfs.sh 和start-yarn.sh来启动服务。

  • 接下来的问题是访问服务,默认的可以通过浏览器访问Hadoop的管理页面:

屏幕剪辑的捕获时间: 2017/10/29 21:37

伪分布式hadoop需要几台虚拟机_伪分布式hadoop需要几台虚拟机_05

屏幕剪辑的捕获时间: 2017/10/29 21:37