目录
1.克隆Linux虚拟机
1. 在VMware中新建文件夹,命名为:大数据集群
2. 克隆
3.同样的操作克隆出:node2和node3
2.设置虚拟机配置
1.配置固定IP地址
2.配置主机名映射
3.配置ssh免密登录
3.设置JDK环境
1.下载JDK软件:https://www.oracle.com/java/technologies/downloads
2. 登陆Linux系统,切换到root用户
3. 通过FinalShell,上传下载好的JDK安装包
4. 创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/server 内
5. 解压缩JDK安装文件
6. 配置JDK的软链接
7. 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境变量中
8.配置java执行程序的软连接
9.执行验证
10.不要忘记node2和node3配置
4.关闭防火墙和SELinux
5.掌握在VMware虚拟机集群上部署HDFS集群
1.下载Hadoop
2.集群规划
3.上传&解压
4.Hadoop安装包目录结构
5. 修改配置文件,应用自定义设置
6.配置环境变量
6.授权为hadoop用户
若想搭建Hadoop集群需要一些前置准备工作。
1.克隆Linux虚拟机
最好你的内存达到了16GB大小。
准备克隆虚拟机三份,先创建一个新的文件夹。
1. 在VMware中新建文件夹,命名为:大数据集群
2. 克隆
3.同样的操作克隆出:node2和node3
2.设置虚拟机配置
1.配置固定IP地址
先使用ifconfigh查看当前ip 我的为192.168.193.151 然后
开启node1,修改主机名为node1,并修改固定ip为:192.168.193.151,并添加子网掩码,网关,DNS1。
#修改主机名
hostnamectl set-hostname node1
#修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改后完整如下:
与默认差别为BOOTPROTO修改为静态,添加了最下方四行。
不要直接copy,有些配置肯会出错。
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0d7ad579-b7c8-4b92-a94c-00633288d421"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.193.151"
NETMASK="255.255.255.0"
GETEWAY="192.168.193.2"
DNS1="192.168.193.2"
同样的操作启动node2和node3,
修改node2主机名为node2,设置ip为192.168.193.152,网关,子网掩码DNS1与node1节点一致。
修改node3主机名为node3,设置ip为192.168.193.153,网关,子网掩码DNS1与node1节点一致。
查看虚拟机本身子网掩码:
进入 虚拟网络编辑器:
编辑VMnet8:
确认网关IP是子网IP+2
如果不是进行修改。
2.配置主机名映射
1. 在Windows系统中修改hosts(C:\Windows\System32\drivers\etc\hosts)文件,填入如下内容:
192.168.193.151 node1
192.168.193.152 node2
192.168.193.153 node3
如果在本机浏览器直接访问node1将会访问前面的IP
2.在3台Linux的/etc/hosts文件夹中,填写如下(3台都要加)
192.168.193.151 node1
192.168.193.152 node2
192.168.193.153 node3
3.配置ssh免密登录
后续安装的集群化软件,多数需要远程登录以及远程执行命令,我们可以简单起见,配置三台Linux服务器之间的免密码互相SSH登陆
1. 在每一台机器都执行:`ssh-keygen -t rsa -b 4096`,一路回车到底即可。
2. 在每一台机器都执行:
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
3. 执行完毕后,node1、node2、node3之间将完成root用户之间的免密互通.
3.设置JDK环境
1.下载JDK软件:https://www.oracle.com/java/technologies/downloads
在页面下方找到:
下载jdk-8u361-linux-x64.tar.gz
在弹出的页面中输入Oracle的账户密码即可下载(如无账户,请自行注册,注册是免费的)
2. 登陆Linux系统,切换到root用户
3. 通过FinalShell,上传下载好的JDK安装包
4. 创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/server 内
(三个node节点都需要操作)
mkdir -p /export/server
5. 解压缩JDK安装文件
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /export/server
6. 配置JDK的软链接
ln -s /export/server/jdk1.8.0_361 jdk
7. 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境变量中
vim /etc/profile
尾部添加如下:
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin
生效环境变量:
source /etc/profile
8.配置java执行程序的软连接
#1.查看CentOS自带JDK是否已安装
yum list installed | grep java
#2.假使存在自带的jdk,删除centos自带的JDK
yum -y remove java-1.8.0-openjdk*
yum -y remove tzdata-java.noarch
#删除系统自带的Java程序
rm -f /usr/bin/java
#软连接我们自己安装的Java程序
ln -s /export/server/jdk/bin/java /usr/bin/java
9.执行验证
java -version
javac -version
10.不要忘记node2和node3配置
因为建立了ssh通道
直接将文件传输到其他node相同的位置
4.关闭防火墙和SELinux
集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。
Linux有一个安全模块:SELinux,用以限制用户和程序的相关权限,来确保系统的安全稳定。
在当前,我们只需要关闭SELinux功能,避免导致后面的软件运行出现问题即可。
systemctl disable firewalld
vim /etc/sysconfig/selinux
#将第七行的SELINUX=enforcing改为=disable
#重启虚拟机
init 6
5.掌握在VMware虚拟机集群上部署HDFS集群
1.下载Hadoop
官方网址:https://hadoop.apache.org。
+
2.集群规划
之前我们克隆了3个节点将其配置如下:
节点 | CPU | 内存 |
node1 | 1核心 | 4GB |
node2 | 1核心 | 2GB |
node3 | 1核心 | 2GB |
Hadoop HDFS的角色包含:
1•NameNode,主节点管理者
2•DataNode,从节点工作者
3•SecondaryNameNode,主节点辅助
节点 | 服务 |
node1 | NameNode、DataNode、SecondaryNameNode |
node2 | DataNode |
node3 | DataNode |
3.上传&解压
1. 上传Hadoop安装包到node1节点中
2. 解压缩安装包到/export/server/中
tar -zxvf hadoop-3.3.4.tar.gz -C /export/server
3. 构建软链接
cd /export/server
ln -s /export/server/hadoop-3.3.4 hadoop
4. 进入hadoop安装包内
cd hadoop
4.Hadoop安装包目录结构
cd 进入Hadoop安装包内,通过ls -l命令查看文件夹内部结构
5. 修改配置文件,应用自定义设置
配置workers文件:
# 进入配置文件目录
cd etc/hadoop
# 编辑workers文件
vim workers
# 填入如下内容
node1
node2
node3
填入的node1、node2、node3表明集群记录了三个从节点(DataNode)
配置hadoop-env.sh文件:
# 填入如下内容
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
配置core-site.xml文件:
在文件内部填入如下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
hdfs://node1:8020为整个 HDFS 内部的通讯地址,应用协议为 hdfs:// ( Hadoop 内置协议)
表明 DataNode 将和 node1 的 8020 端口通讯, node1 是 NameNode 所在机器
此配置固定了 node1 必须启动 NameNode 进程
配置 hdfs-site.xml 文件:
# 在文件内部填入如下内容
<configuration>
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/nn</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dn</value>
</property>
</configuration>
所以应该:
#在node1节点:
mkdir -p /data/nn
mkdir /data/dn
#在node2和node3节点:
mkdir -p /data/dn
目前,已经基本完成Hadoop的配置操作,可以从node1将hadoop安装文件夹远程复制到node2、node3。
分发:
# 在node1执行如下命令
cd /export/server
scp -r hadoop-3.3.4 node2:`pwd`/
scp -r hadoop-3.3.4 node3:`pwd`/
在node2执行,为hadoop配置软链接:
# 在node2执行如下命令
ln -s /export/server/hadoop-3.3.4 /export/server/hadoop
在node3执行,为hadoop配置软链接:
# 在node3执行如下命令
ln -s /export/server/hadoop-3.3.4 /export/server/hadoop
6.配置环境变量
为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中,方便后续使用
在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置一下环境变量
1.编辑node1
vim /etc/profile
# 在/etc/profile文件底部追加如下内容
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2. 在node2和node3配置同样的环境变量
6.授权为hadoop用户
hadoop部署的准备工作基本完成
为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务
所以,现在需要对文件权限进行授权。
ps:请确保已经提前创建好了hadoop用户,并配置好了hadoop用户之间的免密登录(模拟root用户自己进行)
# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export
查看HDFS WEBUI
启动完成后,可以在浏览器打开:
http://node1:9870,即可查看到hdfs文件系统的管理网页。