《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 常见问题
- namenode 无法启动,报 NameNode is not formatted:首次使用前未执行
hadoop namenode -format,格式化后重启即可。 - jps 中缺少 DataNode:多为
hadoop.tmp.dir指向了/tmp且被清空,或dfs.datanode.data.dir目录权限问题,确认目录存在且有写权限。
阅读 —
·
全站 —