如何在Ubuntu HDFS上部署应用
导读:在Ubuntu上部署HDFS应用的基础步骤 1. 环境准备 更新系统:运行sudo apt update && sudo apt upgrade -y确保系统软件包最新。 安装基础工具:安装编译工具和SSH服务(用于集群通...
在Ubuntu上部署HDFS应用的基础步骤
1. 环境准备
- 更新系统:运行
sudo apt update & & sudo apt upgrade -y
确保系统软件包最新。 - 安装基础工具:安装编译工具和SSH服务(用于集群通信),命令:
sudo apt install -y build-essential openssh-server
。
2. 安装Java环境
Hadoop依赖Java运行,推荐安装OpenJDK 8或11(兼容性更好)。
- 安装OpenJDK 8:
sudo apt install -y openjdk-8-jdk
。 - 验证安装:
java -version
,输出应包含Java版本信息(如openjdk version "1.8.0_221"
)。
3. 下载并解压Hadoop
- 从Apache官网下载稳定版Hadoop(如3.3.4):
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
。 - 解压到指定目录(如
/usr/local
):sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
。 - 重命名目录(可选):
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
。
4. 配置Hadoop环境变量
- 编辑
~/.bashrc
文件(用户级配置)或/etc/profile
(系统级配置),添加以下内容:export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使配置生效:
source ~/.bashrc
(或source /etc/profile
)。
5. 配置HDFS核心文件
进入Hadoop配置目录($HADOOP_HOME/etc/hadoop
),修改以下文件:
-
core-site.xml(定义HDFS默认文件系统):
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://localhost:9000< /value> < !-- 单机模式为localhost,集群模式替换为NameNode IP --> < /property> < /configuration>
-
hdfs-site.xml(定义HDFS存储路径和副本数):
< configuration> < property> < name> dfs.replication< /name> < value> 1< /value> < !-- 单机模式设为1,集群模式根据节点数量调整(如3) --> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> /usr/local/hadoop/data/namenode< /value> < !-- NameNode元数据存储路径 --> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> /usr/local/hadoop/data/datanode< /value> < !-- DataNode数据存储路径 --> < /property> < /configuration>
-
(可选)yarn-site.xml(若启用YARN资源管理):
< configuration> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < /property> < property> < name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name> < value> org.apache.hadoop.mapred.ShuffleHandler< /value> < /property> < /configuration>
-
(可选)workers文件(集群模式下指定DataNode节点):
编辑$HADOOP_HOME/etc/hadoop/workers
,添加DataNode主机名(如slave1
、slave2
),每行一个。
6. 创建HDFS数据目录
- 创建NameNode和DataNode的存储目录:
sudo mkdir -p /usr/local/hadoop/data/namenode sudo mkdir -p /usr/local/hadoop/data/datanode
- 修改目录权限(确保Hadoop用户拥有所有权):
sudo chown -R $USER:$USER /usr/local/hadoop/data
7. 格式化NameNode
首次启动HDFS前,必须格式化NameNode(初始化元数据):
hdfs namenode -format
注意:格式化会清除所有HDFS数据,仅首次启动时执行一次。
8. 启动HDFS服务
- 启动HDFS服务(包含NameNode和DataNode):
start-dfs.sh
- 验证进程是否启动:
jps
,输出应包含NameNode
、DataNode
(单机模式)或SecondaryNameNode
(可选)。
9. 验证HDFS状态
- 命令行验证:
- 查看HDFS根目录:
hdfs dfs -ls /
。 - 创建测试目录:
hdfs dfs -mkdir -p /user/$USER
。 - 上传本地文件到HDFS:
hdfs dfs -put ~/test.txt /user/$USER/
。 - 下载HDFS文件到本地:
hdfs dfs -get /user/$USER/test.txt ~/test_downloaded.txt
。
- 查看HDFS根目录:
- Web界面验证:
打开浏览器访问
http://localhost:9870
(HDFS NameNode Web界面),查看集群状态和文件系统。
10. 可选:配置SSH免密码登录(集群模式必需)
若部署HDFS集群,需配置主节点(NameNode)到从节点(DataNode)的SSH免密登录:
- 生成SSH密钥:
ssh-keygen -t rsa -P ''
(直接回车,默认保存到~/.ssh/id_rsa
)。 - 分发公钥到从节点:
ssh-copy-id slave1
(替换为从节点主机名)。 - 测试免密登录:
ssh slave1
,无需输入密码即可登录。
常见问题排查
- NameNode无法启动:检查
dfs.namenode.name.dir
路径是否存在且权限正确,或尝试删除/usr/local/hadoop/data/namenode/current
目录(重新格式化)。 - DataNode未注册:检查
dfs.datanode.data.dir
路径是否正确,或查看DataNode日志($HADOOP_HOME/logs/hadoop-*-datanode-*.log
)。 - 端口冲突:修改
core-site.xml
中的fs.defaultFS
端口(如9001
),确保未被其他服务占用。
通过以上步骤,可在Ubuntu系统上完成HDFS的基础部署。如需扩展为集群模式,需重复“环境准备”至“启动HDFS服务”步骤在从节点执行,并同步配置文件(通过scp
命令分发$HADOOP_HOME/etc/hadoop
目录到所有从节点)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu HDFS上部署应用
本文地址: https://pptw.com/jishu/720472.html