您的位置:首页 > 运维架构

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

2017-03-28 14:46 621 查看
一、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命令查看。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: