Hadoop3.5.0安装教程_单机/伪分布式配置_Hadoop3.5.0/Ubuntu24.04
内容提要
本教程介绍在Ubuntu上安装Hadoop 3.3.5,包括创建hadoop用户、更新apt、安装vim与SSH并配置无密码登录、手动安装JDK 1.8并设置环境变量,以及解压配置Hadoop,完成单机与伪分布式运行及实例测试。
延伸解读
环境准备与用户权限
教程强调创建独立的hadoop用户并赋予sudo权限,这能避免因权限不足导致的部署问题。同时,更新apt和安装vim、SSH等工具是后续步骤的基础,尤其是SSH无密码登录,它是Hadoop单机和伪分布式模式运行的必备条件。
Java环境安装要点
Hadoop 3.3.5要求JDK 1.8及以上,教程推荐手动安装JDK并配置环境变量。需注意在~/.bashrc中设置JAVA_HOME等变量,并执行source使其生效。若格式化NameNode时提示JAVA_HOME未设置,还需检查hadoop-env.sh中的配置。
单机与伪分布式模式区别
单机模式无需额外配置,直接运行MapReduce示例,读取本地文件。伪分布式模式则需修改core-site.xml和hdfs-site.xml,指定HDFS地址和副本数,并格式化NameNode。启动后通过jps验证进程,且数据存储在HDFS中,需使用hdfs dfs命令操作。
常见问题与解决
启动Hadoop时可能遇到SSH警告或主机名解析错误,前者可忽略,后者需在~/.bashrc中设置HADOOP_HOME等变量。若DataNode未启动,可尝试删除tmp目录并重新格式化,但会清除HDFS数据。运行MapReduce作业时,输出目录必须不存在,否则需先删除。
Q&A
在Ubuntu上安装Hadoop 3.3.5前需要做哪些准备工作?
需要创建hadoop用户、更新apt、安装vim和SSH并配置无密码登录、手动安装JDK 1.8并设置环境变量。
如何配置SSH无密码登录以便Hadoop使用?
安装openssh-server后,执行ssh localhost测试,然后退出,执行cd ~/.ssh/,ssh-keygen -t rsa生成密钥,cat ./id_rsa.pub >> ./authorized_keys加入授权,之后ssh localhost就无需密码。
Hadoop 3.3.5需要哪个版本的JDK?如何手动安装JDK 1.8?
需要JDK 1.8及以上。手动安装步骤:下载jdk-8u371-linux-x64.tar.gz,创建/usr/lib/jvm目录,解压JDK到该目录,然后在~/.bashrc中设置JAVA_HOME、JRE_HOME、CLASSPATH和PATH环境变量,最后source ~/.bashrc并验证java -version。
Hadoop单机模式(非分布式)如何运行示例程序?
单机模式无需配置,直接运行。例如运行grep示例:创建input文件夹,复制配置文件到input,执行./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep ./input ./output 'dfs[a-z.]+',然后查看output结果。注意输出目录不能已存在。
如何配置Hadoop伪分布式模式?
需要修改core-site.xml和hdfs-site.xml。在core-site.xml中设置hadoop.tmp.dir和fs.defaultFS为hdfs://localhost:9000;在hdfs-site.xml中设置dfs.replication为1,并指定dfs.namenode.name.dir和dfs.datanode.data.dir。然后格式化NameNode:./bin/hdfs namenode -format,启动:./sbin/start-dfs.sh。
启动Hadoop时出现“Could not resolve hostname”错误怎么办?
在~/.bashrc中增加export HADOOP_HOME=/usr/local/hadoop和export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native,保存后执行source ~/.bashrc,然后重新启动Hadoop。
如何验证Hadoop伪分布式是否启动成功?
执行jps命令,若成功启动会列出NameNode、DataNode和SecondaryNameNode进程。还可以访问Web界面http://localhost:9870查看NameNode和DataNode信息。
在伪分布式模式下如何运行MapReduce作业?
首先在HDFS中创建用户目录:./bin/hdfs dfs -mkdir -p /user/hadoop,然后将输入文件上传到HDFS:./bin/hdfs dfs -put ./etc/hadoop/*.xml input,接着运行作业:./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar grep input output 'dfs[a-z.]+',最后查看结果:./bin/hdfs dfs -cat output/*。