一.Hadoop平台安装
实验任务一:配置 Linux 系统基础环境
步骤一:查看服务器的 IP 地址
步骤二:设置服务器的主机名称
步骤三:绑定主机名与 IP 地址(此步骤后为在宿舍用自己电脑完成,所以颜色不同)
步骤四:查看 SSH 服务状态
步骤五:永久关闭防火墙并检查
实验任务二:安装 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 键入命令
[root@master ~]# rpm -qa | grep java javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64 tzdata-java-2022e-1.el7.noarch python-javapackages-3.4.1-11.el7.noarch java-1.8.0-openjdk-headless-1.8.0.352.b08-2.el7_9.x86_64 卸载相关服务,
键入命令 : [root@master ~]# rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch [root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.352.b08- 2.el7_9.x86_64 [root@master ~]# rpm -e --nodeps tzdata-java-2022e-1.el7.noarch [root@master ~]# rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch [root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.352.b08- 2.el7_9.x86_64 [root@master ~]# rpm -qa | grep java
查看删除结果再次键入命令 java -version 出现以下结果表示删除功
[root@master ~]# java --version bash: java: 未找到命令 1.4.2.3.
步骤三:安装 JDK Hadoop 2.7.1 要求 JDK 的版本为 1.7 以上,这里安装的是 JDK1.8 版 (即JAVA 8)。 安装命令如下,将安装包解压到/usr/local/src 目录下 ,注意/opt/software目录 下的软件包事先准备好。
[root@master ~]# tar -zxvf /opt/software/jdk-8u152-linux-x64.tar.gz -C /usr/local/src/ [root@master ~]# ls /usr/local/src/ jdk1.8.0_152
步骤四:设置 JAVA 环境变量
执行 source 使设置生效:
检查 JAVA 是否可用:能够正常显示 Java 版本则说明 JDK 安装并配置成功。
实验任务三:安装 Hadoop 软件
步骤一:安装 Hadoop 软件
这里可以看到jdk和hadoop已存在,查看 Hadoop 目录,得知 Hadoop 目录内容如下:
步骤二:配置 Hadoop 环境变量
执行 source 使用设置生效:
检查设置是否生效:
出现上述 Hadoop 帮助信息就说明 Hadoop 已经安装好了
步骤三:修改目录所有者和所有者组:
上述安装完成的 Hadoop 软件只能让 root 用户使用,要让 hadoop 用户能够 运行 Hadoop 软件,需要将目录/usr/local/src 的所有者改为 hadoop 用户。
目录的所有者已经改为 hadoop 了
实验任务四 安装单机版 Hadoop 系统
步骤一:配置 Hadoop 配置文件
步骤二:测试 Hadoop 本地模式的运行 分步骤一: 切换到 hadoop 用户 使用 hadoop 这个用户来运行 Hadoop 软件。
分步骤二: 创建数据输入文件 创建数据文件 data.txt,将要测试的数据内容输入到 data.txt 文件中。
分步骤三: 文件_SUCCESS 表示处理成功,处理的结果存放在 part-r-00000 文件中,查看该 文件。
可以看出统计结果正确,说明 Hadoop 本地模式运行正常。
二、Hadoop平台环境配置
实验任务一:实验环境下集群网络配置
修改 slave1 机器主机名 [root@localhost ~]# hostnamectl set-hostname slave1 [root@localhost ~]# bash [root@slave1 ~]#
修改 slave2 机器主机名 [root@localhost ~]# hostnamectl set-hostname slave2 [root@localhost ~]# bash [root@slave2 ~]#
根据我们为 Hadoop 设置的主机名为“master、slave1、slave2”,映地址是 “192.168.47.140、192.168.47.141、192.168.47.142”,分别修改主机配置文件“/etc/hosts”
实验二 SSH 无密码验证配置
步骤一:每个节点安装和启动 SSH 协议
实现 SSH 登录需要 openssh 和 rsync 两个服务,一般情况下默认已经安装(如没有自行安 装),可以通过下面命令查看结果。
步骤二:每个节点生成秘钥对
#在 master 上生成密钥 [hadoop@master ~]$ ssh-keygen -t rsa
#在 slave1 上生成密钥 [hadoop@slave1 ~]$ ssh-keygen -t rsa
#在 slave2 上生成密钥 [hadoop@slave2 ~]$ ssh-keygen -t rsa
步骤三:将 id_rsa.pub 追加到授权 key 文件中
#slave1 #slave2同上
步骤四:修改文件"authorized_keys"权限
步骤五:配置 SSH 服务
#找到此行,并把#号注释删除。
slave1 slave2同上
步骤六:重启 SSH 服务
步骤七:切换到 hadoop 用户
步骤八:验证 SSH 登录本机
实验任务二:交换 SSH 密钥
步骤一:将 Master 节点的公钥 id_rsa.pub 复制到每个 Slave 点 hadoop 用户登录,通过 scp 命令实现密钥拷贝。
步骤二:在每个 Slave 节点把 Master 节点复制的公钥复制到authorized_keys 文件
[hadoop@slave1 ~]$ cat ~/id_rsa.pub >>~/.ssh/authorized_keys [hadoop@slave2 ~]$ cat ~/id_rsa.pub >>~/.ssh/authorized_keys
步骤三:在每个 Slave 节点删除 id_rsa.pub 文件
[hadoop@slave1 ~]$ rm -rf ~/id_rsa.pub [hadoop@slave2 ~]$ rm -rf ~/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 文件
[hadoop@master ~]$ cat ~/.ssh/authorized_keys
步骤二:查看 Slave 节点 authorized_keys 文件
[hadoop@slave1 ~]$ cat ~/.ssh/authorized_keys
步骤三:验证 Master 到每个 Slave 节点无密码登录
步骤四:验证两个 Slave 节点到 Master 节点无密码登录
步骤五:配置两个子节点slave1、slave2的JDK环境
[root@master ~]# cd /usr/local/src/ [root@master src]# ls hadoop-2.7.1 jdk1.8.0_152 [root@master src]# scp -r jdk1.8.0_152 root@slave1:/usr/local/src/ [root@master src]# scp -r jdk1.8.0_152 root@slave2:/usr/local/src/
#slave1 [root@slave1 ~]# ls /usr/local/src/ jdk1.8.0_152 [root@slave1 ~]# vi /etc/profile #此文件最后添加下面两行 export JAVA_HOME=/usr/local/src/jdk1.8.0_152 37 export PATH=$PATH:$JAVA_HOME/bin [root@slave1 ~]# source /etc/profile [root@slave1 ~]# java -version
#slave2 [root@slave2 ~]# ls /usr/local/src/ jdk1.8.0_152 [root@slave2 ~]# vi /etc/profile #此文件最后添加下面两行 export JAVA_HOME=/usr/local/src/jdk1.8.0_152 export PATH=$PATH:$JAVA_HOME/bin [root@slave2 ~]# source /etc/profile [root@slave2 ~]# java -version
三、Hadoop集群运行
实验任务一:在 Master 节点上安装 Hadoop
1. 将 hadoop-2.7.1 文件夹重命名为 Hadoop
2. 配置 Hadoop 环境变量 [root@master src]# yum install -y vim [root@master src]# vim /etc/profile [root@master src]# tail -n 4 /etc/profile export JAVA_HOME=/usr/local/src/jdk1.8.0_152 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/usr/local/src/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
3. 使配置的 Hadoop 的环境变量生效
4. 执行以下命令修改 hadoop-env.sh 配置文件
实验任务二:配置 hdfs-site.xml 文件参数
实验任务三:配置 core-site.xml 文件参数
任务四:配置 mapred-site.xml
任务五:配置 yarn-site.xml
任务六:Hadoop 其他相关配置
1. 配置 masters 文件
[root@master hadoop]# vim masters
[root@master hadoop]# cat masters 192.168.47.140 2.
配置 slaves 文件
[root@master hadoop]# vim slaves
[root@master hadoop]# cat slaves 192.168.47.141 192.168.47.142 3.
新建目录 [root@master hadoop]# mkdir /usr/local/src/hadoop/tmp
[root@master hadoop]# mkdir /usr/local/src/hadoop/dfs/name -p
[root@master hadoop]# mkdir /usr/local/src/hadoop/dfs/data -p 4. 修改目录权限
[root@master hadoop]# chown -R hadoop:hadoop /usr/local/src/hadoop/ 5.
同步配置文件到 Slave 节点
[root@master ~]# scp -r /usr/local/src/hadoop/ root@slave1:/usr/local/src/ The authenticity of host 'slave1 (192.168.47.141)' can't be established. ECDSA key fingerprint is SHA256:vnHclJTJVtDbeULN8jdOLhTCmqxJNqUQshH9g9LfJ3k. ECDSA key fingerprint is MD5:31:03:3d:83:46:aa:c4:d0:c9:fc:5f:f1:cf:2d:fd:e2. Are you sure you want to continue connecting (yes/no)? yes * * * * * * *
[root@master ~]# scp -r /usr/local/src/hadoop/ root@slave2:/usr/local/src/ The authenticity of host 'slave1 (192.168.47.142)' can't be established. ECDSA key fingerprint is SHA256:vnHclJTJVtDbeULN8jdOLhTCmqxJNqUQshH9g9LfJ3k. ECDSA key fingerprint is MD5:31:03:3d:83:46:aa:c4:d0:c9:fc:5f:f1:cf:2d:fd:e2. Are you sure you want to continue connecting (yes/no)? yes * * * * * * * 42
#slave1 配置
[root@slave1 ~]# yum install -y vim
[root@slave1 ~]# vim /etc/profile
[root@slave1 ~]# tail -n 4 /etc/profile export JAVA_HOME=/usr/local/src/jdk1.8.0_152 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/usr/local/src/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[root@slave1 ~]# chown -R hadoop:hadoop /usr/local/src/hadoop/
[root@slave1 ~]# su - hadoop
上一次登录:四 2 月 24 11:29:00 CST 2022 从 192.168.41.148pts/1 上
[hadoop@slave1 ~]$ source /etc/profile #slave2
配置 [root@slave2 ~]# yum install -y vim
[root@slave2 ~]# vim /etc/profile
[root@slave2 ~]# tail -n 4 /etc/profile export JAVA_HOME=/usr/local/src/jdk1.8.0_152 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/usr/local/src/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[root@slave2 ~]# chown -R hadoop:hadoop /usr/local/src/hadoop/
[root@slave2 ~]# su - hadoop
上一次登录:四 2 月 24 11:29:19 CST 2022 从 192.168.41.148pts/1 上
[hadoop@slave2 ~]$ source /etc/profile
四、大数据平台集群运行
实验任务一:配置 Hadoop 格式化
步骤一:NameNode 格式化
[root@master ~]# su – hadoop
[hadoop@master ~]# cd /usr/local/src/hadoop/
[hadoop@master hadoop]$ bin/hdfs namenode –format
结果: 20/05/02 16:21:50 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at master/192.168.1.6 ************************************************************/
步骤二:启动 NameNode
执行如下命令,启动 NameNode:
[hadoop@master hadoop]$ hadoop-daemon.sh start namenode
starting namenode, logging to /opt/module/hadoop2.7.1/logs/hadoop-hadoop-namenode-master.out
实验任务二:查看 Java 进程
启动完成后,可以使用 JPS 命令查看是否成功。JPS 命令是 Java 提供的一个显示当前所有 Java 进程 pid 的命令。
[hadoop@master hadoop]$ jps
3557 NameNode 3624 Jps
步骤一:slave节点 启动 DataNode
执行如下命令,启动 DataNode:
[hadoop@slave1 hadoop]$ hadoop-daemon.sh start datanode starting datanode, logging to /opt/module/hadoop2.7.1/logs/hadoop-hadoop-datanode-master.out
[hadoop@slave2 hadoop]$ hadoop-daemon.sh start datanode starting datanode, logging to /opt/module/hadoop2.7.1/logs/hadoop-hadoop-datanode-master.out
[hadoop@slave1 hadoop]$ jps
3557 DataNode 3725 Jps
[hadoop@slave2 hadoop]$ jps
3557 DataNode 3725 Jps
步骤二:启动 SecondaryNameNode
执行如下命令,启动 SecondaryNameNode:
[hadoop@master hadoop]$ hadoop-daemon.sh start secondarynamenode starting secondarynamenode, logging to /opt/module/hadoop2.7.1/logs/hadoop-hadoop-secondarynamenode-master.out
[hadoop@master hadoop]$ jps
34257 NameNode 34449 SecondaryNameNode 34494 Jps
查看到有 NameNode 和 SecondaryNameNode 两个进程,就表明 HDFS 启动成 功。
步骤三:查看 HDFS 数据存放位置:
[hadoop@master hadoop]$ ll dfs/
总用量 0 drwx------ 3 hadoop hadoop 21 8 月 14 15:26 data drwxr-xr-x 3 hadoop hadoop 40 8 月 14 14:57 name
[hadoop@master hadoop]$ ll ./tmp/dfs
总用量 0drwxrwxr-x. 3 hadoop hadoop 21 5 月 2 16:34 namesecondary
实验任务三:查看 HDFS 的报告
[hadoop@master sbin]$ hdfs dfsadmin -report
实验任务四:使用浏览器查看节点状态
在浏览器的地址栏输入http://master:50070,进入页面可以查看NameNode和DataNode 信息,如图 5-2 所示:
在浏览器的地址栏输入 http://master:50090,进入页面可以查看 SecondaryNameNode信息,如图 5-3 所示;
五、Hive数据仓库组件
实验任务一:下载和解压安装文件
[root@master ~]# tar zxf tools/apache-hive-2.0.0-bin.tar.gz -C /usr/local/src/ [root@master ~]# mv /usr/local/src/apache-hive-2.0.0-bin/ /usr/local/src/hive [root@master ~]# chown -R hadoop:hadoop /usr/local/src/hive
实验任务二:设置 Hive 环境
1. 卸载 MariaDB 数据库 [root@master ~]# rpm -qa | grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 [root@master ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
2. 安装 MySQL 数据
[root@master tools]# cd mysql-5.7.18/ [root@master mysql-5.7.18]# rpm -ivh mysql-community-common-5.7.18- 1.el7.x86_64.rpm
[root@master mysql-5.7.18]# rpm -ivh mysql-community-server-5.7.18- 1.el7.x86_64.rpm
[root@master mysql-5.7.18]# vim /etc/my.cnf [root@master mysql-5.7.18]# tail -n 8 /etc/my.cn
[root@master mysql-5.7.18]# systemctl status mysqld
[root@master mysql-5.7.18]# cat /var/log/mysqld.log | grep password
[root@master mysql-5.7.18]# mysql_secure_installation
[root@master mysql-5.7.18]# mysql -uroot -p
mysql> grant all privileges on *.* to root@'localhost' identified by 'Password123$'; Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to root@'%' identified by 'Password123$'; Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges -> ; Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user where user='root';
+------+-----------+
| user | host |
+------+-----------+
| root | % |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)
mysql> exit
Bye 库
3. 配置 Hive 组件
[root@master ~]# vim /etc/profile [root@master ~]# tail -n 2 /etc/profile export PATH=$PATH:$HIVE_HOME/bin export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
1)设置 MySQL 数据库连接。
4. 初始化 hive 元数据
[hadoop@master tools]$ cp mysql-connector-java-5.1.46.jar /usr/local/src/hive/lib/
[hadoop@master tools]$ hive