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 hadoop33. 关闭防火墙
查看防火墙状态:
firewallcmd state关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld4. 同步时间
安装ntpdate:

yum install ntpdate y同步时间:
ntpdate cn.pool.ntp.org5. 配置SSH免密登录
生成密钥对:
sshkeygen t rsa按提示操作,生成密钥对。
拷贝公钥到其他节点:
sshcopyid hadoop2
sshcopyid hadoop3测试免密登录:
ssh hadoop2
ssh hadoop3JDK环境安装
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 versionHadoop安装与配置
1. 下载并解压Hadoop
下载Hadoop:从Apache Hadoop官网下载所需版本,如hadoop3.2.0。
上传并解压:
tar zxvf hadoop3.2.0.tar.gz C /opt
mv /opt/hadoop3.2.0 /opt/hadoop2. 配置Hadoop环境变量
编辑环境变量文件:
vi /etc/profile添加以下内容:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin使配置文件生效:
source /etc/profile3. 配置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_2614. 格式化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
