环境准备
sudo apt update && sudo apt install -y openjdk-11-jdkjava -version验证是否成功(需显示Java版本信息)。ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa(直接回车默认路径和空密码);cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;chmod 600 ~/.ssh/authorized_keys;ssh localhost(若无需密码即可登录则成功)。下载与解压Hadoop
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz/opt目录(系统级软件推荐路径):sudo tar -zxvf hadoop-3.3.6.tar.gz -C /opt/sudo mv /opt/hadoop-3.3.6 /opt/hadoop配置环境变量
~/.bashrc文件(用户级环境变量),添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际Java安装路径调整
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrcecho $HADOOP_HOME(应显示Hadoop安装路径)配置Hadoop核心文件
Hadoop的主配置文件位于$HADOOP_HOME/etc/hadoop目录下,需修改以下关键文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- HDFS的URI,localhost表示单机模式 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 副本数,单机模式设为1 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/tmp/dfs/name</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/tmp/dfs/data</value> <!-- DataNode数据存储路径 -->
</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> <!-- Shuffle服务,支持MapReduce -->
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
初始化与启动Hadoop
hdfs namenode -formatstart-dfs.shstart-yarn.sh验证部署
jps,若显示以下进程则表示启动成功:NameNode、DataNode、SecondaryNameNode(HDFS相关);ResourceManager、NodeManager(YARN相关)。http://localhost:9870(Hadoop 3.x版本端口,旧版本为50070);http://localhost:8088(查看作业调度情况)。(可选)运行示例程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output
其中/input是HDFS上的输入目录(需提前创建并上传文件),/output是输出目录(需不存在,Hadoop会自动创建)。hdfs dfs -cat /output/part-r-00000(显示单词统计结果)。