看一下这个图,图里面表示是三个节点,左边这个是主节点,右边的两个是从节点,hadoop群集是支持主从架构的.
不同节点上启动的进程是不一样的.
主节点进程: NameNode,Secondary namenode, ResourceManager
从节点进程: DataNode, NodeManager
环境准备:三个虚拟机
192.168.247.5 hadoop1
192.168.247.6 hadoop2
192.168.247.7 hadoop3
注意:每个节点的基础环境都要先配置好,包括:
① IP
② hostname
③ 关闭防火墙,selinux
④ ssh免密登录
⑤ JDK
集群节点之间的时间同步
集群涉及多个节点,需要对这些节点做时间同步,如果节点之间时间不同步,会降低群集的稳定型,导致群集出现问题。
①安装 ntpdate
yum install -y ntpdate
②创建定时任务同步时间
crontab -e
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn
每个节点都要执行.
安装Hadoop
① 在主节点解压安装包
cd /home/software
tar -zxvf hadoop-3.2.1.tar.gz
② 设置环境变量
export JAVA_HOME=/usr/local/java/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export HADOOP_HOME=/home/software/hadoop-3.2.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
③ 修改配置文件
cd $HADOOP_HOME/etc/hadoop
(一) vim hadoop-env.sh
末尾加入
export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_HOME=/home/software/hadoop-3.2.1
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
(二) vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop_repo</value>
</property>
</configuration>
(三) vim hdfs-site.xml
修改hdfs-site.xml文件 ,把hdfs中文件副本数量设置为2,三个节点数量最多为2,因为群集中只有2个从节点.
nfiguration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop1:50090</value>
</property>
</configuration>
(四) vim mapred-site.xml
修改mapred-site.xml,设置mapreduce使用的资源调度框架
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(五) vim yarn-site.xml
修改yarn-site.xml,设置yarn上支持运行的服务和环境变量白名单
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
</configuration>
(六) 修改works文件,增加所有从节点主机名,一行一个
vim workers
hadoop2
hadoop3
(七) 修改启动脚本,在文件最前面增加如下内容
cd $HADOOP_HOME/sbin
vim start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vim stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vim start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
vim stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
(八) 把修改好的安装包拷贝到其他从节点
scp -rq $HADOOP_HOME hadoop1:/home/software
scp -rq $HADOOP_HOME hadoop2:/home/software
(九) 在主节点上格式化HDFS
hdfs namenode -format
在显示信息中看到:
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.
则证明格式化成功.
启动群集:
cd $HADOOP_HOME/sbin
start-all.sh
验证群集
在主节点上查看JAVA程序,进程信息显示如下:
jps
10001 NameNode
5008 ResourceManager
7009 SecondaryNameNode
在从节点上查看java程序,进程信息显示如下:
jps
2008 NodeManager
1999 DataNode
停止群集
cd $HADOOP_HOME/sbin
stop-all.sh
Hadoop群集安装成功.
Yarn管理网站:
Hadoop管理网站:
Hadoop官网文档:
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html