目录
一、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