Bootstrap

Hadoop完全分布式集群搭建

目录

一、Hadoop平台安装

1、实验环境环境设置

①配置服务器的 IP 地址

②设置服务器的主机名称

③绑定主机名与 IP 地址

④查看 SSH 服务状态

⑤关闭防火墙

⑥创建 hadoop 用户

2、安装 JAVA 环境

①下载 JDK 安装包

②卸载自带 OpenJDK

③安装 JDK

④设置 JAVA 环境变量

3、安装 Hadoop 软件

①安装 Hadoop 软件

②配置 Hadoop 环境变量

③修改目录所有者和所有者组

4、安装单机版 Hadoop 系统

①配置 Hadoop 配置文件

②测试 Hadoop 本地模式的运行

5、Hadoop平台环境配置

①生成 SSH 密钥

②交换 SSH 密钥

③验证 SSH 无密码登录

二、Hadoop集群运行

1、Hadoop文件参数配置

2、大数据平台集群运行


一、Hadoop平台安装

1、实验环境环境设置

三台虚拟机:master 192.168.11.66,slave1 192.168.11.77,slave2 192.168.11.88

①配置服务器的 IP 地址

②设置服务器的主机名称

③绑定主机名与 IP 地址

④查看 SSH 服务状态

⑤关闭防火墙

关闭防火墙 systemctl stop firewalld

查看防火墙的状态 systemctl status firewalld

永久关闭防火墙 systemctl diable firewalld

⑥创建 hadoop 用户

2、安装 JAVA 环境

①下载 JDK 安装包

JDK 安 装 包 需 要 在 Oracle 官 网 下 载 , 下 载 地 址 为 : 20 https://www.oracle.com/java /technologies /javase-jdk8-downloads.html,本教材采用 的 Hadoop 2.7.1 所需要的 JDK 版本为 JDK7 以上,这里采用的安装包为 jdk-8u152-linuxx64.tar.gz。

②卸载自带 OpenJDK

③安装 JDK

Hadoop 2.7.1 要求 JDK 的版本为 1.7 以上,这里安装的是 JDK1.8 版 (即JAVA 8)。

安装命令如下,将安装包解压到/usr/local/src 目录下 ,注意/opt/software目录 下的软件包事先准备好。

解压:

④设置 JAVA 环境变量

在 Linux 中设置环境变量的方法比较多,较常见的有两种:一是配置 /etc/profile 文件,配置结果对整个系统有效,系统所有用户都可以使用;二 21 是配置~/.bashrc 文件,配置结果仅对当前用户有效。这里使用第一种方法。

3、安装 Hadoop 软件

①安装 Hadoop 软件

Apache Hadoop 各 个 版 本 的 下 载 网 址 : https://archive.apache.org/dist/hadoop /common/。本教材选用的是 Hadoop 2.7.1 版本,安装包为 hadoop-2.7.1.tar.gz。需要先下载 Hadoop 安装包,再上传到 Linux 系统的/opt/software 目录。

安装命令如下,将安装包解压到/usr/local/src/目录下

查看hadoop的目录

bin:此目录中存放 Hadoop、HDFS、YARN 和 MapReduce 运行程序和管理 软件。

etc:存放 Hadoop 配置文件。

include: 类似 C 语言的头文件

lib:本地库文件,支持对数据进行压缩和解压。

libexe:同 lib

sbin:Hadoop 集群启动、停止命令

share:说明文档、案例和依赖 jar 包。

②配置 Hadoop 环境变量

出现上述 Hadoop 帮助信息就说明 Hadoop 已经安装好了。

③修改目录所有者和所有者组

上述安装完成的 Hadoop 软件只能让 root 用户使用,要让 hadoop 用户能够 运行 Hadoop 软件,需要将目录/usr/local/src 的所有者改为 hadoop 用户。

/usr/local/src 目录的所有者已经改为 hadoop 了。

4、安装单机版 Hadoop 系统

①配置 Hadoop 配置文件

②测试 Hadoop 本地模式的运行

步骤一: 切换到 hadoop 用户

步骤二: 创建输入数据存放目录

步骤三: 创建数据输入文件

创建数据文件 data.txt,将要测试的数据内容输入到 data.txt 文件中。

步骤四: 测试 MapReduce 运行

运行结果保存在~/output 目录中(注:结果输出目录不能事先存在),命令执 行后查看结果:

文件_SUCCESS 表示处理成功,处理的结果存放在 part-r-00000 文件中,查看该 文件。

5、Hadoop平台环境配置

slave1

slave2

