学习Hadoop(一)——搭建hadoop集群

最近开始学习大数据的相关知识,要学习大数据就不得不提到Hadoop。
一般来说学习一门新的知识,很多都是先理论再实践
在这里插入图片描述
我则不然,先实践,再了解理论
在这里插入图片描述

一、VM网络设置

打开控制面板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下配置
在这里插入图片描述
设置虚拟机虚拟网络编辑器
在这里插入图片描述
在这里插入图片描述

二、安装Centos7

基于centos环境进行搭建,所以需要安装centos7的虚拟机。

分别搭建三台虚拟机:masterslave0slave1
后面两台都是基于第一台进行克隆。
硬件配置为:

设备
硬盘20GB
内存2GB
处理器2

具体操作参考安装Centos7

2.1 网络配置

先对master服务器进行配置静态ip。
另外两台等后面克隆后进行设置

vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO设置为static

BOOTPROTO="static"

添加ip信息

IPADDR="192.168.216.128"
NETMASK="255.255.255.0"
GATEWAY="192.168.216.2"
DNS1="8.8.8.8"
DNS2="8.8.8.4"

在这里插入图片描述
重启网路

service network restart

在这里插入图片描述
这个说明重启成功
当前服务器的ip为:192.168.216.128
后续两台克隆出来的服务器依照上面的步骤设置ip:

slave0:192.168.216.129
slave1:192.168.216.130

2.2 设置主机名

先对master服务器进行配置主机名。
另外两台等后面克隆后进行设置

vi /etc/sysconfig/network

修改为:

# Created by anaconda
NETWORKING=yes
HOSTNAME=master

修改主机名

vi /etc/hostname

填写名称(对应服务器修改各自名称)

master

在这里插入图片描述
重新启动该主机,就会发现主机名被修改了。
两台克隆的服务器后续也重复上面的操作进行修改。

2.3 hosts设置

修改/etc/hosts文件,配置主机和ip的映射
在原有的内容下面添加以下内容:

192.168.216.128   master
192.168.216.129   slave0
192.168.216.130   slave1

服务器都一样的内容,只需要修改master,两台克隆的服务器通过克隆即可。

2.4 安装JDK

先卸载自带的openjdk

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

下载jdk,我这里装的是jdk1.8。
进入官网:https://www.oracle.com/java/technologies/downloads
在这里插入图片描述
将下载后的文件放到/usr/local/java

cd /usr/local/java
tar zxvf 下载包的包名
mv 解压后的包名 jdk1.8

配置环境变量
在/etc/profile文件中末尾加上

export JAVA_HOME=/usr/local/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib

刷新环境变量

source /etc/profile

查看java版本

java -version

显示java版本,安装成功
在这里插入图片描述

2.5 关闭防火墙

查看防火墙状态

systemctl status firewalld.service

如下标识防火墙处于开启状态
在这里插入图片描述
关闭防火墙

systemctl stop firewalld.service

防止服务器重启时防火墙启动

systemctl disable firewalld.service

2.6 同步时间

编辑虚拟机设置
在这里插入图片描述
选项,VMware Tools勾选“将客户机时间与主机同步
在这里插入图片描述

2.7 克隆服务器

从上面配置出来的服务器进行克隆。

注意:克隆前需要关闭被克隆的服务器

鼠标右键点击服务器
管理→克隆
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
设置克隆机的服务器名称和存放位置
在这里插入图片描述
点击完成,克隆完毕。
依此克隆出slave0和slave1

对克隆服务器进行配置,依照上面步骤:

2.1 网络配置
2.2 设置主机名

2.8 免密钥登陆

在master服务器输入下面命令

ssh-keygen -t rsa

进入ssh文件夹

cd ~/.ssh

把公钥文件发送到自己和其它服务器。
以发给自己为例

ssh-copy-id -i id_rsa.pub root@master

输入yes,然后输入目标服务器的root密码
成功后,输入以下命令

ssh root@master

依此,也设置master免密登录slave0、slave1

三、安装hadoop

3.1 下载hadoop

通过http://archive.apache.org/dist/hadoop/common/
下载自己需要的hadoop版本。
我用的是3.1.3版本
在这里插入图片描述
将文件下载并放在master服务器的目录下(自己指定,我存在的是/usr/local)

3.2 解压

进入对应文件夹

cd /usr/local

解压文件

tar -zxvf hadoop-3.1.3.tar.gz

重命名文件

mv hadoop-3.1.3 hadoop

3.3 环境变量配置

配置环境变量
在/etc/profile文件中末尾加上

export HADOOP_HOME=/usr/local/hadoop/
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

刷新环境变量

source /etc/profile

3.4 检查

检查版本

hadoop version

在这里插入图片描述

四、部署hadoop

4.1 集群部署规划

