大数据专栏 | Hadoop集群环境搭建
附软件下载地址:
Hadoop官网下载:https://hadoop.apache.org/releases.html
JDK下载:https://www.oracle.com/technetwork/java/javase/downloads/index.html
CentOS下载:http://isoredirect.centos.org/centos/
Hadoop官网安装文档:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
一般练习时可以搭建伪分布式(单机版)来学习也是可以的。
集群搭建
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起
HDFS集群:
负责海量数据的存储,集群中的角色主要有 NameNode / DataNode
YARN集群:
负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager
(那mapreduce是什么呢?它其实是一个应用程序开发包)
- 本集群搭建案例,以3节点为例进行搭建,角色分配如下:
mini61 NameNode SecondaryNameNode ResourceManager
mini62 DataNode NodeManager
mini63 DataNode NodeManager
服务器准备
- Vmware 12
- Centos 6.7 64bit
网络环境准备
- 采用NAT方式联网
- 网关地址:192.168.25.1
- 3个服务器节点IP地址:192.168.25.201、192.168.25.202、192.168.25.203
- 子网掩码:255.255.255.0
服务器系统设置
-
添加hadoop用户 【也可以直接使用root用户】 (小白可参考百度:centos系统添加/删除用户和用户组的例子)
-
为hadoop用户分配sudoer权限
切换为
root
用户修改配置文件su root vi /etc/sudoers
添加用户,如图:
-
同步时间(时间正常就不需要)
-
分别设置主机名
mini61
mini62
mini63
修改配置文件
[root@mini61 hadoop]# vi /etc/sysconfig/network
配置内网域名映射:
192.168.25.201 mini61
192.168.25.202 mini62
192.168.25.203 mini63
[root@mini61 hadoop]# vi /etc/hosts
配置ssh免密登陆
下面为简单版,如首次接触Linux,请自行搜索查找教程
配置ssh免登陆
#生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id localhost
---------------------------
ssh免登陆:
生成key:
ssh-keygen
复制从A复制到B上:
ssh-copy-id B
验证:
ssh localhost/exit,ps -e|grep ssh
ssh A #在B中执行
配置/关闭防火墙
下面为 CentOS 6
版本关闭防火墙的方法,如使用的是 CentOS 7
请自行百度
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
Jdk环境安装
如未安装过(说明还没有学习过Java
,那么建议先学习 Java
基础),请参考百度:JDK安装
- 上传jdk安装包
- 规划安装目录
/home/hadoop/app/jdk_1.7.45
- 解压安装包
- 配置环境变量 /etc/profile
HADOOP安装部署
配置好一台后使用 scp
命令发送到另外两台即可
下载链接前面已提及
- 上传HADOOP安装包
- 规划安装目录
/home/hadoop/app/hadoop-2.6.4
- 解压安装包
安装方法类似 JDK
本次我下载的是hadoop 2.6.4
版本
本次配置 /etc/profile
文件参考如下(请根据需要修改):
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_45
export HADOOP_HOME=/home/hadoop/app/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
修改配置文件
进入 $HADOOP_HOME/etc/hadoop/ 目录下:
vi hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_45
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mini61:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadpdata</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadpdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadpdata/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>mini61:50090</value>
</property>
</configuration>
mapred-site.xml 需要先修改名称
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>mini61</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
vi salves
(作为DataNode的主机名)
mini62
mini63
启动集群
切回 hadoop 用户
初始化HDFS
在 mini61
上执行格式化 这里 mini61
我作为 master
, 另外两台作为从节点
hadoop namenode -format
如图所示就启动格式化
成功了。
启动HDFS
start-dfs.sh
启动YARN
start-yarn.sh
如果直接执行 start-all.sh
就代表 同时启动 HDFS
和 Yarn
三个节点分别执行 jps 查看进程
[hadoop@mini61 ~]$ jps
[hadoop@mini62 ~]$ jps
[外链图片转存失败(img-p7uIxHw3-1565872472610)(https://raw.githubusercontent.com/zranfly/tuchuang/master/img/20190731121516.png)]
[hadoop@mini63 ~]$ jps
详细教程可参看:Hadoop集群搭建 (适合小白)
注意:本人也是初学者,作为学习笔记,如有错漏,敬请见谅。
欢迎关注微信公众号:大数据专栏