实验一:实验环境下集群网络配置

修改slave1主机名

修改slave2主机名

根据实验环境下集群网络 IP 地址规划(根据自己主机的ip即可):

master 设置 IP 地址是“192.168.11.66”,掩码是“255.255.255.0”;

slave1 设置 IP 地址“192.168.11.77”,掩码是“255.255.255.0”;

slave2 设置 IP 地址是“192.168.11.88”,掩码是“255.255.255.0”。

分别修改主机配置文件“/etc/hosts”

实验二:SSH 无密码验证配置

①生成 SSH 密钥

步骤一:每个节点安装和启动 SSH 协议

实现 SSH 登录需要 openssh 和 rsync 两个服务,一般情况下默认已经安装(如没有自行安 装),可以通过下面命令查看结果。

步骤二:切换到 hadoop 用户

步骤三:每个节点生成秘钥对

#在 master 上生成密钥

#slave1 生成密钥

#slave2 生成密钥

步骤四:查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚 生产的无密码密钥对。

步骤五:将 id_rsa.pub 追加到授权 key 文件中

#master

#slave1

#slave2

步骤六:修改文件"authorized_keys"权限

#master

#slave1

#slave2

步骤七:配置 SSH 服务

使用 root 用户登录,修改 SSH 配置文件"/etc/ssh/sshd_config"的下列内容,需要将该配 置字段前面的#号删除,启用公钥私钥配对认证方式。

#master

#slave1

#slave2

步骤八:重启 SSH 服务

步骤九:切换到 hadoop 用户

步骤十:验证 SSH 登录本机

在 hadoop 用户下验证能否嵌套登录本机,若可以不输入密码登录,则本机通过密钥登录 认证成功。

②交换 SSH 密钥

步骤一:将 Master 节点的公钥 id_rsa.pub 复制到每个 Slave 点

步骤二:在每个 Slave 节点把 Master 节点复制的公钥复制到authorized_keys 文件

hadoop 用户登录 slave1 和 slave2 节点,执行命令。

步骤三:在每个 Slave 节点删除 id_rsa.pub 文件

步骤四:将每个 Slave 节点的公钥保存到 Master

(1)将 Slave1 节点的公钥复制到 Master

(2)在 Master 节点把从 Slave 节点复制的公钥复制到 authorized_keys 文件

(3)在 Master 节点删除 id_rsa.pub 文件

(4)将 Slave2 节点的公钥复制到 Master

(5)在 Master 节点把从 Slave 节点复制的公钥复制到 authorized_keys 文件

(6)在 Master 节点删除 id_rsa.pub 文件

③验证 SSH 无密码登录

步骤一:查看 Master 节点 authorized_keys 文件

可以看到 Master 节点 authorized_keys 文件中包括 master、slave1、slave2 三个节点的公钥。

步骤二:查看 Slave 节点 authorized_keys 文件

可以看到 Slave 节点 authorized_keys 文件中包括 Master、当前 Slave 两个节点的公钥。

步骤三:验证 Master 到每个 Slave 节点无密码登录

hadoop 用户登录 master 节点,执行 SSH 命令登录 slave1 和 slave2 节点。可以观察到不需要输入密码即可实现 SSH 登录。

步骤四:验证两个 Slave 节点到 Master 节点无密码登录

步骤五:配置两个子节点slave1、slave2的JDK环境。

#slave1

#slave2

二、Hadoop集群运行

1、Hadoop文件参数配置

实验任务一:在 Master 节点上安装 Hadoop

1. 将 hadoop-2.7.1 文件夹重命名为 Hadoop

2. 配置 Hadoop 环境变量

3. 使配置的 Hadoop 的环境变量生效

4. 执行以下命令修改 hadoop-env.sh 配置文件

任务二:配置 hdfs-site.xml 文件参数

任务三:配置 core-site.xml 文件参数

任务四:配置 mapred-site.xml

任务五:配置 yarn-site.xml

任务六:Hadoop 其他相关配置

1. 配置 masters 文件

2. 配置 slaves 文件

3. 新建目录

4. 修改目录权限

5. 同步配置文件到 Slave 节点

#slave1 配置

#slave2 配置

2、大数据平台集群运行

实验任务一:配置 Hadoop 格式化

步骤一:NameNode 格式化

将 NameNode 上的数据清零,第一次启动 HDFS 时要进行格式化,以后启动无 需再格式化,否则会缺失 DataNode 进程。另外,只要运行过 HDFS,Hadoop 的 工作目录(本书设置为/usr/local/src/hadoop/tmp)就会有数据,如果需要重 新格式化,则在格式化之前一定要先删除工作目录下的数据,否则格式化时会 出问题。

