- 虚拟机配置
配置网络
vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络
service network restart
关闭防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
systemctl status firewalld
关闭selinux
sudo vim /etc/selinux/config
修改为 SELINUX=disabled
配置域名解析(3个节点都需要添加)
vi /etc/hosts
192.168.25.10 node1
192.168.25.11 node2
192.168.25.12 node3
- 软件工具安装
sudo yum install net-tools
sudo yum install vim
- 安装主节点JDK
# 卸载之前的原因,主要是需要保证安装的JDK版本的正确性。
[root@Node1 ~]# rpm -qa | grep jdk # 如果有,请卸载
[root@Node1 ~]# rpm -e xxxxxxxx --nodeps # 将查询到的内置jdk强制卸载
上传JDK安装包到指定的路径
使用FinalShell直接上传即可,上传到 /root/softwares 下
解压JDK到指定安装路径
[root@Node1 ~]# cd /root/softwares && tar -zxvf jdk-8u212-linux-x64.tar.gz -C
/usr/local
配置环境变量
[root@Node1 local]# vim /etc/profile
...上述内容省略,在末尾添加即可...
# Java Environment
export JAVA_HOME=/usr/local/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
重新引导,使得环境变量生效
[root@Node1 local]# source /etc/profile
验证JDK是否配置完成
[root@Node1 local]# java -version
- 安装主节点Hadoop
解压Hadoop
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/
配置hadoop环境变量
[root@Node1 ~]# vim /etc/profile
export HADOOP_HOME=/opt/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
重新引导,使得环境变量生效
[root@Node1 ~]# source /etc/profile
验证是否配置成功
[root@Node1 ~]# hadoop version
创建HDFS的NN和DN 主目录
mkdir /var/big_data
配置文件修改
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/big_data</value>
</property>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:50090</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value>
<discription>每个节点可用内存,单位MB</discription>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1500</value>
<discription>单个任务可申请最少内存,默认1024MB</discription>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
<discription>单个任务可申请最大内存,默认8192MB</discription>
</property>
</configuration>
hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_321
# Hadoop3中,需要添加如下配置,设置启动集群角色的用户是谁
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
- 格式化集群
hdfs namenode -format
- List item
vi /opt/hadoop-3.1.3/etc/hadoop/workers
node1
node2
node3
- 启动集群
[root@Node1 hadoop]# start-dfs.sh
Starting namenodes on
Starting datanodes
Starting secondary namenodes
[root@Node1 hadoop]# jps
11090 Jps
10595 NameNode
10938 SecondaryNameNode
10763 DataNode
注:如果启动报错 Permission denied (publickey,gssapi-keyex,gssapi-with-
mic,password).
1.ssh-keygen -t rsa 然后一路回车
2.cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.chmod 600 ~/.ssh/authorized_keys
4.测试是否能无密码登录 ssh node1 #node1是自己的主机名
5.如果不需要密码登录:start-dfs.sh
-
关闭机器,准备克隆
-
修改其他两台节点IP和主机名
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
sudo vim /etc/hostname 或者执行 hostnamectl set-hostname node3
- 产生公钥
ssh-keygen -t rsa
ssh-copy-id Node1 三台节点都要执行
ssh-copy-id Node2 三台节点都要执行
ssh-copy-id Node3 三台节点都要执行
ssh Node2 测试是否免密成功
- 启动集群命令
start-all.sh 启动命令
stop-all.sh 停止命令
- 重新初始化(如果出现无法启动就重新格式化
[root@node1 ~]# rm -rf /var/big_data/
[root@node1 ~]# rm -rf /opt/hadoop-3.1.3/logs/
[root@node1 ~]# mkdir /var/big_data