一.Hadoop安装
1.查看IP地址
[root@localhost ~]# ip add show
2.设置服务器的主机名
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash
[root@master ~]# hostname master
3.绑定主机名与IP地址
[root@master ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.47.140 master
4.查看ssh服务状态
CentOS 7 默认安装 SSH 服务,可以使用如下命令查看 SSH 的状态。
[root@master ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2021-12-20 08:22:16 CST; 10 months 21 days ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 1048 (sshd) CGroup: /system.slice/sshd.service └─1048 /usr/sbin/sshd -D 12月 20 08:22:16 localhost.localdomain systemd[1]: Starting OpenSSH server daemon... 19 12月 20 08:22:16 localhost.localdomain sshd[1048]: Server listening on 0.0.0.0 port 22. 12月 20 08:22:16 localhost.localdomain sshd[1048]: Server listening on :: port 22. 12月 20 08:22:16 localhost.localdomain systemd[1]: Started OpenSSH server daemon. 12月 20 08:22:47 localhost.localdomain sshd[11234]: Accepted password for root from 192.168.47.1 ...sh2 11月 09 23:06:55 192.168.47.140 sshd[11798]: Accepted password for root from 192.168.47.1 port 51...sh2 11月 10 22:30:59 master sshd[20162]: Accepted password for root from 192.168.47.1 port 63093 ssh2 Hint: Some lines were ellipsized, use -l to show in full.
5.关闭防火墙
[root@master ~]# systemctl stop firewalld
关闭防火墙后要查看防火墙的状态,确认一下。
[root@master ~]# systemctl status firewalld
使用以下命令可以永久关闭防火墙
[root@master ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
6.创建hadoop用户
[root@master ~]# useradd hadoop
[root@master ~]# echo "1" |passwd --stdin hadoop
更改用户 hadoop 的密码 。
passwd:所有的身份验证令牌已经成功更新。
二.安装java环境
1.下载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。
2.卸载自带openjdk
3.安装jdk
4.设置java环境变量
在 Linux 中设置环境变量的方法比较多,较常见的有两种:一是配置 /etc/profile 文件,配置结果对整个系统有效,系统所有用户都可以使用;二是配置~/.bashrc 文件,配置结果仅对当前用户有效。这里使用第一种方法。
三.安装hadoop软件
1.获取hadoop安装包
Apache Hadoop 各 个 版 本 的 下 载 网 址 : https://archive.apache.org/dist/hadoop /common/。本教材选用的是 Hadoop 2.7.1 版本,安装包为 hadoop-2.7.1.tar.gz。需要先下载 Hadoop 安装包,再上传到 Linux 系统的/opt/software 目录。具体的方法见前一节“实验一 Linux 操作系统环境 设置“
2.安装Hadoop软件
解析:
bin:此目录中存放 Hadoop、HDFS、YARN 和 MapReduce 运行程序和管理 软件。
etc:存放 Hadoop 配置文件。
include: 类似 C 语言的头文件
lib:本地库文件,支持对数据进行压缩和解压。
libexe:同 lib
sbin:Hadoop 集群启动、停止命令
share:说明文档、案例和依赖 jar 包。
3.配置Hadoop环境变量
出现上述Hadoop帮助信息就说明Hadoop已经安装好了
4.修改目录所有者和所有者组
上述安装完成的 Hadoop 软件只能让 root 用户使用,要让 hadoop 用户能够 运行 Hadoop 软件,需要将目录/usr/local/src 的所有者改为 hadoop 用户。
四.安装单机版Hadoop系统
1.配置Hadoop配置文件
2.切换到Hadoop用户
使用Hadoop这个用户来运行Hadoop软件
3.创建输入数据存放目录
将输入数据存放在~/input目录(Hadoop用户主目录下的input目录中)
4.创建数据输入文件
5.测试mapreduce运行
五.Hadoop平台环境配置
1.实验环境下集群网络配置
六.ssh无密码验证配置
1.每个节点安装和启动ssh协议
2.切换Hadoop用户
3.每个节点都生成密钥对
4.查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚 生产的无密码密钥对
5.将 id_rsa.pub 追加到授权 key 文件中
6.修改文件"authorized_keys"权限
7.配置ssh服务
8.重启ssh服务
9.切换到Hadoop用户
10.验证ssh登录本机
在 hadoop 用户下验证能否嵌套登录本机,若可以不输入密码登录,则本机通过密钥登录 认证成功。
首次登录时会提示系统无法确认 host 主机的真实性,只知道它的公钥指纹,询问用户是 否还想继续连接。需要输入“yes”,表示继续登录。第二次再登录同一个主机,则不会再 出现该提示,可以直接进行登录。 读者需要关注是否在登录过程中是否需要输入密码,不需要输入密码才表示通过密钥认 证成功。
七.交换ssh密钥
1.将 Master 节点的公钥 id_rsa.pub 复制到每个 Slave 点
首次远程连接时系统会询问用户是否要继续连接。需要输入“yes”,表示继续。因为目 前尚未完成密钥认证的配置,所以使用 scp 命令拷贝文件需要输入slave1 节点 hadoop 用户的密码。
2.在每个 Slave 节点把 Master 节点复制的公钥复制到authorized_keys 文件
3.在每个 Slave 节点删除 id_rsa.pub 文件
4.将每个 Slave 节点的公钥保存到 Master
将 Slave1 节点的公钥复制到 Master
在 Master 节点把从 Slave 节点复制的公钥复制到 authorized_keys 文件
[hadoop@master ~]$ cat ~/id_rsa.pub >>~/.ssh/authorized_keys
在 Master 节点删除 id_rsa.pub 文件
[hadoop@master ~]$ rm -rf ~/id_rsa.pub
将 Slave2 节点的公钥复制到 Master
在 Master 节点把从 Slave 节点复制的公钥复制到 authorized_keys 文件
[hadoop@master ~]$ cat ~/id_rsa.pub >>~/.ssh/authorized_keys
在 Master 节点删除 id_rsa.pub 文件
[hadoop@master ~]$ rm -rf ~/id_rsa.pub
八.验证ssh无密码登录
1.查看 Master 节点 authorized_keys 文件
2.查看 Slave 节点 authorized_keys 文件
3.验证 Master 到每个 Slave 节点无密码登录
4.验证两个 Slave 节点到 Master 节点无密码登录
5.配置两个子节点slave1、slave2的JDK环境
九.Hadoop集群运行
1.在 Master 节点上安装 Hadoop
2.配置 hdfs-site.xml 文件参数
</configuration>
3.配置 core-site.xml 文件参数
4.配置 mapred-site.xml
5.配置 yarn-site.xml
6.Hadoop 其他相关配置
十.Hadoop集群运行
1.配置 Hadoop 格式化
2.查看 Java 进程
3.查看 HDFS 的报告
4.使用浏览器查看节点状态
在浏览器的地址栏输入http://master:50070,进入页面可以查看NameNode和DataNode 信息
在浏览器的地址栏输入 http://master:50090,进入页面可以查看 SecondaryNameNode信息
可以使用 start-dfs.sh 命令启动 HDFS。这时需要配置 SSH 免密码登录,否则在 启动过程中系统将多次要求确认连接和输入 Hadoop 用户密码。
1.在 HDFS 文件系统中创建数据输入目录
2.将输入数据文件复制到 HDFS 的/input 目录中
3.运行 WordCount 案例,计算数据文件中各单词的频度
除了可以用 HDFS 命令查看 HDFS 文件系统中的内容,也可使用网页查看 HDFS 文件 系统。在浏览器的地址栏输入 http://master:50070,进入页面,在 Utilities 菜单中 选择 Browse the file system,可以查看 HDFS 文件系统内容。如图 5-5 所示,查看 HDFS 的根目录,可以看到 HDFS 根目录中有三个目录,input、output 和 tmp。
查看 output 目录,如图 5-6 所示,发现有两个文件。文件_SUCCESS 表示处理成功,处理的结果 存放在 part-r-00000 文件中。在页面上不能直接查看文件内容,需要下载到本地系统才行。
可以使用 HDFS 命令直接查看 part-r-00000 文件内容,结果如下所示:
[hadoop@master hadoop]$ hdfs dfs -cat /output/part-r-00000
Hadoop 1
Hello 3
Huasan 1
World 1
可以看出统计结果正确,说明 Hadoop 运行正常。