Centos 7 hadoop2.8.4搭建
在多搭建了几遍之后发现还是挺简单的,如果仅仅搭建hadoop的话,虚拟机用VMware创建。本文中所有操作均使用root用户,并未创建hadoop用户
一 环境配置
1. 首先我们要将Ip设置好
```
# 每个系统上的文件名可能不一致,不过都是ifcfg-en开头的注意一下就行
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# DHCP 动态分配改为static 静态
BOOTPROTO=static
ONBOOT=yes
# IPADDR中X是自己网络的,记得修改,可以在适配器中net8网卡中设置,第4位可以再1-244中任选,并不一定要求是51
IPADDR=192.168.52.51
GATEWAY=192.168.52.2
DNS1=8.8.8.8
DNS2=8.8.4.4
NETMASK=255.255.255.0
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
service network restart
```
2. 修改主机名,这里我设置的是centos
```
# hostnamectl set-hostname centos
hostnamectl set-hostname 主机名
```
3. 修改IP与主机名关系映射
linux:(虚拟机)
```
vi /etc/hosts
192.168.52.51 centos
192.168.52.52 centos-node1
192.168.52.53 centos-node2
# 后面两行是为了搭建完全分布式准备的,如果只准备搭建伪分布式可不添加
```
windows:(宿主机)
在C:\Windows\System32\drivers\etc路径下找到hosts并添加
192.168.52.51 centos
192.168.52.52 centos-node1
192.168.52.53 centos-node2
同样后面两行是为了搭建完全分布式准备的,如果只准备搭建伪分布式可不添加
4. 关闭防火墙(没连上的话时候多看看,很可能就是防火墙没关)
- 关闭防火墙:systemctl stop firewalld.service
- 禁用防火墙:systemctl disable firewalld.service
- 查看防火墙:systemctl status firewalld.service
-
- 关闭Selinux:vi /etc/selinux /config
- 将SELINUX=enforcing改为SELINUX=disabled
二 安装JDK
1. 卸载现有jdk
查询是否安装java软件:
rpm -qa|grep java
2. 如果安装的版本低于1.7,卸载该jdk:
rpm -e --nodeps 软件包名字
例如:rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
3. 在/opt目录下创建一个子文件
mkdir /opt/module
4. 解压jdk到/opt/module目录下
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
5. 配置jdk环境变量
```
vi /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
```
6. 测试jdk安装,出现对应的版本号就成功了
```
java -version
```
三伪分布式部署
一 SSH无密码登录
1. 生成公钥和私钥 ssh-keygen -t rsa
2. 拷贝到免密登录的目标机器(也可以写ip地址)
+ ssh-copy-id centos
+ ssh-copy-id centos-node1
+ ssh-copy-id centos-node2
3. 完全分布式:一共执行9遍,每台主机各执行三遍
4. 伪分布式:只需要执行第一个就可以了
5. 测试登录 ssh 主机名(第一次登录的时候需要登录)
二 集群部署规划:
centos | centos-node1 | centos-node2 | |
---|---|---|---|
NameNode | |||
HDFS | SecondaryNameNode | ||
DataNode | DataNode | DataNode | |
YARN | ResourceManager | ||
NodeManager | NodeManager | NodeManager |
三 配置文件
文件目录 /opt/module/hadoop-2.8.4/etc/hadoop/
配置文件中所有主机名1均为主节点主机名称(centos),若没有配置地址映射hosts可用ip代替
core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.8.4/data/tmp</value>
</property>
hdfs-site.xml
<!--数据冗余数,备份数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>主机名1:50090</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
yarn-site.xml
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>主机名1</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天(秒) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
mapred-site.xml
<!-- 指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>主机名1:10020</value>
</property>
<!--历史服务器页面的地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>主机名1:19888</value>
</property>
JAVA_HOME配置
hadoop-env.sh、yarn-env.sh、mapred-env.sh(分别在这些的文件中添加下面的路径)
export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径,与/etc/profile中JAVA_HOME一致)
HADOOP_HOME配置
vi /etc/profile
export HADOOP_HOME=/opt/module/hadoop-2.8.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
四 启动hadoop
到这里伪分布式就完成了
hdfs namenode -format
启动所有start-all.sh
关闭所有stop-all.sh
以下命令都在$HADOOP_HOME/sbin下,如果直接使用,记得配置环境变量
名称 | 命令 |
---|---|
启动/停止历史服务器 | mr-jobhistory-daemon.sh start/stop historyserver |
启动/停止总资源管理器 | yarn-daemon.sh start/stop resourcemanager |
启动/停止节点管理器 | yarn-daemon.sh start/stop nodemanager |
启动/停止NN 和 DN | start/stop-dfs.sh |
启动/停止 RN 和 NM | start/stop-yarn.sh |
启动/停止 NN、DN、RN、NM | start/stop-all.sh |
启动/停止 NN | hadoop-daemon.sh start/stop namenode |
启动/停止 DN | hadoop-daemon.sh start/stop datanode |
二 完全分布式
1. 通过VMware克隆两台
2. 配置各自主机IP /etc/sysconfig/network-scripts/ifcfg-ens33
3. 修改主机名 hostnamectl set-hostname 主机名
4. SSH无密码登录 9遍ssh-copy-id 主机名
5. 配置三台主机slaves文件
vi etc/hadoop/slaves
将三台主机名都加进去,加入centos,centos-node1,centos-node2
6. 删除所有主机目录下data与logs文件
cd /opt/module/hadoop-2.8.4
rm -rf data/* logs/*
7. 在centos主节点主机上格式化
hdfs namenode -format
8. 主节点上启动hadoop
start-all.sh
三 安装检测
打开Google浏览器输入
http://centos:50070
或者
http://192.168.52.51:50070