masterslave0slave1
HDFSNameNode
DataNode
DataNodeSecondaryNameNode
DataNode
YARNNodeManagerResourceManager
NodeManager
NodeManager

注意:NameNode、SecondaryNameNode、ResourceManager这三个要分开不要配置在同一台虚拟机上

4.2 环境配置

配置文件位于hadoop安装目录下的/etc/hadoop目录
主要需要修改的文件为以下四个:

hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
workers

4.2.1 hadoop-env.sh

hadoop运行中所需要的环境变量,例如JAVA_HOME

export JAVA_HOME=/usr/local/java/jdk1.8

4.2.1 core-site.xml

  • 配置hdfs对应的主机和端口
  • 对那个hadopp数据的存放目录

创建存放hadoop数据目录

mkdir /opt/hadoopdata

在<configuration></configuration>标签内填充以下内容

	<property>
	     <name>fs.defaultFS</name>
	     <value>hdfs://master:9000</value>
	     <!-- 以上ip地址或主机名要按实际情况修改 -->
	</property>
	<property>
	    <name>hadoop.tmp.dir</name>
	    <value>/opt/hadoopdata</value>
	</property>

4.2.2 hdfs-site.xml

配置namenode和SecondaryNameNode

在<configuration></configuration>标签内填充以下内容

	<property>
	    <name>dfs.namenode.http-address</name>
	    <value>master:9870</value>
	</property>
	<property>
	    <name>dfs.namenode.secondary.http-address</name>
	    <value>slave1:9868</value>
	</property>

4.2.3 yarn-site.xml

在<configuration></configuration>标签内填充以下内容

	<!-- 指定MR走shuffle -->
	<property>
	    <name>yarn.nodemanager.aux-services</name>
	    <value>mapreduce_shuffle</value>
	</property>
	
	<!-- 指定ResourceManager的地址-->
	<property>
	    <name>yarn.resourcemanager.hostname</name>
	    <value>slave0</value>
	</property>
	
	<!-- 环境变量的继承 -->
	<property>
	    <name>yarn.nodemanager.env-whitelist</name>
	    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
	</property>
	
	<!-- 如果要程序的运行日志信息上传到HDFS系统上,可配置日志聚集(选择配置) -->
	
	<!-- 开启日志聚集功能 -->
	<property>
		<name>yarn.log-aggregation-enable</name>
		<value>true</value>
	</property>
	<!-- 设置日志聚集服务器地址 -->
	<property>  
		<name>yarn.log.server.url</name>  
		<value>http://master:19888/jobhistory/logs</value>
	</property>
	<!-- 设置日志保留时间为7天 -->
	<property>
		<name>yarn.log-aggregation.retain-seconds</name>
		<value>604800</value>
	</property>

4.2.4 mapred-site.xml

在<configuration></configuration>标签内填充以下内容

    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
 
	<!-- 如果要看程序的历史运行情况,可以配置历史服务器(选择配置) -->
	 
	<!-- 历史服务器端地址 -->
	<property>
	    <name>mapreduce.jobhistory.address</name>
	    <value>master:10020</value>
	</property>
	 
	<!-- 历史服务器web端地址 -->
	<property>
	    <name>mapreduce.jobhistory.webapp.address</name>
	    <value>master:19888</value>
	</property>

在配置了

4.2.5 workers

删除原内容,填写集群服务器主机名称

master
slave0
slave1

注意:添加该文件时,内容上下不允许有空行,前后不允许有空格

4.3 复制hadoop

将master的hadoop远程发送给slave0和slave1两台服务器

scp -r /usr/local/hadoop root@slave0:/usr/local
scp -r /usr/local/hadoop root@slave1:/usr/local

给两台服务器的环境变量加上hadoop
参考 3.3 环境变量配置

五、启动集群

5.1 格式化NameNode

第一次启动需要在master节点先格式化NameNode

hdfs namenode -format

在这里插入图片描述

5.2 启动HDFS

NameNode节点(master)上添加环境变量

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

启动

/usr/local/hadoop/sbin/start-dfs.sh 

在这里插入图片描述

5.3 启动YARN

ResourceManager节点(slave0)上添加环境变量

export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

启动

/usr/local/hadoop//sbin/start-yarn.sh 

在这里插入图片描述

5.4 启动历史服务器

只有配置了才进行启动。
(mapred-site.xml中配置)

mapred --daemon start historyserver

5.5 查看集群状态

在各个节点上输入以下命令查看

jps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Web端查看

浏览器通过端口可以查看对应启动的服务

6.1 HDFS

访问
http://master:9870
在这里插入图片描述
这里显示在这个位置可以执行一系列操作

6.2 YARN

访问
http://slave0:8088
在这里插入图片描述
这里会显示集群的执行任务

6.3 历史服务器

访问
http://master:19888/jobhistory
在这里插入图片描述
可在该页面查看历史日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值