如何在Ubuntu上使用Hadoop命令行
导读:一、前置准备:安装Java环境 Hadoop依赖Java运行环境,需先安装OpenJDK 11(推荐): sudo apt update sudo apt install openjdk-11-jdk # 验证安装 java -versio...
一、前置准备:安装Java环境
Hadoop依赖Java运行环境,需先安装OpenJDK 11(推荐):
sudo apt update
sudo apt install openjdk-11-jdk
# 验证安装
java -version # 应输出Java版本信息
javac -version # 验证编译器
二、下载并解压Hadoop
- 从Apache官网下载稳定版Hadoop(如3.3.1):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz - 解压到
/usr/local目录(需管理员权限):sudo tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/ - (可选)重命名解压后的目录以便管理:
sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
三、配置环境变量
编辑当前用户的~/.bashrc文件(仅影响当前用户),添加Hadoop路径:
nano ~/.bashrc
在文件末尾添加以下内容(替换/usr/local/hadoop为实际解压路径):
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后使配置生效:
source ~/.bashrc
验证环境变量:
echo $HADOOP_HOME # 应输出Hadoop安装路径
hadoop version # 应显示Hadoop版本信息
四、配置Hadoop核心文件
进入Hadoop配置目录($HADOOP_HOME/etc/hadoop),修改以下文件:
1. core-site.xml(HDFS默认文件系统)
<
configuration>
<
property>
<
name>
fs.defaultFS<
/name>
<
value>
hdfs://localhost:9000<
/value>
<
!-- 单机模式指向本地 -->
<
/property>
<
/configuration>
2. hdfs-site.xml(HDFS配置)
<
configuration>
<
property>
<
name>
dfs.replication<
/name>
<
value>
1<
/value>
<
!-- 单机模式副本数设为1 -->
<
/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>
3. mapred-site.xml(MapReduce框架)
若文件不存在,先复制模板:
cp mapred-site.xml.template mapred-site.xml
修改内容:
<
configuration>
<
property>
<
name>
mapreduce.framework.name<
/name>
<
value>
yarn<
/value>
<
!-- 使用YARN作为资源管理器 -->
<
/property>
<
/configuration>
4. yarn-site.xml(YARN配置)
<
configuration>
<
property>
<
name>
yarn.nodemanager.aux-services<
/name>
<
value>
mapreduce_shuffle<
/value>
<
!-- Shuffle服务 -->
<
/property>
<
property>
<
name>
yarn.nodemanager.aux-services.mapreduce.shuffle.class<
/name>
<
value>
org.apache.hadoop.mapred.ShuffleHandler<
/value>
<
/property>
<
property>
<
name>
yarn.resourcemanager.hostname<
/name>
<
value>
localhost<
/value>
<
!-- 单机模式ResourceManager指向本地 -->
<
/property>
<
/configuration>
五、格式化HDFS并启动集群
- 格式化HDFS(首次启动前必须执行,清除旧数据):
hdfs namenode -format - 启动HDFS和YARN:
start-dfs.sh # 启动HDFS(NameNode、DataNode) start-yarn.sh # 启动YARN(ResourceManager、NodeManager) - 验证进程:
正常输出应包含以下进程:jpsNameNode(HDFS主节点)DataNode(HDFS数据节点)ResourceManager(YARN资源管理器)NodeManager(YARN节点管理器)
六、常用Hadoop命令行操作
1. HDFS文件系统操作
- 查看HDFS根目录文件列表:
hdfs dfs -ls / - 递归查看目录内容:
hdfs dfs -ls -R / - 创建HDFS目录(
-p参数自动创建父目录):hdfs dfs -mkdir -p /user/hadoop/input - 上传本地文件到HDFS:
hdfs dfs -put ~/local_file.txt /user/hadoop/input/ - 下载HDFS文件到本地:
hdfs dfs -get /user/hadoop/input/local_file.txt ~/downloaded_file.txt - 删除HDFS文件/目录(
-r递归删除目录):hdfs dfs -rm -r /user/hadoop/input/
2. MapReduce作业提交
运行Hadoop自带的WordCount示例(统计文本词频):
# 输入目录(需提前创建并上传文件)
hdfs dfs -mkdir -p /input
hdfs dfs -put ~/local_text.txt /input/
# 执行WordCount
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
# 查看输出结果
hdfs dfs -cat /output/part-r-00000
七、常见问题排查
- 端口占用:若启动时报“端口已被占用”,可通过
sudo lsof -i :9000(HDFS端口)或sudo lsof -i :8088(YARN端口)查看占用进程,用kill -9 < PID>终止。 - 权限问题:确保HDFS数据目录(
dfs.namenode.name.dir、dfs.datanode.data.dir)有正确的读写权限(chown -R $USER:$USER /usr/local/hadoop/data)。 - Java环境错误:若出现
JAVA_HOME not set,需检查~/.bashrc中的JAVA_HOME配置并重新加载。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上使用Hadoop命令行
本文地址: https://pptw.com/jishu/738329.html
