一、Hadoop运行模式
Local (Standalone) Mode 本地模式 适用于开发人员测试Debug 使用本地文件系统
Pseudo-Distributed Mode 伪分布式模式 适用于开发人员测试Debug 使用HDFS文件系统
Fully-Distributed Mode 完全分布式模式 适用于生产环境服务器集群 使用HDFS文件系统
二、环境准备
(环境及软件工具版本仅供参考)
1、虚拟机:VMware 12.0
2、操作系统:CentOS 6.5
3、JDK:jdk-7u79
4、Hadoop:hadoop-2.5.0
5、辅助工具:secureCRT
三、搭建过程
1、搭建过程可参考Apache Hadoop官网:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/SingleCluster.html
2、第一步:将JDK和Hadoop安装包解压到指定的目录下,解压Hadoop的tar包的时候出现下图中的信息,不要惊慌这不是报错,是格式的问题并不会影响之后的搭建操作。

3、第二步:配置JDK环境变量,注意:在配置之前先确认当前系统中有没有已经存在的JDK,列如CentOS系统会自带Open JDK,那就需要先它卸载然后再安装自己的JDK。这里我选择直接配在/etc/profile下,全局生效。建议source下文件,立即生效。

4、第三步:进入到Hadoop主目录下,找到etc/hadoop,里面存放了Hadoop的相关配置文件,首先需要修改的是hadoop-env.sh、mapred-env.sh、yarn-env.sh三个文件,指定Java的路径,也就是刚才配置的JDK的路径。

5、将三个文件中的JAVA_HOME都替换指定自己的JDK路径即可。(PS:不指定系统也可以读取到,但是为了防止后续出现问题建议还是指定下比较好。)

6、第四步:还是在etc/hadoop目录下,修改用户自定义文件,一共五个文件,首先修改core-site.xml文件。

7、core-site.xml文件中我们主要配置两个属性。第一个fs.defaultFS,表示指定默认的文件系统,我们肯定是需要去指定HDFS的路径的,默认情况下是使用本地文件系统,格式就是主机名+端口号,端口号一般使用默认的8020端口(早期是9000端口),主机名填写本机主机名。


8、第二个需要添加的属性是:hadoop.tmp.dir,这个属性比较重要,HDFS中很多的文件默认都在这个默认的路径下,比如:NameNode、DataNode等等,简单来说就是很多服务产生的文件都会放在这个属性所指定的路径下,它的默认路径是在/tmp下,这个目录我们知道是一个临时目录,每次重启之后会清理其中的文件,那么我们需要自己去指定它的路径,防止下次重启后被删除保证环境正常运行。那么首先我们需要新建目录然后替换原来的默认值,保存退出。

9、接着我们再来配置第二个文件:hdfs-site.xml,这里我们需要指定dfs.replication属性,表示HDFS副本数的个数,它的默认值是:3,由于我们这里是伪分布式环境,是一台机器,所以需要修改为1,保存退出即可。

10、再打开第三个文件:yarn-site.xml,配置两个属性,第一个yarn.nodemanager.aux-services,表示NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序。第二个yarn.resourcemanager.hostname,指定主节点ResourceManager的地址,这个属性属于可配置项,不一定必须配置,默认直接能够启动,值直接填写主机名即可,不需要端口号。

11、打开第四个文件mapred-site.xml之前需要先重命名下文件名称,因为默认情况下后缀为template的话,这个文件是不生效的,系统不会读取。mapreduce.framework.name属性表示MapReduce运行的环境是在Yarn上,向Yarn提交任务。


12、最后打开slaves文件,这个文件是datanode从节点列表的文件,里面存储每个节点的名称,可用主机名填写或者IP地址,一般建议主机名。

13、第五步:文件配置完成之后,接着就是对于文件系统进行格式化操作,让其生成初始化的元数据文件让namenode在启动时读取。通过bin/hdfs命令找到格式化相关的命令选项。

14、执行格式化.

15、第六步:通过在sbin目录下的启动脚本,分别单个启动每一个守护进程,然后通过命令jps查看是否启动成功,jps表示查看Java进程,每个进程前面的数字代表它们的pid进程号。

16、OK,到这里为止如果都启动成功的话,那么恭喜你配置完成!但是为了确定整个环境是否能运行我们还需要测试一下。
四、测试环境
1、首先打开浏览器,建议谷歌或者火狐浏览器打开,输入主机名+50070端口号的方式打开网页,主机名和端口号之间使用冒号分隔。这是HDFS文件系统的外部管理界面,50070端口是外部交互的端口号。

2、同样的使用相同的方式:主机名+端口号8088,打开Yarn的外部管理界面。

3、首先测试文件系统是否正常,点击浏览HDFS的目录结构,里面默认情况下只有一个根目录。

4、我们在HDFS文件系统上先创建一个目录用于测试,输入bin/hdfs dfs命令之后会有一个列表显示支持的选项,找到-mkdir创建命令。

5、直接选择在根目录下创建两个文件夹,test_data/input,输入命令后出现的警告不会影响操作,这是因为本地库文件没有被加载,替换lib下的native目录即可,我会在后续的Hadoop源码编译编给大家详细介绍。


6、接着在本地系统中新建一个文件用于作为测试的数据文件,内容随意,建议英文单词。

7、然后将测试文件通过-put命令上传到HDFS文件系统刚才我们新建的input目录下,然后刷新页面查看下。


