本文介绍的是使用3台Centos 7 的虚拟机搭建3个节点的Hadoop-3.2.0全分布集群,JDK版本是1.8。
一、环境准备1、配置静态IP(每个节点)
很容易百度得到,本文不做叙述。
2、配置主机名及hosts文件(每个节点)
将主机名替换掉hostname文件内容
vi /etc/hostname
配置IP与节点名称的映射关系
vi /etc/hosts
192.168.18.237 master 192.168.18.238 node1 192.168.18.239 node2
3、关闭防火墙(每个节点)
systemctl stop firewalld systemctl disable firewalld
4、关闭SELinux(每个节点)
sed -i 's/enforecing/disable/' /etc/selinux/config setenforce 0
5、配置免密登录
ssh-keygen -t rsa
连续回车
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1 ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
6、配置jdk1.8(每个节点)
vim /etc/profile #添加如下信息 export JAVA_HOME=jdk安装目录 export CLASSPATH=$JAVA_HOME/lib/ export PATH=$PATH:JAVA_HOME/bin 再保存执行 #source /etc/profile 验证 #java -version二、搭建Hadoop全分布集群
1、下载 hadoop-3.2.0 安装包
http://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
下载好后传到主节点上
2、解压到 /opt/hadoop 目录下
tar -zxvf hadoop-3.2.0.tar.gz -C /opt/hadoop
3、添加环境变量
vi /etc/profile
export HADOOP_HOME=/opt/hadoop/hadoop-3.2.0/
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_USER_NAME=root
4、分别在hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中添加JAVA_HOME:
export JAVA_HOME=jdk安装目录
5、验证Hadoop配置是否生效
hadoop version
6、修改Hadoop配置文件
core-site.xml
fs.checkpoint.period 3600 fs.checkpoint.size 67108864 fs.defaultFS hdfs://master:9000 hadoop.tmp.dir file:/data/hdfs/tmp hadoop.http.staticuser.user root
hdfs-site.xml
dfs.replication 2 dfs.namenode.name.dir file:/data/hdfs/name dfs.datanode.data.dir file:/data/hdfs/data dfs.namenode.secondary.http-address master:50090 dfs.namenode.http-address master:50070 dfs.namenode.checkpoint.dir file:/data/hdfs/checkpoint dfs.namenode.checkpoint.edits.dir file:/data/hdfs/edits
mapred-site.xml
mapreduce.framework.name yarn mapred.job.tarcker master:10020 mapreduce.jobhistory.webapp.address master:19888
yarn-site.xml
yarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandle yarn.resourcemanager.resource-tarcker.address master:8025 yarn.resourcemanager.scheduler.address master:8030 yarn.resourcemanager.address master:8040 yarn.resourcemanager.admin.address master:8033 yarn.resourcemanager.webapp.address master:8088
workers文件
vi works
node1 node2
sbin目录下的一键开关脚本
vi sbin/start-dfs.sh vi sbin/stop-dfs.sh
全部都添加以下内容:
HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
vi sbin/start-yarn.sh vi sbin/stop-yarn.sh
全部都添加以下内容:
YARN_RESOURCEMANAGER_USER=root HDFS_DATANODE_SECURE_USER=yarn YARN_NODEMANAGER_USER=root
7、将配置好的文件拷贝到其他节点
scp -r /opt/hadoop root@node1:/opt/ scp -r /opt/hadoop root@node2:/opt/
8、格式化namenode
hdfs namenode -format
9、启动
start-all.sh
10、验证
主节点:
jps
可以看到:
NameNode
ResourceManager
SecondaryNameNode
Jps
从节点:
jps
可以看到:
DataNode
NodeManager
Jps
11、Web端口查看集群状况
在浏览器输入:http://master:8088打开ResourceManager页面。
在浏览器输入:http://master:50070打开Hadoop Namenode页面。



