在Ubuntu上安装Hadoop生态组件前,需完成以下基础准备:
sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本。sudo apt install -y openjdk-8-jdk ssh
验证Java安装:java -version(需显示Java版本信息);验证SSH服务:ssh localhost(若未配置免密登录,需输入密码)。从Apache官网下载稳定版本(如3.3.6),解压至指定目录(如/usr/local):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local/
sudo chown -R $USER:$USER /usr/local/hadoop # 修改目录所有者为当前用户
编辑~/.bashrc文件,添加Hadoop和Java环境变量:
nano ~/.bashrc
在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # Java安装路径
export HADOOP_HOME=/usr/local/hadoop # Hadoop安装路径
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source ~/.bashrc。
Hadoop的主要配置文件位于$HADOOP_HOME/etc/hadoop目录下,需修改以下文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- HDFS默认文件系统 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 副本数(单节点设为1) -->
</property>
</configuration>
cp mapred-site.xml.template mapred-site.xml,再修改:<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> <!-- 使用YARN作为资源管理器 -->
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- MapReduce Shuffle服务 -->
</property>
</configuration>
首次运行Hadoop前,需格式化HDFS(删除原有数据):
hdfs namenode -format
启动HDFS和YARN服务:
$HADOOP_HOME/sbin/start-dfs.sh # 启动HDFS
$HADOOP_HOME/sbin/start-yarn.sh # 启动YARN
验证服务是否启动:jps(应显示NameNode、DataNode、ResourceManager、NodeManager等进程)。
Spark是Hadoop生态中的常用计算引擎,可与Hadoop集成:
wget https://downloads.apache.org/spark/spark-3.2.0/spark-3.2.0-bin-hadoop3.2.tgz
tar -xzvf spark-3.2.0-bin-hadoop3.2.tgz
sudo mv spark-3.2.0-bin-hadoop3.2 /usr/local/spark
配置环境变量(添加至~/.bashrc):
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
source ~/.bashrc
启动Spark集群:$SPARK_HOME/sbin/start-all.sh。
Hive是Hadoop生态中的数据仓库工具,用于SQL查询:
wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar -xzvf apache-hive-3.1.2-bin.tar.gz
sudo mv apache-hive-3.1.2-bin /usr/local/hive
配置环境变量(添加至~/.bashrc):
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=/usr/local/hadoop # 指向Hadoop安装路径
source ~/.bashrc
配置Hive元数据库(使用MySQL或Derby,此处以Derby为例):
cp $HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml
# 编辑hive-site.xml,配置Derby数据库路径
初始化Hive元数据库:schematool -initSchema -dbType derby。
mkdir -p /usr/local/hadoop/input
cp $HADOOP_HOME/etc/hadoop/*.xml /usr/local/hadoop/input
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /usr/local/hadoop/input /usr/local/hadoop/output
cat /usr/local/hadoop/output/*
$SPARK_HOME/bin/run-example SparkPi 10
hive
CREATE TABLE test (id INT, name STRING);
INSERT INTO test VALUES (1, 'Hive'), (2, 'Spark');
SELECT * FROM test;
slaves文件)。