Centos7搭建Hadoop集群V3.3.4
- 一、准备工作
- 1、配置hostname
- 2、hosts映射
- 3、关闭防火墙
- 4、同步时间
- 5、关闭selinux
- 6、配置ssh免密登陆
- 7、重启
- 二、安装所需环境
- 1、jdk安装
- 2、hadoop安装
- 三、修改配置
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
- yarn-site.xml
- workers
- 四、初始化并启动
- 1、初始化
- 2、启动
- 五、测试hdfs
本次安装Hadoop版本为3.3.4
安装规划(3台机器)
node01 :192.168.117.20 NameNode DataNode
node02 :192.168.117.21 DataNode
node03 :192.168.117.22 DataNode SecondaryNameNode
一、准备工作
1、配置hostname
hostname分别为node01,node02,node03
# 三台机器分别执行
hostnamectl set-hostname node01
hostnamectl set-hostname node02
hostnamectl set-hostname node03
2、hosts映射
# 三台机器均要执行
vim /etc/hosts
192.168.117.20 node01
192.168.117.21 node02
192.168.117.22 node03
3、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
4、同步时间
yum install ntpdate
ntpdate ntp5.aliyun.com
5、关闭selinux
vim /etc/selinux/config
修改为 SELINUX=disabled
6、配置ssh免密登陆
# 三台机器均执行一下命令
ssh-keygen -t rsa
# 将每台机器的公钥拷贝给每台机器
ssh-copy-id node01
ssh-copy-id node02
ssh-copy-id node03
测试
7、重启
reboot
二、安装所需环境
1、jdk安装
# 三台机器均执行
cd /etc/profile.d
vim jdk.sh
# 写入内容
export JAVA_HOME=/opt/button/jdk
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# 使配置生效
source /etc/profile
验证
java -version
2、hadoop安装
下载安装包
配置环境变量
# 三台机器均执行
vim /etc/profile.d/hadoop.sh
# 写入内容
export HADOOP_HOME=/opt/button/hadoop/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 使配置生效
source /etc/profile
验证
hadoop version
创建hadoop数据目录:
mkdir /opt/button/hadoop/data
cd /opt/button/hadoop
chmod -R 777 ./data/
三、修改配置
配置位于hadoop解压目录etc/hadoop目录下,三台机器配置保持一致
hadoop-env.sh
vim hadoop-env.sh
# jdk修改为自己的路径
export JAVA_HOME=/opt/button/jdk
core-site.xml
<!-- 指定HADOOP所使用的文件系统schema,NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/button/hadoop/data</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 文件系统垃圾桶保存时间 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:50090</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/button/hadoop/data/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/button/hadoop/data/</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<!-- 关闭yarn内存检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
workers
vim workers
# 写入如下内容
node01
node02
node03
四、初始化并启动
1、初始化
如果第一次启动集群需格式化NameNode,三个节点都操作
hdfs namenode –format
注:如果不是第一次,需要先执行stop-all.sh,然后删除data与logs中的文件再执行初始化命令
2、启动
在node01节点上的sbin目录找到start-all.sh并执行即可
执行如下操作解决此问题
vim /etc/profile.d/my_env.sh
# 添加如下内容
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
# 使配置生效
source /etc/profile
重新执行start-all.sh
查看启动的服务
NameNode默认端口9870
http://192.168.117.20:9870/
ResourceManager默认端口8088
五、测试hdfs
hadoop fs -mkdir /hfile
hadoop fs -put input.txt /hfile
hadoop fs -ls /hfile