目录
1.概述
hadoop有三种安装模式
-
单机模式,只在一台机器上运行,存储用的本地文件系统而不是hdfs。
-
伪分布式模式,存储采用hdfs,名称节点和数据节点在同一台机器上。
-
分布式模式,标准的分布式集群。
做实验或者学习阶段选择伪分布式就好,本文将详细讲解在linux搭建起一个伪分布式的hadoop集群。
2.环境准备
1.安装jdk
略,这一步应该就不用多赘述了吧,作者用的oracle版的jdk8
2.配置ssh免密登录
由于名称节点要通过ssh来拉起数据节点的守护进程(用来上报信息),所以要先配置一下节点间的ssh免密登录,不然的话集群根本就起不来。
ubuntu默认安装了ssh client,除此之外还要安装ssh server、生成密钥
并将密钥追加到允许无密码登录的密钥列表文件中去:
3.hadoop安装
3.1.下载安装配置
下载地址:
版本:
3.1.3
下载后直接解压即可。
用version参数看看解压是否正确:
测试一下单机模式是否能正常运行:
测试可以使用自带的demo来看运行是否正常,通过一个正则表达式去匹配指定格式的字符串,然后去查看output中存放的统计结果。
搭建伪分布式集群:
hadoop的配置文件所在路径:
core-site.xml:
hdfs-site.xml:
配置好配置文件后,下一步是什么?当然是格式化namenode了,这一步会根据配置文件去初始化好namenode节点:
格式化成功后的提示:
配置环境:
按道理说配置完配置文件后直接启动即可了对吧,但是在hadoop 3.1.3这个版本有个hadoop的环境配置文件etc/hadoop/hadoop-env.sh。这个配置里面要指定java_home的路径已经可以启动hadoop的用户,不然的话启动会报用户没有启动权限或者java_home找不到。这是一个小坑以下是作者的配置:
启动:
启动完成后:
3.2.伪分布式集群
hdfs做了资源隔离,要使用hdfs的前提是先在hdfs中为用户创建用户目录。
在/user/root/下创建一个input目录:
把测试数据拷贝过去:
这不是报错,不用管:
跑计算任务的demo:
跑demo的jar包的时候可以指定输入输出路径和一个正则表达式来指定匹配规则,下面的正则表达式会匹配dfs开头后面是a-z的字符的所有单词。
查看结果:
3.3.注意事项
下次再进行测试的时候一定要将output文件夹删掉,不然冲突会报错。
4.hadoop集群的组成
伪分布式的hadoop集群其实就两大核心组件构成:
-
hdfs
-
mapreduce
回顾一下上面启动hadoop后我们用jdk的jps命令看到的java进程:
可以看到一共有三个东西:
-
secondnamenode
-
datanode
-
namenode
这三个东西是属于hdfs的,datanode是具体存放数据的节点,namenode用来记录所有datanode的信息,secondnamenode是namenode的备份:
以上是节点在hdfs维度扮演的角色,除此之外节点还在mapreduce维度扮演有角色,mapreduce在跑一个大的任务的时候会把节点分为两类:
-
jobtracker,负责总的来协调位于不同节点的小任务,将多个小任务的计算结果汇成最终的结果。
-
tasktracker,datanode节点上跑的小任务。
发表评论