CentOS 7上Hadoop的安装与使用
一、环境准备
(一)系统要求
CentOS 7操作系统,至少4GB内存。
(二)安装Java
1、检查是否已安装Java:执行命令java version
,若未安装则需进行安装。
2、安装Java:通过以下命令安装OpenJDK 1.8开发包
sudo yum install java1.8.0openjdkdevel y
3、验证Java是否安装成功:再次执行java version
,查看输出结果。
(三)安装SSH
1、确保SSH服务可用:执行命令sudo systemctl start sshd
启动SSH服务,并设置开机自启
sudo systemctl enable sshd
2、配置SSH免密登录:在Master节点上生成SSH秘钥对
sshkeygen t rsa
然后分别将公钥拷贝到其他节点上
sshcopyid user@slave1 sshcopyid user@slave2
二、下载与安装Hadoop
(一)下载Hadoop
通过以下命令下载Hadoop
wget https://downloads.apache.org/hadoop/common/hadoop3.3.1/hadoop3.3.1.tar.gz
(二)解压Hadoop
执行命令解压Hadoop压缩包
tar xzvf hadoop3.3.1.tar.gz C /usr/local sudo mv /usr/local/hadoop3.3.1 /usr/local/hadoop
(三)配置Hadoop环境变量
编辑~/.bashrc
文件,添加以下内容
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效
source ~/.bashrc
三、配置Hadoop核心文件
(一)配置coresite.xml
编辑/usr/local/hadoop/etc/hadoop/coresite.xml
文件,添加以下内容
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
(二)配置hdfssite.xml
编辑/usr/local/hadoop/etc/hadoop/hdfssite.xml
文件,添加以下内容
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
(三)配置mapredsite.xml
如果文件不存在,请复制mapredsite.xml.template
为mapredsite.xml
,然后添加以下内容
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
(四)配置yarnsite.xml
编辑/usr/local/hadoop/etc/hadoop/yarnsite.xml
文件,添加以下内容
<configuration> <property> <name>yarn.nodemanager.auxservices</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.YarnChild</value> </property> </configuration>
四、格式化HDFS与启动Hadoop
1、格式化HDFS:在Master节点上执行以下命令
hdfs namenode format
2、启动Hadoop:启动所有Hadoop服务
startdfs.sh startyarn.sh
可以使用jps
命令查看进程,确认NameNode、DataNode、ResourceManager和NodeManager等进程是否正常启动。
五、测试Hadoop是否正常工作
1、创建测试目录并上传文件:执行以下命令创建测试目录和上传本地文件到HDFS
hdfs dfs mkdir /user hdfs dfs mkdir /user/<yourusername> hdfs dfs put /path/to/local/file.txt /user/<yourusername>/
2、查看HDFS中的文件:执行以下命令查看HDFS中的文件
hdfs dfs ls /user/<yourusername>/
六、FAQs
(一)问题一:启动Hadoop时出现“Permission denied”错误,如何解决?
答:这可能是由于用户权限不足导致的,可以尝试使用sudo
命令来提升权限,或者检查相关目录和文件的权限设置是否正确,确保Hadoop安装目录及其子目录对当前用户具有读写权限,如果Hadoop是安装在系统目录下,如/usr/local
,可能需要以root用户身份运行部分命令或修改相关配置文件中的权限设置为合适的值。
(二)问题二:无法访问HDFS的Web UI,可能是什么原因?
答:首先检查Hadoop是否成功启动,特别是NameNode和ResourceManager进程是否正常,可以通过执行jps
命令查看进程列表来确认,如果进程正常启动但仍然无法访问Web UI,可能是网络配置问题,检查防火墙是否阻止了访问端口(默认NameNode的Web UI端口是50070,ResourceManager的Web UI端口是8088),如果是,需要关闭防火墙或配置相应的规则允许访问这些端口,也可能是浏览器缓存问题,尝试清除浏览器缓存后重新访问。