在hadoop的集群安装中, 分为完全分布式安装、伪分布式安装和单机版安装
单机版:主要用于MR程序的调试
伪分布式:作为学习使用,与完全分布式一样,只不过是通过java进程模拟出来的假的分布式
完全分布式:真正在生产环境中使用的集群
安装前的准备:
1 安装的JDK 环境,并且配置环境变量
上传到 JDK环境到linux系统中,安装rz命令
安装完成之后,就可以使用rz命令上传文件
对于要安装的文件,对其规划安装目录
/opt/soft 安装的源文件目录
/opt/app/ 已安装的文件目录
把需要安装的JDK 源文件上传到/opt/soft 目录下,直接使用rz命令或者上传工具上传
解压JDK 安装包到/opt/app目录下
配置JDK的环境变量,有两种方式可以进行环境变量的配置
1) 在家目录中的.bash_profile文件中配置 (单个用户生效)
2) 在 vi /etc/profile 文件中配置(代表全局生效)
3) 需要让环境变量的配置文件生效 source /etc/profile
4) java -version 输入以下内容
2 配置hadoop用户以及sudo 权限
创建hadoop用户 useradd hadoop
设置Hadoop用户密码 passwd hadoop
设置Hadoop sudo权限
使用visudo 编辑文件
3 关闭防火墙
查看防火墙是否开启自起状态
4 配置主机名称,并且映射Hosts文件
临时配置主机名称:hostname hadoop01 重启之后失效
永久配置 vi /etc/sysconfig/network
5 解压Hadoop的安装包到/opt/app路径下
6 观察Hadoop安装路径下的文件夹的作用
- Bin运行hadoop模块以及HDFS模块的命令,例如 格式化 hdfs的管理命令
- etc/hadoop 该目录下存储了需要配置的配置文件。Hadoop的环境变量 四个模块的配置信息 hdfs yarn mapreuce common 用户自定的配置都在该目录下的配置文件中进行配置
- 本地库,与操作系统进行了一些底层链接操作,由于Hadoop是在32位系统上进行编译的,所以在64位操作系统上运行的时候,会出现一个叫做无法加载本地库的错误。需要重新编译Hadoop源码才能解决。但是这个问题不用解决也没什么关系
- Sbin 是各个模块的启动与停止脚本。在集群搭建完成之后要启动集群中的服务则需要在这个目录下执行对应的启动脚本
- Share 目录下存储的是Hadoop中集成的jar包 ,例如 官方的示例jar包就存在该目录下
7 配置Hadoop的单机环境
配置etc/hadoop/hadoop-env.sh 配置该文件下JAVA_HOME 路径
完成以上的配置之后,就可以尝试运行Hadoop命令,但是在实际开发中一般来说都不使用root用户操作,之前已经创建过了Hadoop用户。在运行Hadoop之前首先切换到Hadoop用户下进行运行
由于切换用户之后,涉及到了权限问题,所以在切换用户之后,需要修改Hadoop 以及JDK 的用户权限以及权限组
8 在Hadoop的根目录下 使用bin/hadoop 命令则会输出以下内容
以上内容输出成功,说明Hadoop单机环境配置成功
9 运行Hadoop官方案例 grep 案例
1)在hadoop的根目录下创建文件夹input
将etc/hadoop 目录下*.xml 文件拷贝到 input目录中
执行share目录下的mapreuce示例程序
出现了如下错误
该错误说明没有进行主机的域名映射,所以需要在 /etc/hosts 文件下进行主机映射
完成以上的配置,再次运行官方示例
运行成功。在Hadoop的根目录中 创建了一个output的目录。该目录下创建了两个文件
_SUCCESS:没有任何的意义只是代表一个运行成功的标记
part-r-00000:是真正输出的分析之后的结果
10 运行Hadoop wordCount案例
1) 需要准备需要统计的单词文本
在Hadoop的根目录中创建input2目录,在该目录下创建单词文件
2) 运行官方案例
3) 该案例输出的统计结果如下
11 Hadoop 分布式安装
对于之前的操作,是Hadoop的单机版的运行模型,单机版的运行模式,数据都是在本地运行和存储的
根据官方网站的提示;首先在伪分布式的环境中首先需要配置如下配置文件
1 etc/hadoop/core-site.xml: 可以通过notepad 工具连接到linux上进行配置的编辑
点击该配置项进行linux 路径的配置
根据该工具,对core-site.xml文件进行如下配置
fs.defaultFS:默认的配置名称,HDFS路径默认配置名称
hdfs://hadoop01:8020 HDFS 文件系统的路径
配置完以上的配置信息之后,还需要配置如下内容:
该属性表示,Hadoop在运行的时候产生的临时文件。以及HDFS edits fsimage 存储父目录位置。该属性默认值保存在linux /tmp 目录下,该目录是一个临时目录。把内容保存在该目录下明显不适合需要重新自定义
2 配置etc/hadoop/hdfs-site.xml: 修改该文件中HDFS 副本数,由于目前使用的是伪分布式只有一台节点,所以不能使用默认的副本数(3)要修改为1
3 完成以上的配置之后,可以去格式化HDFS文件系统,格式化的目的是生成 fsimage 和edits文件 用于保存用户在namenode内存的元数据
4 格式化成功之后,启动HDFS的服务进程。需要启动两个进程 分为为
Namenode 以及 datanode
由于现在没有配置ssh免密登录。可以使用分别启动的方式进行服务的启动
5使用hadoop-daemon.sh 分别启动 namenode 以及 datanode 启动的命令如下
启动完成之后,可以通过jps命令去查看进程是否启动
启动成功之后,也可以web 浏览器的方式访问HDFS 文件系统访问路径如下
6 使用HDFS 运行Mapredue的官方案例 grep
需要把文件上传到HDFS文件系统上,在文件系统上创建目录
把本地中的input 中的*.xml文件上传到 hdfs 上的input目录中
运行gerp官方示例
运行成功之后,在HDFS上查看运行成功的结果
7 配置Yarn 环境
1)根据官方文档的提示,需要配置etc/hadoop/mapred-site.xml: 指定MR任务在yarn上运行
配置etc/hadoop/yarn-site.xml: 指定yarn服务类名称 为shuffle
以上的配置完成之后,就可以进行Yarn集群的启动
Yarn 也存在web界面,通过8088端口去查看
http://10.36.143.56:8088/cluster
完成以上的配置之后,再次运行官方案例,则MR任务运行在yarn 平台上
以及也可以通过web 接口的方式查看在yarn运行的任务
对于以上的配置,伪分布式需要的组件已经安装完成。但是启动集群命令的时候需要单独启动。也可以通过设置ssh免密登录的方式进行全部启动与停止。
在进行集群全部启动的时候,需要配置savles 配置文件。在该文件中配置从节点的主机名称 在hadoop中从节点为datanode 与nodemanager 往往这两个服务都在一台节点上。
——END——