最近开始学习大数据的相关知识,要学习大数据就不得不提到Hadoop。
一般来说学习一门新的知识,很多都是先理论再实践
我则不然,先实践,再了解理论
目录
- 一、VM网络设置
- 二、安装Centos7
- 2.1 网络配置
- 2.2 设置主机名
- 2.3 hosts设置
- 2.4 安装JDK
- 2.5 关闭防火墙
- 2.6 同步时间
- 2.7 克隆服务器
- 2.8 免密钥登陆
- 三、安装hadoop
- 3.1 下载hadoop
- 3.2 解压
- 3.3 环境变量配置
- 3.4 检查
- 四、部署hadoop
- 4.1 集群部署规划
- 4.2 环境配置
- 4.2.1 hadoop-env.sh
- 4.2.1 core-site.xml
- 4.2.2 hdfs-site.xml
- 4.2.3 yarn-site.xml
- 4.2.4 mapred-site.xml
- 4.2.5 workers
- 4.3 复制hadoop
- 五、启动集群
- 5.1 格式化NameNode
- 5.2 启动HDFS
- 5.3 启动YARN
- 5.4 启动历史服务器
- 5.5 查看集群状态
- 六、Web端查看
- 6.1 HDFS
- 6.2 YARN
- 6.3 历史服务器
一、VM网络设置
打开控制面板
如下配置
设置虚拟机虚拟网络编辑器
二、安装Centos7
基于centos环境进行搭建,所以需要安装centos7的虚拟机。
分别搭建三台虚拟机:master、slave0、slave1
后面两台都是基于第一台进行克隆。
硬件配置为:
设备 | 值 |
---|---|
硬盘 | 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 集群部署规划
master | slave0 | slave1 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager 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
可在该页面查看历史日志