步骤二:启动 NameNode

执行如下命令,启动 NameNode:

实验任务二:查看 Java 进程

启动完成后,可以使用 JPS 命令查看是否成功。JPS 命令是 Java 提供的一个显示当前所有 Java 进程 pid 的命令。

步骤一:slave节点 启动 DataNode

步骤二:启动 SecondaryNameNode

查看到有 NameNode 和 SecondaryNameNode 两个进程,就表明 HDFS 启动成 功。

步骤三:查看 HDFS 数据存放位置:

执行如下命令,查看 Hadoop 工作目录:

可以看出 HDFS 的数据保存在/usr/local/src/hadoop/dfs 目录下,NameNode、 DataNode和/usr/local/src/hadoop/tmp/目录下,SecondaryNameNode 各有一个目 录存放数据。

实验任务三:查看 HDFS 的报告

实验任务四:使用浏览器查看节点状态

在浏览器的地址栏输入http://master:50070,进入页面可以查看NameNode和DataNode 信息

在浏览器的地址栏输入 http://master:50090,进入页面可以查看 SecondaryNameNode信息

可以使用 start-dfs.sh 命令启动 HDFS。这时需要配置 SSH 免密码登录,否则在 启动过程中系统将多次要求确认连接和输入 Hadoop 用户密码。

实验任务五:停止 Hadoop

步骤一:停止 yarn

步骤二:停止 DataNode

步骤三:停止 NameNode

步骤四:停止 SecondaryNameNode

步骤五:查看 JAVA 进程,确认 HDFS 进程已全部关闭

3、Hive数据仓库组件

任务一:下载和解压安装文件

上传到/opt/software

解压:

任务二:设置 Hive 环境

①卸载 MariaDB 数据库

②安装 MySQL 数据

1)先将mysql安装包上传/opt/software

2)按如下顺序依次按照 MySQL 数据库的 mysql common、mysql libs、mysql client 、mysql server软件包。

3)修改 MySQL 数据库配置,在/etc/my.cnf 文件中添加如表 6-1 所示的 MySQL 数据 库配置项。

4)启动 MySQL 数据库

5)查询 MySQL 数据库默认密码

MySQL 数据库安装后的默认密码保存在/var/log/mysqld.log 文件中

6)MySQL 数据库初始化

执行 mysql_secure_installation 命令初始化 MySQL 数据库,初始化过程中需要设定 数据库 root 用户登录密码,密码需符合安全规则,包括大小写字符、数字和特殊符号, 可设定密码为 Password123$

在进行 MySQL 数据库初始化过程中会出现以下交互确认信息:

1)Change the password for root ? ((Press y|Y for Yes, any other key for No)表示是否更改 root 用户密码,在键盘输入 y 和回车。

2)Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No)表示是否使用设定的密码继续,在键盘输入 y 和回车。

3)Remove anonymous users? (Press y|Y for Yes, any other key for No)表示是 否删除匿名用户,在键盘输入 y 和回车。

4)Disallow root login remotely? (Press y|Y for Yes, any other key for No) 表示是否拒绝 root 用户远程登录,在键盘输入 n 和回车,表示允许 root 用户远程登录。

5)Remove test database and access to it? (Press y|Y for Yes, any other key for No)表示是否删除测试数据库,在键盘输入 y 和回车。

6)Reload privilege tables now? (Press y|Y for Yes, any other key for No) 表示是否重新加载授权表,在键盘输入 y 和回车。 mysql_secure_installation 命令执行过程如下:

7)添加 root 用户从本地和远程访问 MySQL 数据库表单的授权。

# 添加 root 用户本地访问授权

# 添加 root 用户远程访问授权

# 刷新授权

# 查询 root 用户授权情况

③配置 Hive 组件

(1)设置 Hive 环境变量并使其生效。

(2)修改 Hive 组件配置文件。

切换到 hadoop 用户执行以下对 Hive 组件的配置操作。 将/usr/local/src/hive/conf 文件夹下 hive-default.xml.template 文件,更名为 hive-site.xml。

(3)通过 vi 编辑器修改 hive-site.xml 文件实现 Hive 连接 MySQL 数据库,并设定 Hive 临时文件存储路径。

1)设置 MySQL 数据库连接。

2)配置 MySQL 数据库 root 的密码。

3)验证元数据存储版本一致性。若默认 false,则不用修改。

4)配置数据库驱动。

