Hadoop 集群搭建
目录
Hadoop 集群搭建 ............................................................................................................................... 1
目录 .............................................................................................................................................1
1、 基础集群环境搭建 .................................................................................................................... 1
1.1、 安装 JDK.......................................................................................................................... 1
1.2、 修改主机名称,关闭防火墙.........................................................................................2
1.3、 添加内网域名映射......................................................................................................... 2
1.4、 配置免密码登录............................................................................................................. 2
2、 Hadoop 集群环境安装 .............................................................................................................. 3
2.1、Hadoop 版本选择 ............................................................................................................. 3
2.2、安装 Hadoop..................................................................................................................... 3
2.2.1、Hadoop 伪分布式模式安装 .................................................................................. 3
2.2.2、Hadoop 分布式集群安装...................................................................................... 4
3、 集群初步使用 ............................................................................................................................ 7
3.1、Hadoop 集群启动 ............................................................................................................. 7
3.2、HDFS 集群初步使用 .......................................................................................................7
4、 Hadoop 集群安装高级知识 ...................................................................................................... 7
4.1、Hadoop HA 安装 ...............................................................................................................7
1、基础集群环境搭建
1.1、安装 JDK
1、上传 jdk-8u151-linux-x64.tar.gz
2、解压到 usr 目录下
tar -zxvf jdk-8u151-linux-x64.tar.gz
3、配置环境变量
(1)
vim /etc/profile
(2) 在最后加入:
JAVA_HOME=/usr/java1.8
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
(3) 保存退出
4、source /etc/profile
5、检测是否安装成功,输入命令:java -version
做完以上步骤,可以开始克隆虚拟机。因为以上系统的配置,都是一些基础性的操作。都
创新 专业 高效 进取 共赢
是必须的
1.2、修改主机名称,关闭防火墙
1、root 账号下使用命令:hostnamectl set-hostname hadoop02
2、Xshell 关闭连接窗口,重新连接即可更改过来
3、关闭防火墙(CentOS7)
(1) firewall-cmd --state #查看防火墙状态
(2) systemctl stop firewalld.service #停止 firewall
(3) systemctl disable firewalld.service #禁止 firewall 开机启动
1.3、添加内网域名映射
1、修改配置文件:vim /etc/hosts
1.4、配置免密码登录
1、在 root 登录状态下,输入命令 ssh-keygen 或者 ssh-keygen -t rsa
2、之后你会发现,在/root/.ssh 目录下生成了公钥文件
3、使用一个简单的方式,使用命令:
ssh-copy-id hadoop02
建立 hadoop01 到 hadoop02 的免密码登录
创新 专业 高效 进取 共赢
2、Hadoop 集群环境安装
2.1、Hadoop 版本选择
1、Apache 官方版本:
1.X
2.X
2.6.5
2、商业发行版本
2.7.5
3.0.1
提供完善的管理系统,修复 bug 可能会领先于官方版本
Cloudera 公司的 CDH:5.7.X
2.2、安装 Hadoop
2.2.1、Hadoop 伪分布式模式安装
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,
节点即作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 hadoop-2.7.5/etc/hadoop/文件夹中,伪分布式需要修改两个配置文
件 core-site.xml 和 hdfs-site.xml(其中 hdfs-site.xml 用来配置数据块的副本数量,对于伪分布
式来说,不管你配置几个副本数量,它始终都只有一个副本,所以可以不用管)。Hadoop
分配置文件是 xml 格式,每个配置文件以声明 property 的 name 和 value 的方式来实现
1、修改 hadoop-env.sh 配置文件,添加 jdk 安装目录
[root@hadoop01 hadoop]# vim hadoop-env.sh
2、修改 core-site.xml
fs.defaultFS
hdfs://hadoop01:9000
hadoop.tmp.dir
/opt/hadoop-2.7.5/temp
创新 专业 高效 进取 共赢
3、修改 slaves
hadoop01
4、添加 hadoop 环境变量:vim /etc/profile
HADOOP_HOME=/home/hadoop-2.7.5
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_HOME PATH
5、格式化 namenode
[root@hadoop01 hadoop]#hadoop namenode -format
6、启动 hdfs
[root@hadoop01 hadoop]#start-dfs.sh
7、检查是否启动成功
(1) 利用 jps 工具检测各进程是否启动成功
(2) 利用 web UI 查看 http://hadoop01:50070
2.2.2、Hadoop 分布式集群安装
集群规划:
HDFS
NameNode+DataNode 主节点
DataNode+SecondaryNamenode
DataNode
YARN
NodeManager
hadoop01
NodeManager
hadoop02
hadoop03
NodeManager+ResourceManager 主节点
总共三个 datanode 节点,设置副本数为 2,是为了观察数据块分布方便,各自可根据自身
机器决定。
具体步骤:
一、上传安装包,并解压到相关目录
tar -zxvf hadoop-2.7.5.tar.gz -C /home/
二、主要配置文件的配置
1.修改 hadoop-env.sh
export JAVA_HOME=/usr/jdk1.8
2.修改 core-site.xml
创新 专业 高效 进取 共赢
4.修改 mapred-site.xml(集群中只有 mapred-site.xml.template,可以从这个文件进行复制,
或者直接改名也可以)
mapreduce.framework.name
yarn
5.修改 yarn-site.xml
yarn.resourcemanager.hostname
hadoop03
yarn.nodemanager.aux-services
mapreduce_shuffle
6.修改 slaves 文件,添加以下内容,该内容是从节点列表
hadoop01
hadoop02
hadoop03
三、分发安装包到各个节点,Hadoop 的每个节点都需要 hadoop 安装包
scp -r hadoop-2.7.5 root@hadoop02:$PWD
scp -r hadoop-2.7.5 root@hadoop03:$PWD
四、在 HDFS 主节点上执行命令进行初始化 namenode
hadoop namenode -format
五、在 HDFS 主节点上启动 HDFS,其实在哪个节点启动并无关系
start-dfs.sh
结果:在主节点启动了 NameNode 守护进程
在从节点启动了 DataNode 守护进程
在配置的一个特定节点上会启动 SecondaryNameNode 进程
六、检测集群是否启动成功
1、检测 hdfs 是否启动成功
hadoop fs
-ls
/
2、Hdfs 集群信息 web 管理界面地址
http://hadoop01:50070
创新 专业 高效 进取 共赢
3、集群初步使用
3.1、Hadoop 集群启动
DFS 集群启动:start-dfs.sh
DFS 集群关闭:stop-dfs.sh
YARN 集群启动:start-dfs.sh
YARN 集群关闭:stop-dfs.sh
3.2、HDFS 集群初步使用
查看集群文件:hadoop fs -ls /
上传文件:hadoop fs -put filepath destpath
下载文件:hadoop fs -get destpath
创建文件夹:hadoop fs -mkdir /hadoopdata
查看文件内容:hadoop fs -cat /hadoopdata/myfile.txt
4、Hadoop 集群安装高级知识
4.1、Hadoop HA 安装
为什么会有 hadoop HA 机制?
HA:High Available 高可用。
在 hadoop2.0 之前,在 HDFS 集群中 NameNode 存在单节点故障(SPOF:A Single Point of
Failure)。对于只有一个 NameNode 的集群,如果 NameNode 机器出现故障(比如宕机或是
软件、硬件升级),那么整个集群将无法使用,直到 NameNode 重新启动。
那如何解决?
HDFS 中 HA 功能通过配置 Active/Standby 两个 NameNodes。在任何时间点,确保 NameNodes
中只有一个处于 Active 状态,其他处在 Standby 状态。其中 ActiveNameNode 负责集群中的
所有客户端操作,StandbyNameNode 仅仅充当备机,保证一旦 ActiveNameNode 出现问题能
够快速切换。
为了能够实时同步 Active 和 Standby 两个 NameNode 的元数据信息(实际上 editlog),
需提 供一个共享存储系统,可以是 NFS、QJM(Quorum Journal Manager)或者 Zookeeper,
Active Namenode 将数据写入共享存储系统,而 Standby 监听该系统,一旦发现有新数据
写入,则 读取这些数据,并加载到自己内存中,以保证自己内存状态与 Active NameNode 保
持基本一 致,如此这般,在紧急情况下 standby 便可快速切为 active namenode。为了实
现快速切换, Standby 节点获取集群的最新文件块信息也是很有必要的。为了实现这一目
创新 专业 高效 进取 共赢
标,DataNode 需 要配置 NameNodes 的位置,并同时给他们发送文件块信息以及心跳检测。
思考问题:SecondaryNameNode 和 Standby Namenode 的区别?
创新 专业 高效 进取 共赢