1.机器准备
1.1 准备三台机器
我这里使用了两台配备了centos7的虚拟机和一台arch的笔记本作为搭建的机器
1.2 系统设置准备
我这里以虚拟机为例,登录虚拟机root账号后
vi /ect/hostname
输入你想改的主机名
vi /etc/sysconfig/network-scripts/ifcfg-ens33
更改ip地址
最好可以安装配置下ssh
启动ssh
sudo service sshd start
默认开机启动ssh
systemctl enable sshd.service
配置hosts文件
vi /etc/hosts
1.3下载安装Hadoop与open-jdk
在hadoop.apache.org/releases.ht…
tar -xvf hadoopXXXXX.tar.gz
JDK的安装可以看我的上一篇文章或者百度教程
测试java环境
java -version
javac
1.4防火墙设置
关闭防火墙
systemctl stop firewalld.service
设置防火墙开机不启动
systemctl disable firewalld.service
1.5配置Hadoop用户
首先创建账户
adduser hadoop
查看账户信息
id hadoop
为Hadoop用户添加sudo权限
vi /etc/sudoers
加入
hadoop ALL=(root) NOPASSWD:ALL
设置文件拥有者
chown -R hadoop:hadoop /user/local/hadoopXXXX
2.Hadoop集群配置
2.1集群规划
| os003 | os001 | os002 | |
|---|---|---|---|
| hdfs | datanode secondarynamenode | namenode datanode | datanode |
| yarn | nodemanager | resoucemanager nodemanager | nodemanager |
2.2配置文件
首先我们来配置os001
vim etc/hadoop/hadoop-env.sh
更改
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
vim etc/hadoop/core-site.xml
输入
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://os001:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.2.1/data/tmp</value>
</property>
</configuration>
vim etc/hadoop/hdfs-site.xml
输入
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>os003:9868</value>
</property>
</configuration>
vim etc/hadoop/yarn-env.sh
输入
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
vim etc/hadoop/yarn-site.xml
输入
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>os001</value>
</property>
</configuration>
vim etc/hadoop/mapred-env.sh
输入
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
vim etc/hadoop/mapred-site.xml
输入
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</propertyn
</configuration>
通过分发脚本xrsync或者其他方法在其他机器上同步hadoop/etc/下的配置文件
2.2配置ssh集群
在os001上的hadoop用户目录下输入
ssh-keygen -t rsa
输入两次回车生成一个私钥一个公钥
可查看生成了一个.ssh文件
ls -al
id_rsa.pub里寄存了公钥
[hadoop@os001 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDp+ENjMLAVYYVGHU5YPWl4zuH3ICkyefmT7bywuX0HGEHVzRJ74nNqeyM2LnIc4ZTb2kjexBv/o+oZrz8TuP6SqFhx+Zt99SWOatAIqzpYm8hSQIGyGSnQlj3eK/mxGlzEB6HTdiF4qRdvOw81ohEByKtXJYKgzFzLt463cS+oLAHjMwTAdn7vbpCVOccqhAc/5RinW047Xz4pPZDsf7I36jUqWlZ6bklj6FUulyjC7ecpPzXfvck7mogdXxgyDpOQf4N85qnVq5ITpzbsn+ntqsJ7gMHC4NkMouk/t0pTK0XfBQBbaKP79qCkKh47A7HJ7XhO28CnKJUYXX6ZIPJ1 hadoop@os001
设置hadoop用户目录的权限为700
chmod 700 /home/hadoop
设置.ssh目录权限为700
chmod 700 /home/hadoop/.ssh
设置authorized_keys文件权限为600
chmod 600 /home/hadoop/.ssh
把公钥传给其他机器,因为os002上配置了namenode与resoucemanager
ssh-copy-id os002@os002
ssh-copy-id os003@os003
ssh-copy-id os001@os001
测试
ssh os003@os003
因可以不用密码直接登录os003
输入exit可退出ssh
3.启动hadoop集群
3.1格式化namenode
首先在os001下格式化NameNode
bin/hdfs namenode -format
3.2配置workers文件
配置workers(2.X版本为slaves文件)
vim workers
加入datanode
os001
os002
os003
其他机器也同样设置
3.3启动集群
在os001中启动hdfs
[hadoop@os001 ~]$ /usr/local/hadoop-3.2.1/sbin/start-dfs.sh
其中yarn
[hadoop@os001 ~]$ /usr/local/hadoop-3.2.1/sbin/start-yarn.sh
查看各个主机节点启动情况
jps