5)配置数据库用户名 javax.jdo.option.ConnectionUserName 为 root。

6 ) 将 以 下 位 置 的 ${system:java.io.tmpdir}/${system:user.name} 替 换 为 “/usr/local/src/hive/tmp”目录及其子目录。

7)在 Hive 安装目录中创建临时文件夹 tmp。

④初始化 hive 元数据

1)将 MySQL 数据库驱动(/opt/software/mysql-connector-java-5.1.46.jar)拷贝到 Hive 安装目录的 lib 下;

2)重新启动 hadooop

3)初始化数据库

4)启动 hive

三、大数据生态组件

1、Zookeeper组件

实验任务一:下载和安装 ZooKeeper

1)ZooKeeper 的安装包 zookeeper-3.4.8.tar.gz 放置在 Linux 系统 /opt/software目录下。

2)解压安装包

实验任务二:ZooKeeper 的配置选项

步骤一:Master 节点配置

(1)在 ZooKeeper 的安装目录下创建 data 和 logs 文件夹。

(2)在每个节点写入该节点的标识编号,每个节点编号不同,master 节点写 入 1,slave1 节点写入 2,slave2 节点写入 3。

(3)修改配置文件 zoo.cfg

(4)在 zoo.cfg 文件末尾追加以下参数配置,表示三个 ZooKeeper 节点的访 问端口号。

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

(5)修改 ZooKeeper 安装目录的归属用户为 hadoop 用户。

步骤二:Slave 节点配置

(1)从 Master 节点复制 ZooKeeper 安装目录到两个 Slave 节点。

(2)在 slave1 节点上修改 zookeeper 目录的归属用户为 hadoop 用户。

(3)在 slave1 节点上配置该节点的 myid 为 2。

(4)在 slave2 节点上修改 zookeeper 目录的归属用户为 hadoop 用户。

(5)在 slave2 节点上配置该节点的 myid 为 3。

步骤三:系统环境变量配置

在 master、slave1、slave2 三个节点增加环境变量配置。

#master

#slave1

#slave2

实验任务三:启动 ZooKeeper

启动 ZooKeeper 需要使用 Hadoop 用户进行操作。

(1)分别在 master、slave1、slave2 三个节点使用 zkServer.sh start 命令启 动ZooKeeper。

#master

#slave1

#slave2

(2)三个节点都启动完成后,再统一查看 ZooKeeper 运行状态。

分别在 master、slave1、slave2 三个节点使用 zkServer.sh status 命令查看 ZooKeeper 状态。可以看到三个节点的状态分别为 follower、leader、 follower。三个节点会包括一个 leader 和两个 follower,每个节点地位均等, leader 是根据 ZooKeeper 内部算法进行选举,每个节点的具体状态不固定。

2、Hbase数据库组件

任务一:Hbase 安装与配置

1. 上传和解压缩 HBase 安装包

2. 重命名 HBase 安装文件夹

3. 在所有节点添加环境变量

#master

#slave1

#slave2

4. 在所有节点使环境变量生效

5. 在 master 节点进入配置文件目录

6. 在 master 节点配置 hbase-env.sh 文件

7. 在 master 节点配置 hbase-site.xml 如下

vi hbase-site.xml

8. 在 master 节点修改 regionservers 文件

9. 在 master 节点创建 hbase.tmp.dir 目录

10. 将 master 上的 hbase 安装文件同步到 slave1 slave2

11. 在所有节点修改 hbase 目录权限

12. 在所有节点切换到 hadoop 用户

13. 启动 HBase

14. 在所有节点启动 ZooKeeper

15. 在 master 节点启动 HBase

16. 在浏览器输入 master:60010 出现如下图 7-2 所示的界面。

任务二:Base 常用 shell 命令

1. 进入 HBase 命令行

2. 建立表 scores,两个列簇:grade 和 course

3. 查看数据库状态

4. 查看数据库版本

5. 查看表

6. 插入记录 1:jie,grade: 143cloud

7. 插入记录 2:jie,course:math,86

8. 插入记录 3:jie,course:cloud,92

9. 插入记录 4:shi,grade:133soft

10. 插入记录 5:shi,grade:math,87

11. 插入记录 6:shi,grade:cloud,96

12. 读取 jie 的记录

13. 读取 jie 的班级

14. 查看整个表记录

15. 按例查看表记录

16. 删除指定记录

17. 删除后,执行 scan 命令

18. 增加新的列簇

19. 查看表结构

20. 删除列簇

21. 删除表

22. 退出

23. 关闭 HBase

3、Sqoop数据迁移组件

;