《Hadoop 单机安装与配置》

《Hadoop 单机安装与配置》

Hadoop 是 Apache 基金会开源的分布式计算框架,核心包含 HDFS(分布式文件系统)与 MapReduce(分布式计算模型)。本文以 Hadoop 2.10.0 为例,说明如何在单机上完成安装、配置并启动 HDFS。

1 下载安装包

wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz tar zxf hadoop-2.10.0.tar.gz cd hadoop-2.10.0

2 设置 JAVA_HOME 变量

默认情况下 hadoop-env.sh 中配置的就是 ${JAVA_HOME},如果之前已经配置好了 Java 环境,则可以跳过本步。

vi ./etc/hadoop/hadoop-env.sh
export JAVA_HOME=${JAVA_HOME}

3 配置 tmp 目录以及 fs 的名字

编辑 etc/hadoop/core-site.xml:

  • hadoop.tmp.dir:配置 HDFS 系统的基础目录。如果不配置,默认存放在 /tmp/hadoop-root,而 /tmp 目录下的文件不是永久性的,可能出现数据丢失。
  • fs.default.name:设置 HDFS 中 namenode 的访问地址。namenode 存放系统全部元数据信息,是文件系统访问的入口,必须配置,这里配置为 hdfs://127.0.0.1:9000。
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/root/softwares/hadoop-2.10.0/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://127.0.0.1:9000</value> </property> </configuration>

4 配置 namenode 和 datanode 的目录以及副本因子

编辑 etc/hadoop/hdfs-site.xml:

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/root/softwares/hadoop-2.10.0/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/root/softwares/hadoop-2.10.0/data</value> </property> </configuration>

单机环境下将副本因子 dfs.replication 设为 1,避免因只有一个 DataNode 造成副本不足。

5 对 namenode 进行格式化

HDFS 的格式化操作必须在首次启动前执行:

./bin/hadoop namenode -format

这一步必须做,否则会启动失败并报错:

ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode. java.io.IOException: NameNode is not formatted. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:249) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1063) ...

6 启动与停止 HDFS 守护进程

启动:

./sbin/start-dfs.sh # or 分别启动 ./sbin/hadoop-daemon.sh start namenode ./sbin/hadoop-daemon.sh start datanode ./sbin/hadoop-daemon.sh start secondarynamenode

通过 jps 查看进程是否启动:

jps # 6673 NameNode # 6838 DataNode # 7052 SecondaryNameNode

停止:

./sbin/stop-dfs.sh # or 分别停止 ./sbin/hadoop-daemon.sh stop namenode ./sbin/hadoop-daemon.sh stop datanode ./sbin/hadoop-daemon.sh stop secondarynamenode

7 常见问题

  1. namenode 无法启动,报 NameNode is not formatted:首次使用前未执行 hadoop namenode -format,格式化后重启即可。
  2. jps 中缺少 DataNode:多为 hadoop.tmp.dir 指向了 /tmp 且被清空,或 dfs.datanode.data.dir 目录权限问题,确认目录存在且有写权限。
阅读 — · 全站 —
🎸 我的歌单 0 首