8、准备运行MapReduce任务,选择要运行的任务类型,我们选择的是经典案例WordCount词频统计。

9、运行任务,注意output目录不需要提前新建,这是MapReduce的机制,会自动生成,一个MapReduce需要有输入和输出路径。在运行的时候可以到8088的页面查看,会有一个任务正在提交并运行。

10、MapReduce的执行过程。

11、任务运行结束,首先到HDFS管理界面查看是否生产output目录,以及目录下有没有结果集文件。part-r-00000是保存结果的文件,r代表reduce。

12、最后我们在命令查看任务运行的结果,也就是测试文件中统计单词出现的次数,使用-text命令查看。

Hadoop学习总结(3)——Hadoop伪分布式环境搭建相关推荐

  1. Hadoop单机和伪分布式环境搭建

    hadoop环境搭建 1.三个环境        单机.伪分布式.分布式 2.三个分支       apache版本(Apache基金会)       cdh版本(cloudera公司)       ...

  2. HDFS伪分布式环境搭建-很不错

    HDFS伪分布式环境搭建 原创 ZeroOne01 2018-03-24 19:51:20 评论(0) 655人阅读 HDFS概述及设计目标 什么是HDFS: 是Hadoop实现的一个分布式文件系统( ...

  3. Hadoop2.2.0伪分布式环境搭建(附:64位下编译Hadoop-2.2.0过程)

    Hadoop2.2.0伪分布式环境搭建: 写在前面:Hadoop2.2.0默认是支持32位的OS,如果想要在64位OS下运行的话,可以通过在64位OS下面编译Hadoop2.2.0来实现,编译的操作步 ...

  4. Hadoop入门基础教程 Hadoop之伪分布式环境搭建

    伪分布式模式即单节点集群模式,所有的守护进程都运行在同一台机器上.这种模式下增加了代码调试功能,可以查看内存.HDFS文件系统的输入/输出,以及与其他守护进程交互.以Hadoop用户远程登录K-Mas ...

  5. 第1关:伪分布式环境搭建

    实验环境: hadoop2.7: JDK8: HBase2.1.1: hadoop已安装: JDK已安装,环境变量已配置: HBase压缩包已下载,存放在/opt目录下. 在搭建环境之前我们首先来了解 ...

  6. Hadoop小兵笔记【五】hadoop2.2.0伪分布式环境搭建疑难-第一个用例wordcount失败

    问题现象 问题原因 由于参考了之前研究生阶段下载的资料,按照真分布式环境一步步配置,觉得只是将datanode同时存放在namenode,将hdfs-site.xml文件中的dfs.replicati ...

  7. HDFS伪分布式环境搭建

    (一).HDFS shell操作 以上已经介绍了如何搭建伪分布式的Hadoop,既然环境已经搭建起来了,那要怎么去操作呢?这就是本节将要介绍的内容:HDFS自带有一些shell命令,通过这些命令我们可 ...

  8. hadoop2.9.1伪分布式环境搭建以及文件系统的简单操作

    1.准备 1.1.在vmware上安装centos7的虚拟机 1.2.系统配置 配置网络 # vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPRO ...

  9. hadoop2.6.0实践:002 检查伪分布式环境搭建

    1.检查网络配置 [root@hadoop-master ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop-master GA ...

最新文章

  1. C语言open和creat函数
  2. windows 2008 64位oracle11g部署问题(3)之ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...
  3. 串结构练习——字符串匹配
  4. linux上寻找并杀死僵尸进程
  5. android应用程序的混淆打包
  6. shujufenxi : shenzhenditie
  7. 一个没法商用,但是好玩有趣的 Python 手绘图形库!
  8. Jenkins + Gitlab + Ansible--playbook 代码上线流程
  9. hadoop可以解决什么问题_快速解决皮带机轴磨损问题可以这样做
  10. asm 查看 数据文件 修改 时间_Oracle的ASM介绍及管理
  11. 这个80后靠王者荣耀赚到93亿身家
  12. 老李分享:持续集成学好jenkins之Git和Maven配置
  13. java大文件排序_java对大文件进行归并排序(利用胜者树)
  14. 前有狗屁不通文章生成器 | 后有申论生成器
  15. ie无法下载 无法打开该internet站点.请求的站点不可用或无法找到.请稍后重试
  16. ucharts 柱状图圆角_调整柱状图圆角弧度
  17. 孪生再世代表数字几_正文 第六百一十七章 原来是孪生姐妹?
  18. 2019年个人成长计划
  19. 什么是软件质量——基于ISO质量定义对软件质量的理解
  20. Android茫茫半年求职路,终于斩获三个大厂offer,我总结了24家大厂100份面试题

热门文章

  1. 八段锦八个动作名称_八段锦工间操“动”起来 全民健身精气神“燃”起来
  2. pytorch gather_GCN的简单实现(pytorch)
  3. qml入门学习(六):Component组件
  4. mysql linux 用户_Linux mysql添加用户,删除用户,以及用户权限
  5. ios 从assets加载图片_iOS 使用Assets.xcassets添加启动图和Icon
  6. python为什么需要编辑器_Python是个什么鬼?为什么设计大牛都在学它?!
  7. python hist2d_使用hist2d在matplotlib中创建一个对数线性图
  8. mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误
  9. linux 可道云_如何搭建私有云
  10. python 函数可以作为容器对象的元素_python基础(十四):函数对象与闭包