这是小小本周的第一篇,我是小小,开更本周的第一篇,本篇将会介绍Hadoop集群的简单搭建和简单应用。
概念了解
主从结构:在一个集群众,会有部分节点充当主节点的角色,其他服务器都是从节点的角色,当前这种架构称之为主从结构。主从结构分类:
- 一主多从
- 多主多从 Hadoop中的HDFS和YARN都是主从结构,各个角色的名称,以及主从结构的概念方式 | 服务 | 主节点 | 从节点 | |------|------|----------| |HDFS | NameNode | DataNode | | YARN | ResourceManager | NodeManager |
集群服务器规划
使用四台Centos虚拟机进行集群搭建
安装
规划
规划安装用户:hadoop
规划安装目录:/home/hadoop/apps
规划数据目录:/home/hadoop/data
注:apps和data文件夹需要自己单独创建
上传解压缩
使用Hadoop用户
[hadoop@hadoop1 apps]$ ls
hadoop-2.7.5-centos-6.7.tar.gz
[hadoop@hadoop1 apps]$ tar -zxvf hadoop-2.7.5-centos-6.7.tar.gz
修改配置文件
配置文件目录:/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
hadoop-env.sh
[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
修改JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_73
core-site.xml
[hadoop@hadoop1 hadoop]$ vi core-site.xml
fs.defaultFS :这个属性用来指定namenode的hdfs协议的文件系统通信地址,可以指定一个主机+端口,也可以指定为一个namenode服务(这个服务内部可以有多台namenode实现ha的namenode服务
hadoop.tmp.dir : hadoop集群在工作的时候存储的一些临时文件的目录
fs.defaultFShdfs://hadoop1:9000hadoop.tmp.dir/home/hadoop/data/hadoopdata
hdfs-site.xml
[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml
dfs.namenode.name.dir:namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据。
dfs.datanode.data.dir:datanode数据的存放地点。也就是block块存放的目录了。
dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,默认配置是3。
dfs.secondary.http.address:secondarynamenode 运行节点的信息,和 namenode 不同节点
dfs.namenode.name.dir/home/hadoop/data/hadoopdata/name为了保证元数据的安全一般配置多个不同目录dfs.datanode.data.dir/home/hadoop/data/hadoopdata/datadatanode 的数据存储目录dfs.replication2HDFS 的数据块的副本存储个数, 默认是3dfs.secondary.http.addresshadoop3:50090secondarynamenode 运行节点的信息,和 namenode 不同节点
mapred-site.xml
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
mapreduce.framework.name:指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 。
mapreduce.framework.nameyarn
yarn-site.xml
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml
yarn.resourcemanager.hostname:yarn总管理器的IPC通讯地址
yarn.nodemanager.aux-services:
yarn.resourcemanager.hostnamehadoop4yarn.nodemanager.aux-servicesmapreduce_shuffleYARN 集群为 MapReduce 程序提供的 shuffle 服务
slaves
[hadoop@hadoop1 hadoop]$ vi slaves
hadoop1
hadoop2
hadoop3
hadoop4
安装包分发给其他节点
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop2:~/apps/
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop3:~/apps/
[hadoop@hadoop1 hadoop]$ scp -r ~/apps/hadoop-2.7.5/ hadoop4:~/apps/
配置环境变量
[hadoop@hadoop1 ~]$ vi .bashrc
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
环境变量生效
[hadoop@hadoop1 bin]$ source ~/.bashrc
查看Hadoop版本
[hadoop@hadoop1 bin]$ hadoop version
Hadoop 2.7.5
Subversion Unknown -r Unknown
Compiled by root on 2017-12-24T05:30Z
Compiled with protoc 2.5.0
From source with checksum 9f118f95f47043332d51891e37f736e9
This command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar
[hadoop@hadoop1 bin]$
在主节点上对Hadoop进行初始化
[hadoop@hadoop1 ~]$ hadoop namenode -format
1 [hadoop@hadoop1 ~]$ hadoop namenode -format
2 DEPRECATED: Use of this script to execute hdfs command is deprec