最近开始学习大数据的相关知识,要学习大数据就不得不提到Hadoop。
一般来说学习一门新的知识,很多都是先理论再实践
我则不然,先实践,再了解理论
基于centos环境进行搭建,所以需要安装centos7的虚拟机。
分别搭建三台虚拟机:master、slave0、slave1
后面两台都是基于第一台进行克隆。
硬件配置为:
设备 | 值 |
---|---|
硬盘 | 20GB |
内存 | 2GB |
处理器 | 2 |
具体操作参考安装Centos7
先对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
先对master服务器进行配置主机名。
另外两台等后面克隆后进行设置
vi /etc/sysconfig/network
修改为:
# Created by anaconda
NETWORKING=yes
HOSTNAME=master
修改主机名
vi /etc/hostname
填写名称(对应服务器修改各自名称)
master
重新启动该主机,就会发现主机名被修改了。
两台克隆的服务器后续也重复上面的操作进行修改。
修改/etc/hosts文件,配置主机和ip的映射
在原有的内容下面添加以下内容:
192.168.216.128 master
192.168.216.129 slave0
192.168.216.130 slave1
服务器都一样的内容,只需要修改master,两台克隆的服务器通过克隆即可。
先卸载自带的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
查看防火墙状态
systemctl status firewalld.service
systemctl stop firewalld.service
防止服务器重启时防火墙启动
systemctl disable firewalld.service
编辑虚拟机设置
选项,VMware Tools勾选“将客户机时间与主机同步”
从上面配置出来的服务器进行克隆。
注意:克隆前需要关闭被克隆的服务器
设置克隆机的服务器名称和存放位置
点击完成,克隆完毕。
依此克隆出slave0和slave1
对克隆服务器进行配置,依照上面步骤:
2.1 网络配置
2.2 设置主机名
在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
通过http://archive.apache.org/dist/hadoop/common/
下载自己需要的hadoop版本。
我用的是3.1.3版本
将文件下载并放在master服务器的目录下(自己指定,我存在的是/usr/local)
进入对应文件夹
cd /usr/local
解压文件
tar -zxvf hadoop-3.1.3.tar.gz
重命名文件
mv hadoop-3.1.3 hadoop
配置环境变量
在/etc/profile文件中末尾加上
export HADOOP_HOME=/usr/local/hadoop/
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
刷新环境变量
source /etc/profile
检查版本
hadoop version
master | slave0 | slave1 | |
---|---|---|---|
HDFS | NameNode DataNode |
DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager |
NodeManager |
注意:NameNode、SecondaryNameNode、ResourceManager这三个要分开不要配置在同一台虚拟机上
配置文件位于hadoop安装目录下的/etc/hadoop目录
主要需要修改的文件为以下四个:
hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
workers
hadoop运行中所需要的环境变量,例如JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk1.8
- 配置hdfs对应的主机和端口
- 对那个hadopp数据的存放目录
创建存放hadoop数据目录
mkdir /opt/hadoopdata
在
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/opt/hadoopdatavalue>
property>
配置namenode和SecondaryNameNode
在
<property>
<name>dfs.namenode.http-addressname>
<value>master:9870value>
property>
<property>
<name>dfs.namenode.secondary.http-addressname>
<value>slave1:9868value>
property>
在
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>slave0value>
property>
<property>
<name>yarn.nodemanager.env-whitelistname>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOMEvalue>
property>
<property>
<name>yarn.log-aggregation-enablename>
<value>truevalue>
property>
<property>
<name>yarn.log.server.urlname>
<value>http://master:19888/jobhistory/logsvalue>
property>
<property>
<name>yarn.log-aggregation.retain-secondsname>
<value>604800value>
property>
在
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
<property>
<name>mapreduce.jobhistory.addressname>
<value>master:10020value>
property>
<property>
<name>mapreduce.jobhistory.webapp.addressname>
<value>master:19888value>
property>
在配置了
删除原内容,填写集群服务器主机名称
master
slave0
slave1
注意:添加该文件时,内容上下不允许有空行,前后不允许有空格
将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 环境变量配置
第一次启动需要在master节点先格式化NameNode
hdfs namenode -format
在NameNode节点(master)上添加环境变量
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
启动
/usr/local/hadoop/sbin/start-dfs.sh
在ResourceManager节点(slave0)上添加环境变量
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
启动
/usr/local/hadoop//sbin/start-yarn.sh
只有配置了才进行启动。
(mapred-site.xml中配置)
mapred --daemon start historyserver
在各个节点上输入以下命令查看
jps
浏览器通过端口可以查看对应启动的服务
访问
http://master:9870
这里显示在这个位置可以执行一系列操作
访问
http://slave0:8088
这里会显示集群的执行任务