【教程】Hadoop完全分布式环境搭建全过程

这篇具有很好参考价值的文章主要介绍了【教程】Hadoop完全分布式环境搭建全过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

  • 保姆级入门教程:图片讲解 + 各种问题解决方案
  • 集群服务器:hadoop102、hadoop103和hadoop104
  • 虚拟机版本:CentOS7-1804
  • 资源分享处(文章最后)提供CentOS7和Hadoop各组件压缩包(也可以自行下载,要注意版本兼容的问题),有需要自取~

内容&流程

1, 模板虚拟机准备
2, 克隆三台虚拟机,作为完全分布式集群
3, Hadoop完全分布式环境搭建
4, ZooKeeper & HBase & Maven & IDEA安装

一、模板虚拟机准备

安装模板虚拟机

注:下方未出现的步骤,选择默认选项即可

1,选择 - 自定义(高级)

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

2,稍后安装操作系统(也可以选择直接安装,没有太大区别)

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

3,虚拟机名称只作标识该虚拟机的作用,自定义即可

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

4,处理器数量1,内核数量2

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

5, 内存4G & 硬盘50G

(此虚拟机只为演示Hadoop完全分布式环境搭建过程所用,4G内存基本够用)

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

硬盘50G
(安装内容包含JDK、Hadoop、ZooKeeper、HBase、Maven和IDEA,50G够用)

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

6,自定义硬件

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper
6.1 选择ISO映像文件

选择稍后安装的要在这一步选择自定义硬件,添加ISO映像文件

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

6.2 USB兼容性 - USB 3.1

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

7,开启此虚拟机,选择install centos 7(对应选项呈白色)

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

8,语言 - 中文 - 简体中文

