一、环境简介
本教程服务器主机都是CentOS 7(Red Hat 7 亦可),集群结点分布情况如下表:
二、Linux 环境准备
01. 创建hadoop用户
02. HOSTNAME 处理
01) 修改服务器的 hostname,使用命令 hostnamectl set-hostname
02) 向/etc/hosts文件中添加域名和IP的映射,内容如下
注:以上所有操作都是在root用户下完成,非root用户可以在所有命令前加sudo
03. ssh免密码登录
01) ssh安装,使用命令 sudo yum isntall -y openssd
02) ssh dsa算法密钥对生成,分别在5台机器执行以下3条命令
03) 复制公钥到集群服务器,使用命令 ssh-copy-id @
示例:复制 hdpslave67(192.168.6.67) 的公钥到 hdpslave68(192.168.6.68)
注:可以执行 ssh hadoop@hdpslave68 命令看是否需要输入登录密码来确认是否陈功,同时避免以后检查出什么问题最好保证集群中的服务器能够两两无密码登录。
04. JDK 安装
01) 下载并安装JDK
02) JDK 环境变量配置:sudo vi /etc/profile
注:jdk的环境变量配置也可写入 hadoop 用户目录下的 .bashrc 文件,或者 .bash_profile 文件
05. 关闭所有服务器的防火墙
三、HAOOP 安装以及配置
01) 下载并安装 hadoop (版本:3.0.0)
02) 配置 hadoop 环境变量,向 /home/hadoop/.bashrc 文件添加以下内容
03) 配置 hadoop 安装目录(/usr/local/hadoop)下的 etc/hadoop/core-site.xml
04) 配置 hadoop 安装目录(/usr/local/hadoop)下的 etc/hadoop/hdfs-site.xml
05) 配置 hadoop 安装目录(/usr/local/hadoop)下的 etc/hadoop/mapred-site.xml
06) 配置 hadoop 安装目录(/usr/local/hadoop)下的 etc/hadoop/yarn-site.xml
07) 配置 hadoop 安装目录(/usr/local/hadoop)下的 etc/hadoop/workers
注:该 workers 文件也可以配置为ip,如下
08) 配置 hadoop 安装目录(/usr/local/hadoop)下的 etc/hadoop/hadoop-env.sh
09) 格式化namenode
注:格式化之前需要将剩余的主机都如此配置hadoop,最简单的做法就是配置好一台,然后直接复制到剩余的主机服务器上。同时后续可能需要修改配置文件每次都需要同步配置文件,可以写个简单的同步脚本,内容如下。
10) 启动集群
注:启动之后通过 jps 命令查看java后台进程,各个结点的java进程信息如下
11) 在有图形界面的pc上访问下面两个地址链接,查看相关信息
注:以域名访问需要向该pc的hosts文件中加入 "192.168.6.171 hdpmmaster",Windows 操作系统的hosts文件路径在 "C:\Windows\System32\drivers\etc\hosts",CentOS操作系统的hosts文件路径在"/etc/hosts"。
12) 单词统计示例运行
注:01. 每次执行上面的 hadoop jar 命令,需要确认集群结点上的 /output 目录是否存在,存在则使用命令 "hadoop fs -rmr -f /output"删除该目录
02. 执行成功之后可以在 http://hdpmmaster:9870/explorer.html 中的"/output"文件夹中找到输出结果,允许下载和预览该结果文件
13) 停止集群
14) 任务历史服务启动与关闭,web访问地址是 http://hdpmmaster:19888/jobhistory/ 端口是在mapred-site.xml中配置的
四、FAQ
01. 物理内存或虚拟内存监测溢出
02. datanode和namenode都启动成功,但datanode没有与namenode关联成功
03. unhealthy状态的datanode处理(下面只是该现象其中一种原因)
领取专属 10元无门槛券
私享最新 技术干货