目录

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中新建文件夹,命名为:大数据集群

怎么看自己电脑有没有安装hadoop_linux

2. 克隆

 

怎么看自己电脑有没有安装hadoop_怎么看自己电脑有没有安装hadoop_02

3.同样的操作克隆出:node2和node3

怎么看自己电脑有没有安装hadoop_Hadoop_03

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节点一致。

查看虚拟机本身子网掩码:

怎么看自己电脑有没有安装hadoop_怎么看自己电脑有没有安装hadoop_04

进入 虚拟网络编辑器:

编辑VMnet8:

怎么看自己电脑有没有安装hadoop_Hadoop_05

 确认网关IP是子网IP+2

怎么看自己电脑有没有安装hadoop_怎么看自己电脑有没有安装hadoop_06

如果不是进行修改。

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

在页面下方找到:

怎么看自己电脑有没有安装hadoop_hadoop_07

下载jdk-8u361-linux-x64.tar.gz

怎么看自己电脑有没有安装hadoop_hadoop_08

在弹出的页面中输入Oracle的账户密码即可下载(如无账户,请自行注册,注册是免费的)

2. 登陆Linux系统,切换到root用户

怎么看自己电脑有没有安装hadoop_怎么看自己电脑有没有安装hadoop_09

3. 通过FinalShell,上传下载好的JDK安装包

怎么看自己电脑有没有安装hadoop_linux_10

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

怎么看自己电脑有没有安装hadoop_linux_11

+

怎么看自己电脑有没有安装hadoop_linux_12

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命令查看文件夹内部结构

怎么看自己电脑有没有安装hadoop_大数据_13

怎么看自己电脑有没有安装hadoop_怎么看自己电脑有没有安装hadoop_14

5. 修改配置文件,应用自定义设置

怎么看自己电脑有没有安装hadoop_linux_15

配置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

怎么看自己电脑有没有安装hadoop_hadoop_16

配置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>

怎么看自己电脑有没有安装hadoop_怎么看自己电脑有没有安装hadoop_17


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>

怎么看自己电脑有没有安装hadoop_大数据_18


        

怎么看自己电脑有没有安装hadoop_linux_19

所以应该:

#在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_Hadoop_20

 在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文件系统的管理网页。

怎么看自己电脑有没有安装hadoop_linux_21