(在操作体验上,与选择英语差别不大,建议英语不太好的童靴选择中文

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

进入安装信息摘要界面

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

9,日期和时间:亚洲-上海

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

10,软件选择:只选择GNOME桌面

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

11,安装位置:自动配置分区

选择自动配置分区即可
(若想要手动分区,则点击 我要配置分区 - 完成,就会出现手动分区的界面)

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

12,网络和主机名

12.1 选择配置

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

12.2 查看个人虚拟机的相关信息

  • 虚拟机 - 编辑选项卡 - 虚拟网络编辑器
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

  • 选择NAT模式
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

  • NAT设置 - 查看子网掩码和网关
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

  • DHCP设置 - 查看IP地址范围

    • 之后在配置静态IP地址时,所有的IP地址都必须在这个范围之内
      hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper
  • 回到配置界面 - 选择IPv4配置 - 点击 Add

    • 根据前面的步骤,地址填IP地址范围内的地址,子网掩码和网关照填即可hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

    • 附加DNS服务器:填入与网关IP相同的地址
      hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

  • 点击保存 - 回到配置界面 - 打开网络
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

☭问题1:打开网络后出现DNS1或者无法连接网络

出现DNS1:检查网关地址是否正确
无法连接网络:检查IP地址是否在起始和终止的IP地址范围之内

  • 点击完成
13, 开始安装

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

将出现以下界面:

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

14, 设置ROOT密码

建议密码不要太复杂

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

15, 创建用户
  • 创建一个普通用户,名称可自定义(我创建的用户名称是hadoop,之后用此名称指代普通用户)
  • 目的: 在搭建项目的过程中,所有的项目有关的操作都由普通用户来执行,以此与超级用户(root用户)作区别,来维护系统的安全性(防止一些涉及到系统内核的操作被执行)。
  • 建议密码不要太复杂

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

模板虚拟机环境准备

1, 配置静态网络

Q: 为什么使用静态IP地址?
A: 在使用虚拟机的时候,默认情况下使用的DHCP协议分配的动态IP地址,使得每次打开虚拟机后当前的IP地址都会发生变化,这样不方便管理。为了能够给当前虚拟机设置一个静态IP地址,方便后期使用XShell连接工具进行连接,以及配置各种服务。所以,我们需要为虚拟机设置一个静态IP地址。

1.1 打开终端,查看网卡名称 - 我的网卡名称为ens33,如下图所示

[root@bogon ~]$ ip addr

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

1.2 修改网卡配置文件(记得后面要改成自己的网卡名称)

[root@bogon ~]$ vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 修改以下选项
BOOTPROTO='dhcp' -> 'static'
ONBOOT='no' -> 'yes'
  • 如果在前面安装过程中,设置 网络和主机名 没有出错,那下列选项应该没有问题
IPADDR='要设置的IP地址'
PREFIX='子网掩码'
GATEWAY='网关IP'
DNS1='网关IP'


1.3 重启网络

[root@bogon ~]$ service network restart
2,设置hostname
  • 设置主机名很重要,我设置的模板机的主机名为hadoop100,之后集群服务器中的主机名为hadoop102、hadoop103和hadoop104
  • 下面的命令按自己的主机名来
[root@bogon ~]$ hostnamectl set-hostname 主机名

例如:hostnamectl set-hostname hadoop100


2.1 查看hostname

[root@bogon ~]$ cat /etc/hostname
hadoop100


2.2 编辑hosts文件

目的: 修改/etc/hosts 文件,该文件主要用于映射 IP 地址和域名之间的连接

[root@bogon ~]$ vi /etc/hosts
  • 在第二行添加:原本第二行如果有内容删除即可;
  • 之后保存退出
IP地址 主机名

例如:
我设置的IP地址为xxx.xxx.xxx.130,那么我要添加的内容就是
xxx.xxx.xxx.130 hadoop100

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

☭问题2:主机名变为bogon如何解决?
# 执行su命令
[root@bogon ~]$ su
[root@localhost ~]$ 
3,SSH免密登录
# hadoop 普通用户
[root@localhost ~]$ su hadoop

# 第一次配置免密登录,执行下面这个命令后点三次回车即可
[hadoop@localhost root]$ ssh-keygen
[hadoop@localhost root]$ ssh-copy-id localhost
[hadoop@localhost root]$ ssh localhost
Last login: Web Feb 8 21:43:26 2023
[hadoop@localhost ~]$ 

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

4,安装工具包
[root@localhost ~]$ yum install -y epel-release
...
已安装:
 epel-release.noarch 0:7-11

完毕!

[root@localhost ~]$ yum install -y net-tools
[root@localhost ~]$ yum install -y vim
☭问题3:报错14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误”

CentOS7下报错14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误”-解决方法

5,关闭防火墙,并设置关闭防火墙开机自启
[root@localhost ~]$ systemctl stop firewalld
[root@localhost ~]$ systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

# 查看防火墙是否已关闭
[root@localhost ~]$ systemctl list-unit-files |grep firewalld
firewalld.service disabled
6,修改/etc/sudoers文件,使hadoop用户(普通用户)具有 root 权限,方便后期加 sudo 执行 root 权限的命令
[root@localhost ~]$ vim /etc/sudoers

在%wheel 这行下面添加一行,其他为文件本身内容,不要改动

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
hadoop ALL=(ALL) NOPASSWD:ALL
7,在/opt 目录下创建 module、software 文件夹

7.1 module文件夹存放解压后的文件,software文件夹存放待解压的压缩包

[root@localhost ~]$ mkdir /opt/module /opt/software


7.2 修改两个目录的所属组和所有者均为hadoop用户

[root@localhost ~]$ chown -R hadoop:hadoop /opt/module
[root@localhost ~]$ chown -R hadoop:hadoop /opt/software


7.3 查看 module、software 文件夹的所有者和所属组

[root@localhost ~]$ cd /opt/
[root@localhost opt]$ ll
总用量 0
drwxr-xr-x. 2 hadoop hadoop 6 2月 8 21:53 module
drwxr-xr-x. 2 root root     6 9月 7 2017 rh
drwxr-xr-x. 2 hadoop hadoop 6 2月 8 12:53 software
8,卸载虚拟机自带JDK并重启虚拟机
[root@localhost opt]$ rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
[root@localhost opt]$ reboot

8.1 查看JDK版本(看是否卸载干净)

[root@hadoop100 ~]$ java -version
bash: java: 未找到命令...

二、克隆虚拟机准备

使用VMware自带的克隆功能,利用模板虚拟机克隆三台虚拟机:

主机名分别为hadoop102、hadoop103和hadoop104

IP地址为xxx.xxx.xxx.132、xxx.xxx.xxx.133和xxx.xxx.xxx.134(根据自己虚拟机的IP地址范围配置,下面有具体配置过程)

注意:克隆时,要先关闭hadoop100

1,修改克隆机 IP

以下过程以hadoop102为例,三台虚拟机都需要做

1.1 修改网卡配置文件(记得后面要改成自己的网卡名称)

[root@hadoop100 ~]$ vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 修改以下选项
    • 附:Linux中为网卡生成UUID
UUID='原来的UUID' -> '新生成的UUID'
IPADDR='原来的IP地址' -> '要设置的IP地址'


1.2 重启网络

[root@hadoop100 ~]$ service network restart

2,修改克隆机主机名

以下过程以hadoop102为例,三台虚拟机都需要做

[root@hadoop100 ~]$ vim /etc/hostname
hadoop102

3,修改/etc/hosts文件

以下过程以hadoop102为例,三台虚拟机都需要做

[root@hadoop100 ~]$ vim /etc/hosts

3.1 添加如下内容

依然是IP地址要修改成你自己的:
尤其是hadoop102~104,对应的IP地址为你要设置的IP

192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108

4,重启虚拟机

以下过程以hadoop102为例,三台虚拟机都需要做

[root@hadoop100 ~]$ reboot

4.1 重启之后,打开终端发现主机名已经修改成功

[root@hadoop102 ~]$

5,修改 windows 的主机映射文件

5.1 如果操作系统是window7,可以直接修改

  • 进入C:\Windows\System32\drivers\etc 路径
  • 打开hosts 文件并添加如下内容,然后保存
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108


5.2 如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可

  • 进入C:\Windows\System32\drivers\etc 路径
  • 拷贝hosts 文件到桌面
  • 打开桌面 hosts 文件并添加同上内容
  • 将桌面 hosts 文件覆盖 C:\Windows\System32\drivers\etc 路径 hosts 文件

修改完毕后,就可以在windows环境下使用xshell连接虚拟机了,操作会方便很多哦~
附:XShell免费版的安装配置教程以及使用教程(超级详细、保姆级)

6,在hadoop102上安装JDK

6.1 首先确保虚拟机自带JDK卸载干净

[root@hadoop102 ~]$ java -version
bash: java: 未找到命令...


6.2 解压JDK到/opt/module

  • 提示1:xshell中可以使用rz命令将本地文件上传至虚拟机,或者建立共享文件夹也有同样效果。
  • 提示2:文章末尾提供JDK8等各组件的安装包,需要自取~
  • 进入/opt/software文件夹,查看压缩包名称
[root@hadoop102 ~]$ cd /opt/software
[root@hadoop102 software]$ ls

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

  • 解压JDK压缩包
[root@hadoop102 software]$ su hadoop
[hadoop@hadoop102 software]$ sudo tar -zxvf jdk-8u211-linux-x64.tar.gz -C /opt/module


6.3 修改JDK安装包名称

[hadoop@hadoop102 software]$ cd ../module
[hadoop@hadoop102 module]$ ls
jdk1.8.0_211

[hadoop@hadoop102 module]$ mv jdk1.8.0_211 jdk
[hadoop@hadoop102 module]$ ls
jdk


6.4 配置 JDK 环境变量

[hadoop@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
  • 添加以下内容:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk
export PATH=$PATH:$JAVA_HOME/bin
  • 刷新shell环境,让环境变量生效
[hadoop@hadoop102 module]$ source /etc/profile
  • 查看JDK版本信息
[hadoop@hadoop102 module]$ java -version

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

☭问题4:执行 source /etc/profile命令时,报错:bash: #: 未找到命令

首先再仔细检查一下 /etc/profile.d/my_env.sh 文件,尤其是注释前面的 # 有没有省略,以及HOME目录有没有配错。

7,在hadoop102安装Hadoop

7.1 进入/opt/software文件夹,解压Hadoop到/opt/module

[hadoop@hadoop102 software]$ sudo tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /opt/module


7.2 修改Hadoop安装包名称

[hadoop@hadoop102 module]$ ls
hadoop-2.6.0-cdh5.14.2 jdk

[hadoop@hadoop102 module]$ mv hadoop-2.6.0-cdh5.14.2 hadoop
[hadoop@hadoop102 module]$ ls
hadoop jdk

# 确保hadoop用户具有操作module目录下文件的权限
[hadoop@hadoop102 module]$ cd ..
[hadoop@hadoop102 opt]$ chown -R hadoop:hadoop module


7.3 将 Hadoop 添加到环境变量

[hadoop@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
  • 添加以下内容:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  • 刷新shell环境,让环境变量生效
[hadoop@hadoop102 module]$ source /etc/profile
  • 查看Hadoop版本信息
[hadoop@hadoop102 module]$ hadoop version

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

三、完全分布式环境部署

1,本地测试

里面有些步骤与后续内容相关,尽量不要跳过

#创建hello.txt文件,用来测试hadoop自带的wordcount程序
[hadoop@hadoop102 module]$ mkdir /hadoop/wcinput
[hadoop@hadoop102 module]$ cd /hadoop/wcinput
[hadoop@hadoop102 wcinput]$ vim hello.txt

1.1 在hello.txt文件中填入任意内容即可,举例:

hello world
hello java
I'm MOSS


1.2 运行wordcount程序

注:在$HADOOP_HOME/share/hadoop/mapreduce/目录下找对应jar包

[hadoop@hadoop102 hadoop]$ pwd
/opt/module/hadoop

[hadoop@hadoop102 hadoop]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount wcinput wcoutput
[hadoop@hadoop102 hadoop]$ cat wcoutput/part-r-00000

2,编写集群分发脚本 xsync

2.1 执行以下命令同步jdk和hadoop文件到hadoop103和hadoop104,顺便测试scp和rsync命令

注意执行各命令的服务器

[hadoop@hadoop102 hadoop]$ scp -r /opt/module/jdk hadoop@hadoop103:/opt/module

[hadoop@hadoop103 hadoop]$ scp -r hadoop@hadoop102:/opt/module/hadoop /opt/module/
[hadoop@hadoop103 hadoop]$ scp -r hadoop@hadoop102:/opt/module/* hadoop@hadoop104:/opt/module

# 在hadoop103上删除wcinput目录,执行rsync同步命令后,hadoop103上wcinput目录恢复
[hadoop@hadoop103 hadoop]$ rm -rf wcinput/
[hadoop@hadoop102 opt]$ rsync -av hadoop/ hadoop@hadoop103:/opt/module/hadoop/


2.2 编写xsync脚本

  • 期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径):
[hadoop@hadoop102 opt]$ echo $PATH
[hadoop@hadoop102 opt]$ cd /home/hadoop
[hadoop@hadoop102 ~]$ mkdir bin
  • 将/home/hadoop/bin目录添加到全局环境变量中
[hadoop@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
  • 添加以下内容:
#XSYNC_HOME
export XSYNC_HOME=/home/hadoop
export PATH=$PATH:$XSYNC_HOME/bin
  • 刷新shell环境,让环境变量生效
[hadoop@hadoop102 ~]$ source /etc/profile

# 查看发现全局环境变量中已有/home/hadoop/bin目录
[hadoop@hadoop102 ~]$ echo $PATH
  • 在/home/hadoop/bin目录下编写xsync脚本
[hadoop@hadoop102 ~]$ cd bin
[hadoop@hadoop102 bin]$ vim xsync
  • 在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
 echo ==================== $host ====================
 #3. 遍历所有目录,挨个发送
 for file in $@
 do
 #4. 判断文件是否存在
 if [ -e $file ]
 then
 #5. 获取父目录
 pdir=$(cd -P $(dirname $file); pwd)
 #6. 获取当前文件的名称
 fname=$(basename $file)
 ssh $host "mkdir -p $pdir"
 rsync -av $pdir/$fname $host:$pdir
 else
 echo $file does not exists!
 fi
 done
done


2.3 修改脚本 xsync 具有执行权限

[hadoop@hadoop102 bin]$ chmod +x xsync


2.4 测试脚本

[hadoop@hadoop102 bin]$ xsync /home/hadoop/bin


2.5 同步环境变量配置
注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。

[hadoop@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh


2.6 让环境变量生效

[hadoop@hadoop103 bin]$ source /etc/profile
[hadoop@hadoop104 bin]$ source /etc/profile

3,ssh免密登录

3.1 生成公钥和私钥

[hadoop@hadoop102 ~]$ cd /home/hadoop/.ssh
[hadoop@hadoop102 .ssh]$ ssh-keygen -t rsa


3.2 将公钥拷贝到要免密登录的目标机器上

[hadoop@hadoop102 .ssh]$ ssh-copy-id hadoop102
[hadoop@hadoop102 .ssh]$ ssh-copy-id hadoop103
[hadoop@hadoop102 .ssh]$ ssh-copy-id hadoop104

注意:

  • 还需要在 hadoop103 上采用 hadoop 账号配置一下无密登录到 hadoop102、hadoop103、 hadoop104 服务器上;
  • 还需要在 hadoop104 上采用 hadoop 账号配置一下无密登录到 hadoop102、hadoop103、 hadoop104 服务器上;
  • 还需要在 hadoop102 上采用 root 账号,配置一下无密登录到 hadoop102、hadoop103、hadoop104。

    接下来就可以通过ssh 主机名命令免密登录到别的服务器了~
    以下为测试:
[hadoop@hadoop102 .ssh]$ ssh hadoop103
Last login: Tue Feb 14 11:57:09 2023 from hadoop102

[hadoop@hadoop103 ~]$ pwd
/home/hadoop
[hadoop@hadoop103 ~]$ exit
登出
Connection to hadoop103 closed.
[hadoop@hadoop102 .ssh]$ 

4,集群配置

4.1 集群部署规划

  • 元数据节点、资源管理器和从元数据节点分别安装在三台服务器上
  • 数据节点和节点管理器在三台服务器上均安装

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

4.2 配置集群

  • 核心配置文件配置 core-site.xml
[hadoop@hadoop102 .ssh]$ cd $HADOOP_HOME/etc/hadoop
[hadoop@hadoop102 hadoop]$ vim core-site.xml
  • core-site.xml修改内容如下:

注意这个hadoop数据存储目录哦,如果没有指定的话,hadoop会在HOME目录下生成一个tmp目录,现在我们指定了,就变成 /opt/module/hadoop/data目录

所以如果在进行hadoop的格式化之前要删除的tmp目录和logs目录,就变成了data目录和logs目录了。

附:如何重新格式化Hadoop文件系统

<configuration>
    <!-- 指定 NameNode 的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
    </property>
    <!-- 指定 hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data</value>
    </property>
    <!-- 配置 HDFS 网页登录使用的静态用户为 hadoop -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>
    </property>
</configuration>
  • HDFS 配置文件-配置 hdfs-site.xml
[hadoop@hadoop102 hadoop]$ vim hdfs-site.xml
  • hdfs-site.xml修改内容如下:
<configuration>
    <!-- nn web 端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
    <!-- 2nn web 端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
</configuration>
  • YARN 配置文件-配置 yarn-site.xml
[hadoop@hadoop102 hadoop]$ vim yarn-site.xml
  • yarn-site.xml修改内容如下:
<configuration>
    <!-- 指定 MR 走 shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定 ResourceManager 的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
    </property>
    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
            NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
            RED_HOME</value>
    </property>
</configuration>
  • MapReduce 配置文件-配置 mapred-site.xml
[hadoop@hadoop102 hadoop]$ vim mapred-site.xml
  • mapred-site.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 指定 MapReduce 程序运行在 Yarn 上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>


4.3 在集群上分发配置好的 Hadoop 配置文件

[hadoop@hadoop102 hadoop]$ xsync /opt/module/hadoop/etc/hadoop/


4.4 去103 和 104上查看文件分发情况

[hadoop@hadoop103 ~]$ cat /opt/module/hadoop/etc/hadoop/core-site.xml
[hadoop@hadoop104 ~]$ cat /opt/module/hadoop/etc/hadoop/core-site.xml

5,群起集群

5.1 配置 slaves(hadoop3.0之后版本改为workers)

[hadoop@hadoop102 hadoop]$ vim /opt/module/hadoop/etc/hadoop/slaves
  • 文件内容如下:(原本的内容要删除)
hadoop102
hadoop103
hadoop104
  • 同步所有节点配置文件:
[hadoop@hadoop102 hadoop]$ xsync /opt/module/hadoop/etc


5.2 启动集群
注意:如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode

[hadoop@hadoop102 hadoop]$ hdfs namenode -format
  • 启动HDFS:
[hadoop@hadoop102 hadoop]$ start-dfs.sh
  • 在配置了 ResourceManager 的节点(hadoop103)启动 YARN:
[hadoop@hadoop103 hadoop]$ start-yarn.sh

6,配置历史服务器

  • 目的: 为了查看程序的历史运行情况
  • Hadoop自带了一个历史服务器,可以通过历史服务器在web端查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息
  • 所以修改mapreduce的配置文件以配置历史服务器

6.1 配置 mapred-site.xml

[hadoop@hadoop102 hadoop]$ vim mapred-site.xml 
  • 在该文件里面增加如下配置:
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop102:10020</value>
    </property>
    <!-- 历史服务器 web 端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop102:19888</value>
    </property>


6.2 分发配置

[hadoop@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml


6.3 在 hadoop102启动历史服务器

在hadoop2.0和hadoop3.0上,启动和终止历史服务器的命令有区别,以下为2.0版本
附:hadoop3.x集群:配置、启动历史服务(history server,端口19888)

[hadoop@hadoop102 hadoop]$ mr-jobhistory-daemon.sh start historyserver


6.4 查看历史服务器是否启动

[hadoop@hadoop102 hadoop]$ jps 

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

7,配置日志的聚集

  • 目的: 可以方便的查看到程序运行详情,方便开发调试(在102的HDFS上)

7.1 配置 yarn-site.xml

[hadoopu@hadoop102 hadoop]$ vim yarn-site.xml 
  • 在该文件里面增加如下配置
    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop102:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为 7 天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>


7.2 分发配置

[hadoop@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml


7.3 关闭 NodeManager 、ResourceManager和 HistoryServer

[hadoop@hadoop103 hadoop]$ stop-yarn.sh
[hadoop@hadoop102 hadoop]$ mr-jobhistory-daemon.sh stop historyserver  


7.4 启动 NodeManager 、ResourceManage 和 HistoryServer

[hadoop@hadoop103 hadoop]$ start-yarn.sh
[hadoop@hadoop102 hadoop]$ mr-jobhistory-daemon.sh start historyserver


7.5 测试

  • 上传hello.txt文件
[hadoop@hadoop102 hadoop]$ pwd
/opt/module/hadoop
[hadoop@hadoop102 hadoop]$ hadoop fs -mkdir /input
[hadoop@hadoop102 hadoop]$ hadoop fs -put wcinput/hello.txt /input
  • 执行 WordCount 程序
[hadoop@hadoop102 hadoop]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /input /output

# 查看运行结果
[hadoop@hadoop102 hadoop]$ hadoop fs -text /out*/p*

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

7.6 查看日志

  • 历史服务器地址:地址
  • 历史任务列表
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper
  • 查看任务运行日志
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper
  • 运行日志详情
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

8,编写 Hadoop 集群常用脚本

8.1 Hadoop 集群启停脚本(包含 HDFS,Yarn,Historyserver)

[hadoop@hadoop102 ~]$ cd /home/hadoop/bin
[hadoop@hadoop102 bin]$ vim myhadoop.sh
  • 编写myhadoop.sh脚本内容
#!/bin/bash
if [ $# -lt 1 ]
then
 echo "No Args Input..."
 exit ;
fi
case $1 in
"start")
 echo " =================== 启动 hadoop 集群 ==================="
 echo " --------------- 启动 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop/sbin/start-dfs.sh"
 echo " --------------- 启动 yarn ---------------"
  ssh hadoop103 "/opt/module/hadoop/sbin/start-yarn.sh"
 echo " --------------- 启动 historyserver ---------------"
 ssh hadoop102 "/opt/module/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver"
;;
"stop")
 echo " =================== 关闭 hadoop 集群 ==================="
 echo " --------------- 关闭 historyserver ---------------"
 ssh hadoop102 "/opt/module/hadoop/sbin/mr-jobhistory-daemon.sh stop historyserver"
 echo " --------------- 关闭 yarn ---------------"
 ssh hadoop103 "/opt/module/hadoop/sbin/stop-yarn.sh"
 echo " --------------- 关闭 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop/sbin/stop-dfs.sh"
;;
*)
 echo "Input Args Error..."
;;
esac
  • 保存后退出,然后赋予脚本执行权限
[hadoop@hadoop102 bin]$ chmod +x myhadoop.sh


8.2 查看三台服务器 Java 进程脚本

[hadoop@hadoop102 ~]$ cd /home/hadoop/bin
[hadoop@hadoop102 bin]$ vim jpsall
  • 输入如下内容
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
 echo =============== $host ===============
 ssh $host jps
done
  • 保存后退出,然后赋予脚本执行权限:
[hadoop@hadoop102 bin]$ chmod +x jpsall 


8.3 分发/home/hadoop/bin 目录,保证自定义脚本在三台机器上都可以使用:

# 先确保一下文件所属
[hadoop@hadoop102 ~]$ chown -R hadoop:hadoop bin

# 分发bin目录
[hadoop@hadoop102 ~]$ xsync /home/hadoop/bin/


8.4 测试

[hadoop@hadoop102 ~]$ myhadoop.sh stop
[hadoop@hadoop102 ~]$ jpsall

9,时间同步

如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;

​如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差, 导致集群执行任务时间不同步。

因为我没有配置,所以需要配置时间同步的童靴请自行搜索 Hadoop集群时间同步配置

四、安装ZooKeeper、HBase、MAVEN和IDEA

ZooKeeper完全分布式部署

1,解压安装

1.1 解压 Zookeeper 安装包到/opt/module/目录下

[hadoop@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

# 在/opt/module目录下修改ZK文件包名称
[hadoop@hadoop102 software]$ cd /opt/module
[hadoop@hadoop102 module]$ mv zookeeper-3.4.10 zookeeper
[hadoop@hadoop102 module]$ ls
hadoop jdk zookeeper

# 修改其所属为hadoop用户
[hadoop@hadoop102 module]$ sudo chown -R hadoop:hadoop zookeeper


1.2 同步/opt/module/zookeeper 目录内容到 hadoop103、hadoop104

[hadoop@hadoop102 module]$ xsync zookeeper/
2,配置服务器编号

2.1 在/opt/module/zookeeper/这个目录下创建 zkData

[hadoop@hadoop102 zookeeper]$ mkdir zkData


2.2 在/opt/module/zookeeper/zkData 目录下创建一个 myid 的文件

[hadoop@hadoop102 zkData]$ touch myid

添加 myid 文件,注意一定要在 linux 里面创建,在 notepad++里面很可能乱码

2.3 编辑 myid 文件

[hadoop@hadoop102 zkData]$ vim myid
  • 在文件中添加与 server 对应的编号:
2


2.4 拷贝配置好的 zookeeper 到其他机器上

[hadoop@hadoop102 zkData]$ xsync myid
  • 并分别在 hadoop103、hadoop104 上修改 myid 文件中内容为 3、4
  • 注意:使用xsync分发文件会使目标服务器上的文件与本服务器文件完全一致。进行Hadoop完全分布式环境搭建的时候,如果分发的目录或文件中包含myid文件,一定记得修改目标服务器上的myid文件,否则可能导致zookeeper无法启动等问题。
3,配置 zoo.cfg 文件

3.1 重命名/opt/module/zookeeper/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg

[hadoop@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg


3.2 修改 zoo.cfg 文件

[hadoop@hadoop102 conf]$ vim zoo.cfg
  • 修改数据存储路径配置:
dataDir=/opt/module/zookeeper/zkData
  • 增加如下配置:
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
  • 配置参数解读
server.A=B:C:D
  • A 是一个数字,表示这个是第几号服务器; 集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据就是A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息 较从而判断到底是哪个 server;
  • B 是这个服务器的地址;
  • C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
  • D 是万一集群中的 Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。


3.3 同步 zoo.cfg 配置文件

[hadoop@hadoop102 conf]$ xsync zoo.cfg


3.4 删除hadoop103和hadoop104上的多余文件

# hadoop103
[hadoop@hadoop103 conf]$ pwd
/opt/module/zookeeper/conf
[hadoop@hadoop103 conf]$ rm -rf zoo_sample.cfg

# hadoop104
[hadoop@hadoop104 conf]$ rm -rf zoo_sample.cfg
☭问题5:启动ZooKeeper报错 mkdir: 无法创建目录".": 权限不够 ?

注意:ZK有启动成功,只是在启动时返回这样一条报错信息,那么只需要把集群中的zoo_sample.cfg文件删除即可。

☭问题6:Zookeeper启动显示成功,zkServer.sh status报错?
  • 附:Zookeeper启动显示成功,zkServer.sh status报错
  • 补充一条:重新查看集群中各服务器的myid文件中的编号,是否与在zoo.cfg文件配置的服务器编号一致。
4,集群操作

4.1 将ZooKeeper目录所在路径添加到环境变量,方便全局调用命令

[hadoop@hadoop102 conf]$ sudo vim /etc/profile.d/my_env.sh
[hadoop@hadoop102 conf]$ source /etc/profile
  • 添加以下内容:
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
export PATH=$PATH:$ZOOKEEPER_HOME/sbin


4.2 编写ZooKeeper启动脚本
注意:集群中全部服务器上的Zookeeper均启动成功,才能正常运行

[hadoop@hadoop102 conf]$ cd /home/hadoop/bin
[hadoop@hadoop102 bin]$ vim myzk.sh
  • 编写myzk.sh脚本内容
#!/bin/bash
if [ $# -lt 1 ]
then
 echo "No Args Input..."
 exit ;
fi
case $1 in
"start")
 echo " =================== 启动 zookeeper ==================="
 echo " --------------- hadoop102 ---------------"
 ssh hadoop102 "/opt/module/zookeeper/bin/zkServer.sh start"
 echo " --------------- hadoop103 ---------------"
 ssh hadoop103 "/opt/module/zookeeper/bin/zkServer.sh start"
 echo " --------------- hadoop104 ---------------"
 ssh hadoop104 "/opt/module/zookeeper/bin/zkServer.sh start"
;;
"stop")
 echo " =================== 关闭 zookeeper ==================="
 echo " --------------- hadoop104 ---------------"
 ssh hadoop104 "/opt/module/zookeeper/bin/zkServer.sh stop"
 echo " --------------- hadoop103 ---------------"
 ssh hadoop103 "/opt/module/zookeeper/bin/zkServer.sh stop"
 echo " --------------- hadoop102 ---------------"
 ssh hadoop102 "/opt/module/zookeeper/bin/zkServer.sh stop"
;;
*)
 echo "Input Args Error..."
;;
esac
  • 保存后退出,然后赋予脚本执行权限
[hadoop@hadoop102 bin]$ chmod +x myzk.sh


4.3 分发/home/hadoop/bin 目录,保证自定义脚本在三台机器上都可以使用

# 进入bin的上级目录/home/hadoop
[hadoop@hadoop102 bin]$ cd ..

# 先确保一下文件所属
[hadoop@hadoop102 ~]$ chown -R hadoop:hadoop bin

# 分发bin目录
[hadoop@hadoop102 ~]$ xsync bin/


4.4 运行ZooKeeper

[hadoop@hadoop102 ~]$ myzk.sh start


4.5 查看状态

[hadoop@hadoop102 zookeeper]$ zkServer.sh status
[hadoop@hadoop103 zookeeper]$ zkServer.sh status
[hadoop@hadoop104 zookeeper]$ zkServer.sh status

HBase安装

1,Zookeeper 正常部署

首先保证 Zookeeper 集群的正常部署,并启动之

# 启动过就不要再启动了
[hadoop@hadoop102 zookeeper]$ myzk.sh start
2,Hadoop 正常部署

Hadoop 集群的正常部署并启动

[hadoop@hadoop102 hadoop]$ myhadoop.sh start
3,HBase 的解压

3.1 解压 HBase 到指定目录

[hadoop@hadoop102 software]$ tar -zxvf hbase-1.2.0-cdh5.14.0.tar.gz -C /opt/module


3.2 修改文件包名称和所属

[hadoop@hadoop102 module]$ mv hbase* hbase
[hadoop@hadoop102 module]$ sudo chown -R hadoop:hadoop hbase

# 进入conf目录,之后需修改配置文件
[hadoop@hadoop102 module]$ cd hbase/conf
[hadoop@hadoop102 conf]$ 
4,HBase 的配置文件

4.1 修改 hbase-env.sh

  • 修改内容如下:分别在27和128行左右
export JAVA_HOME=/opt/module/jdk
export HBASE_MANAGES_ZK=false
☭问题7:HBase启动警告:Java HotSpot™ 64-Bit Server VM warning

警告内容:
Java HotSpot™ 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot™ 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

解决方案:
hbase-env.sh文件中45行左右有注释说明下面两个export在JDK8+版本可以被安全地移除,注释掉即可
hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper


4.2 hbase-site.xml 修改内容

<configuration>
    <property> 
        <name>hbase.rootdir</name> 
        <value>hdfs://hadoop102:8020/hbase</value> 
    </property>
    <property> 
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
    <property>
        <name>hbase.master.port</name>
        <value>16000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>
    </property>
    <property> 
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/opt/module/zookeeper/zkData</value>
    </property>
</configuration>


4.3 regionservers文件内容如下:原内容删去

regionservers文件列出了所有运行HRegionServer进程服务器,对该文件的配置与Hadoop中对slaves或者workers文件的配置相似,需要在文件的每一行指定一台服务器,当HBASE启动时会读取该文件,将文件指定的所有服务器启动HRegionServer进程,当HBASE停止的时候,也会同时停止他们。

因此,在启动hbase后,主服务器hadoop102将启动两个节点HMaster和HRegionServer,其余各服务器启动一个节点HRegionServer。

hadoop102
hadoop103
hadoop104


4.4 软连接 hadoop 配置文件到 hbase:

[hadoop@hadoop102 module]$ ln -s /opt/module/hadoop/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
[hadoop@hadoop102 module]$ ln -s /opt/module/hadoop/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
5,HBase 远程发送到其他集群
[hadoop@hadoop102 module]$ xsync hbase/
6,HBase 服务的启动

6.1 添加环境变量

[hadoop@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
[hadoop@hadoop102 module]$ source /etc/profile
  • 添加内容如下
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin


6.2 分发环境变量文件

[hadoop@hadoop102 module]$ sudo /home/hadoop/bin/xsync /etc/profile.d/my_env.sh

# 使文件在各服务器上生效
[hadoop@hadoop103 module]$ source /etc/profile
[hadoop@hadoop104 module]$ source /etc/profile


6.3 测试

[hadoop@hadoop102 module]$ start-hbase.sh
[hadoop@hadoop102 module]$ jpsall
[hadoop@hadoop102 module]$ hbase shell

hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper

☭问题8:HBase启动报错 错误:找不到或无法加载主类 org.jruby.Main

这里提供一个特别zz的解决方案:
我在后续把IDEA的目录添加到环境变量中时,因为错把$IDEA_HOME写成$HBASE_HOME(复制粘贴的锅),导致环境变量中$HBASE_HOME被IDEA的目录所覆盖,因此出现如上报错。

所以可以先仔细检查环境变量文件,我当时就是没有全部看一遍,导致困扰许久。


6.4 关闭集群顺序

[hadoop@hadoop102 module]$ stop-hbase.sh
[hadoop@hadoop102 module]$ myhadoop.sh stop
[hadoop@hadoop102 module]$ myzk.sh stop

# 查看各服务器上的进程,正常关闭后,各服务器上均只剩下一个进程jps
[hadoop@hadoop102 module]$ jpsall

安装MAVEN & IDEA

1,解压安装
# 解压安装
## MAVEN
[hadoop@hadoop102 software]$ tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /opt/module
## IDEA
[hadoop@hadoop102 software]$ tar -zxvf ideaIU-2017.2.7.tar.gz -C /opt/module

# 修改目录名和所属
[hadoop@hadoop102 module]$ mv apache* maven
[hadoop@hadoop102 module]$ mv idea* idea
[hadoop@hadoop102 module]$ sudo chown -R hadoop:hadoop maven idea
[hadoop@hadoop102 module]$ ll
2,设置环境变量
[hadoop@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh
[hadoop@hadoop102 module]$ source /etc/profile
  • 添加下列内容
#MAVEN_HOME
export MAVEN_HOME=/opt/module/maven
export PATH=$PATH:$MAVEN_HOME/bin
#IDEA_HOME
export IDEA_HOME=/opt/module/idea
export PATH=$PATH:$IDEA_HOME/bin
3,测试 MAVEN
# 输入名令 mvn -v 可以查看版本号
[hadoop@hadoop102 module]$ mvn -v
4,修改MAVEN配置文件,使用阿里的镜像地址
[hadoop@hadoop102 conf]$ pwd
/opt/module/maven/conf
[hadoop@hadoop102 conf]$ vim settings.xml
  • 找到mirrors标签,插入
id=alimaven
name=aliyun maven
url=http://maven.aliyun.com/nexus/content/groups/public/
mirrorOf=central
  • 修改前:
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper
  • 修改后:
    hadoop完全分布式搭建步骤,笔记,hadoop,分布式,大数据,hbase,zookeeper
5,运行IDEA
[hadoop@hadoop102 conf]$ idea.sh

参考资料

教程相关
【1】尚硅谷大数据技术之 Hadoop(入门)
【2】hadoop3.x集群:配置、启动历史服务(history server,端口19888)
【3】【尚硅谷】大数据全套教程下载
【4】centos7安装IDEA配置Maven
【5】如何重新格式化Hadoop文件系统
【6】同一个局域网内如何共享文件夹(含共享打印机操作方法)
【7】在本地用idea连接虚拟机上的hbase集群

报错相关
【1】Hbase启动警告
【2】linux 终端启动图形化程序界面时报错:No protocol specified
【3】stop-hbase.sh一直处于等待状态

知识相关
【1】【hadoop 的坑】hadoop的配置文件slaves/workers
【2】Hadoop配置文件详解
【3】Zookeeper学习笔记
【4】Hbase的集群模式安装配置(笔记)
【5】maven-porm.xml详解
【6】hadoop3.x——历史服务器
【7】UUID详细介绍

实战项目
【1】HBase快速入门系列 (九)| HBase 的实战案例(微博)

资源分享

链接:https://pan.baidu.com/s/1YnO6NQYrU4gGgx1kEVy1jA
提取码:MNZX文章来源地址https://www.toymoban.com/news/detail-734823.html


以上过程希望对你有所帮助!
欢迎评论区交流指教!

到了这里,关于【教程】Hadoop完全分布式环境搭建全过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 大数据开发·关于虚拟机Hadoop完全分布式集群搭建教程

    大数据开发·关于虚拟机Hadoop完全分布式集群搭建教程

    官网链接 进入后网站如图,各位按需下载 官网链接 进入页面点击下载 再根据我们需要下载的软件进入下载页面 点击右侧红框内的免费授权页面获取免费许可 进入后如图,两者我们都需要所以都勾选,填写的邮箱用于接收下载链接,下载后进行安装即可 这里先和大家强调一

    2024年02月07日
    浏览(15)
  • Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)

    Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)

    本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识。 思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧。 目录 一、引入 hdfs是什么 hdfs的由来 hdfs架构体系 hdfs的优缺点 优点 缺点 二、HDFS_block简介和注意

    2023年04月19日
    浏览(33)
  • CentOS7搭建伪分布式Hadoop(全过程2023)

    CentOS7搭建伪分布式Hadoop(全过程2023)

    可以使用XFTP,用物理主机链接虚拟机的centos传送java文件,或者直接去java官网下载文件,解压。配置文件,启动配置。 验证java是否配置好 输入: java javac java -version 修改六个配置文件hadoop-env.sh 启动hadoop之前需要格式化(具体在出现的问题第六点) 验证: 出现错误,解决和验

    2024年02月08日
    浏览(24)
  • Hadoop完全分布式搭建

    Hadoop完全分布式搭建

    1.下载VM 2.下载Centos镜像 3.下载hadoop 4.下载FinalShell 5.下载jdk文件  6.下载hive,数据仓库学习大数据专业的用的到     注:开启虚拟机把鼠标放入屏幕点击后消失,使用键盘上下键进行选择   注:点击之后,什么都不动,再点击完成(因为它自动帮我们分区了) 注:我们配置

    2024年02月04日
    浏览(8)
  • 搭建完全分布式Hadoop

    搭建完全分布式Hadoop

    登录三个虚拟机 执行命令: vim /etc/hosts 1、上传安装包 上传hadoop安装包 查看hadoop安装包 2、解压缩安装包 执行命令: tar -zxvf hadoop-3.3.4.tar.gz -C /usr/local 查看解压后的目录 3、配置环境变量 执行命令: vim /etc/profile 存盘退出,执行命令: source /etc/profile ,让配置生效 查看had

    2024年02月04日
    浏览(14)
  • Hadoop完全分布式集群搭建

    Hadoop完全分布式集群搭建

    1.在虚拟机关机的状态下选择克隆 2.开始克隆 3.选择从当前状态创建 4.创建一个完整的克隆 5.选择新的虚拟机存储位置(选择内存充足的磁盘) 6.开始克隆 7.克隆完成 8.同样的方法克隆第二台虚拟机 9.在计算机中存在三台虚拟机 将第一台虚拟机更名为hadoop01 修改hadoop01的主机

    2024年02月02日
    浏览(5)
  • 【Hadoop】完全分布式集群搭建

    【Hadoop】完全分布式集群搭建

    大家好,我是向阳花花花花,这篇文章是我历时三天,推翻重做两小时进行搭建的Hadoop集群(完全分布式)个人笔记和感想,收录于初心的《大数据》专栏。 🏠 个人主页:初心%个人主页 🧑 个人简介:大家好,我是初心,一名正在努力的双非二本院校计算机专业学生 💕

    2024年02月15日
    浏览(10)
  • Hadoop的完全分布式搭建

    Hadoop的完全分布式搭建

    主机名 Hadoop10 Hadoop11 Hadoop12 网络 192.168.10.10 192.168.10.11 192.168.10.12 用户 hadoop root hadoop root hadoop root HDFS NameNode DateNode DateNode Secondary NameNode DataNode YARN NodeManager NodeManager ResourceManager NodeManager 安装虚拟机系统,省略 第一步:网卡配置 使用 vi 编辑器编辑系统的网卡配置文件,配置以下

    2024年02月08日
    浏览(9)
  • hadoop平台完全分布式搭建

    安装前准备 一、设置ssh免密登录 1.编辑hosts文件,添加主机名映射内容 vim  /etc/hosts 添加内容: 172.17.0.2      master 172.17.0.3      slave1 172.17.0.4      slave2 2.生成公钥和私钥 ssh-keygen –t rsa 然后按三次回车 3.复制公钥到其他容器(包括自己) ssh-copy-id master ssh-copy-id slav

    2024年03月17日
    浏览(10)
  • Hadoop 完全分布式集群搭建

    Hadoop 完全分布式集群搭建

    部署前可以先了解下 Hadoop运行模式及目录结构-CSDN博客 服务 hadoop102 hadoop103 hadoop104 NameNode √ DataNode √ √ √ Secondary NameNode √ ResourceManager √ NodeManager √ √ √ JobHistoryServer √ IPv4 192.168.88.102 192.168.88.103 192.168.88.104 NodeObject master worker1 worker2 最小化安装 Neokylin7.0 用于搭建 Had

    2024年02月04日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包