参考视频:
https://www.bilibili.com/video/BV1C5411c7Qv?p=5&vd_source=0dcc3acedc4fc1c77ebc9bfbcbd12cec
我安装的是hadoop3.3.5
jdk不是使用的rpm方式安装的,所以相对于参考笔记会有一点变动
参考视频对应的Hadoop集群搭建笔记
本文档在最小化安装centos7后的操作。
首先,对于大数据集群提前进行主机名、IP地址、主次服务的规划:
node01 :192.168.199.80 NN DN
node02 :192.168.199.81 DN
node03 :192.168.199.82 DN SN
其中安装第一台机器时,建议在安装时就指定主机名,IP地址根据自己的局域网情况填写
1、常用软件工具的安装
sudo yum install net-tools
sudo yum install vim
sudo vim /etc/vimrc
添加 set ts=4
2、系统准备:
2.1、关闭防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
2.2、关闭selinux
sudo vim /etc/selinux/config
修改为 SELINUX=disabled
2.3、源码环境准备
在家目录下,创建soft目录,拷贝jdk的rpm包和hadoop的tar包
2.3.1、解压环境包
sudo rpm -ivh jdk-8u281-linux-x64.rpm
sudo tar -zxvf hadoop-2.7.1.tar.gz -C /opt/
2.3.2、添加hadoop环境变量
sudo vim /etc/profile.d/hadoop.sh
export HADOOP_HOME=/opt/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.3.3、改变hadoop文件权限
cd /opt
sudo chown -R huser:huser /opt/hadoop-3.3.5
2.3.4、创建HDFS的NN和DN工作主目录
sudo mkdir /var/big_data
sudo chown -R huser:huser /var/big_data
3、hadoop系统配置
本内容主要针对Hadoop的配置文件进行修改,修改原则和最开始的服务搭建要一致
进入/opt/hadoop-3.3.5/etc/hadoop目录
3.1、为Hadoop提供JAVA解释器路径信息,主要目的是解决远程访问hadoop时候JAVA_HOME无法继承的问题
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_281(因为我不是使用的rpm方式安装,所以这里从default改成这个)
3.2、为Yarn任务、资源管理器提供Java运行环境
vim yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_281
3.3、配置HDFS主节点信息、持久化和数据文件的主目录
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/big_data</value>
</property>
3.4、配置HDFS默认的数据存放策略
vim hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:9870</value>(我的版本对应9870,官方文档对应9868,但是通过netstat -lntp查看的端口号是9870)
</property>
3.5、配置mapreduce任务调度策略
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3.6、配置Yarn资源管理角色的信息
vim yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
3.7、配置datanode节点信息
vim workers (将slaves改为workers)
node01
node02
node03
4、提前准备主机名解析文件,为后面的克隆机器做好准备(可选,若不做,克隆后为每台机器重新添加亦可)
sudo vim /etc/hosts
192.168.199.80 node01
192.168.199.81 node02
192.168.199.82 node03
注意屏蔽或删除上面的127.0.0.1的信息
5、克隆其他集群信息
关闭机器,准备克隆
克隆后,修改node02、node03的IP和主机名
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
sudo vim /etc/hostname
6、下面开始配置集群的ssh免密
在3台机器上执行产生自己的公钥:
ssh-keygen -t rsa
按照默认值回车确定
将每台机器的公钥拷贝给每台机器,注意下面的指令要求3台机器都要执行:
ssh-copy-id node01
ssh-copy-id node02
ssh-copy-id node03
XSHELL也可以多窗口同时执行同一命令,查看-撰写-撰写栏-将文本发送到全部Xshell窗口
遇到问题:设置集群免密以后仍然需要密码,键入下面命令并重新生成和分发
chmod 7555 /root
7、格式化hdfs
hdfs namenode -format
ls /var/big_data/dfs/name/current
报错:
Starting namenodes on [node01]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [node03]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
解决:
在start-dfs.sh和stop-dfs.sh中添加参数
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-dfs.sh
jps
192.168.199.80:9870