centos7上Hadoop安装与配置全解析
在大数据时代,Hadoop作为一款开源的分布式计算框架,广泛应用于处理大规模数据集,本文将详细介绍如何在CentOS 7操作系统上安装和配置Hadoop,包括前期准备、JDK环境搭建、Hadoop安装与配置以及常见问题解决等内容,通过详细的步骤和实用的示例,帮助读者顺利完成Hadoop集群的搭建。
前期准备
1. 安装三台CentOS7虚拟机
创建虚拟机:使用VMware或其他虚拟机软件创建三台CentOS7虚拟机,分别命名为hadoop1(Namenode)、hadoop2(Datanode)和hadoop3(Datanode)。
修改主机名:
hostnamectl sethostname hadoop1
同样方法修改其他两台虚拟机的主机名为hadoop2和hadoop3。
2. 修改Hosts文件
编辑Hosts文件:
vi /etc/hosts
添加以下内容:
192.168.80.132 hadoop1 192.168.80.133 hadoop2 192.168.80.134 hadoop3
3. 关闭防火墙
查看防火墙状态:
firewallcmd state
关闭防火墙:
systemctl stop firewalld systemctl disable firewalld
4. 同步时间
安装ntpdate:
yum install ntpdate y
同步时间:
ntpdate cn.pool.ntp.org
5. 配置SSH免密登录
生成密钥对:
sshkeygen t rsa
按提示操作,生成密钥对。
拷贝公钥到其他节点:
sshcopyid hadoop2 sshcopyid hadoop3
测试免密登录:
ssh hadoop2 ssh hadoop3
JDK环境安装
1. 下载并上传JDK
下载JDK:从Oracle官网或其他可信赖源下载jdk8u版本。
上传JDK文件:使用XShell+Xftp工具将JDK文件上传至/usr/local/java
目录。
2. 解压并配置JDK
解压JDK:
tar zxvf jdk8u261linuxx64.tar.gz C /usr/local/java
配置环境变量:
vi /etc/profile
添加以下内容:
export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export PATH=$JAVA_HOME/bin:$PATH
使配置文件生效:
source /etc/profile
验证安装:
java version
Hadoop安装与配置
1. 下载并解压Hadoop
下载Hadoop:从Apache Hadoop官网下载所需版本,如hadoop3.2.0。
上传并解压:
tar zxvf hadoop3.2.0.tar.gz C /opt mv /opt/hadoop3.2.0 /opt/hadoop
2. 配置Hadoop环境变量
编辑环境变量文件:
vi /etc/profile
添加以下内容:
export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置文件生效:
source /etc/profile
3. 配置Hadoop核心文件
创建必要的目录:
mkdir p /root/hadoop/tmp /root/hadoop/var /root/hadoop/dfs /root/hadoop/dfs/name /root/hadoop/dfs/data
编辑coresite.xml:
vi /opt/hadoop/etc/hadoop/coresite.xml
添加以下内容:
<property> <name>hadoop.tmp.dir</name> <value>/root/hadoop/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop1:9000</value> </property>
编辑hdfssite.xml:
vi /opt/hadoop/etc/hadoop/hdfssite.xml
添加以下内容:
<property> <name>dfs.namenode.name.dir</name> <value>/root/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/root/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.http.address</name> <value>0.0.0.0:50070</value> </property>
编辑yarnsite.xml:
vi /opt/hadoop/etc/hadoop/yarnsite.xml
添加以下内容:
<property> <name>yarn.resourcemanager.hostname</name> <value>hadoop1</value> </property> <property> <name>yarn.nodemanager.auxservices</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.application.classpath</name> <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_MAPREDUCE_HOME/*,$HADOOP_MAPREDUCE_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*</value> </property> <property> <name>yarn.nodemanager.vmemcheckenabled</name> <value>false</value> </property>
编辑mapredsite.xml:
vi /opt/hadoop/etc/hadoop/mapredsite.xml
添加以下内容:
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
编辑hadoopenv.sh:
vi /opt/hadoop/etc/hadoop/hadoopenv.sh
添加以下内容:
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
4. 格式化NameNode并启动Hadoop集群
格式化NameNode:
hdfs namenode format
启动NameNode和DataNode:
startdfs.sh startyarn.sh
验证集群状态:通过访问http://hadoop1:50070和http://hadoop1:8088查看NameNode和ResourceManager的状态。
常见问题与FAQs
Q1: 如何更改Hadoop集群中某台机器的主机名?
A1: 使用以下命令更改主机名:
hostnamectl sethostname newhostname
然后永久修改/etc/hosts
文件和/etc/hostname
文件,并重启系统。
Q2: 如何确保Hadoop集群中的各节点时间同步?
A2: 确保所有节点安装了NTP服务,并指向同一时间服务器,执行以下命令同步时间:
ntpdate cn.pool.ntp.org