1. 环境准备:安装Java与SSH
Hadoop依赖Java环境,首先在Ubuntu上安装OpenJDK(推荐11或8版本):
sudo apt update
sudo apt install openjdk-11-jdk
验证安装:java -version(需显示Java版本信息)。
为避免后续启动Hadoop集群时重复输入密码,配置SSH无密码登录:
sudo apt install openssh-server
ssh-keygen -t rsa # 生成密钥对(直接回车默认路径)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权文件
chmod 600 ~/.ssh/authorized_keys # 设置文件权限
验证SSH登录:ssh localhost(无需密码即可登录)。
2. 下载与安装Hadoop
从Apache官网下载稳定版本的Hadoop(如3.3.6),解压至/usr/local目录:
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzf hadoop-3.3.6.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop # 重命名为hadoop方便使用
3. 配置Hadoop环境变量
编辑~/.bashrc文件,添加Hadoop相关环境变量:
echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> ~/.bashrc
source ~/.bashrc # 使变量立即生效
验证环境变量:hadoop version(需显示Hadoop版本信息)。
4. 配置Hadoop核心文件
进入Hadoop配置目录/usr/local/hadoop/etc/hadoop,修改以下文件:
- core-site.xml(HDFS默认文件系统):
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://localhost:9000value> property> configuration> - hdfs-site.xml(HDFS副本数,单机模式设为1):
<configuration> <property> <name>dfs.replicationname> <value>1value> property> configuration> - mapred-site.xml(MapReduce框架,使用YARN):
<configuration> <property> <name>mapreduce.framework.namename> <value>yarnvalue> property> configuration> - yarn-site.xml(YARN资源管理器配置):
<configuration> <property> <name>yarn.nodemanager.aux-servicesname> <value>mapreduce_shufflevalue> property> configuration>
5. 格式化HDFS与启动集群
首次使用HDFS前,需格式化NameNode(注意:格式化会清除原有数据,仅首次使用执行):
hdfs namenode -format
启动HDFS(分布式文件系统)和YARN(资源管理框架):
start-dfs.sh # 启动HDFS
start-yarn.sh # 启动YARN
验证集群状态:
- 访问HDFS Web界面:
http://localhost:9870(查看HDFS存储状态); - 访问YARN ResourceManager界面:
http://localhost:8088(查看资源分配情况)。
6. 大数据分析实战:WordCount示例
Hadoop的核心功能是分布式数据处理,以下以经典的“WordCount”(统计单词出现次数)为例,演示数据分析流程:
- 准备数据:创建本地文本文件
sample.txt,内容如下:Hello World Welcome to Hadoop world Hadoop is a powerful framework - 上传数据至HDFS:
hadoop fs -mkdir -p /input # 创建HDFS输入目录 hadoop fs -put sample.txt /input # 上传文件至HDFS - 编写MapReduce程序:使用Java编写
WordCount.java(核心逻辑:Mapper拆分单词,Reducer汇总计数):import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class WordCount { // Mapper:将每行文本拆分为单词,输出<单词,1> public static class TokenizerMapper extends Mapper - 编译与打包程序:
javac -classpath "$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/mapreduce/*" -d . WordCount.java jar -cvf wordcount.jar -C . . # 打包为jar文件 - 提交Job至Hadoop集群:
hadoop jar wordcount.jar WordCount /input /output # 输入路径为HDFS的/input,输出路径为HDFS的/output - 查看结果:
示例输出:hadoop fs -cat /output/part-r-00000 # 输出结果(单词及出现次数)a 1 framework 1 hadoop 2 hello 1 is 1 powerful 1 welcome 1 world 2 to 1
注意事项
- 单机模式仅用于学习和测试,生产环境建议搭建伪分布式或完全分布式集群;
- 数据预处理可使用Hive(SQL-like查询)、Pig(数据流脚本)等工具简化流程;
- 结果可视化可通过Tableau、PowerBI等工具连接Hive或HDFS,实现交互式分析。
以上就是关于“如何在Ubuntu上使用Hadoop进行大数据分析”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm