一、概述
HDFS集群主要由NameNode和DataNodes组成,前者负责管理文件系统元数据,后者用于保存真正的数据。
主要特性:
1. 可使用商品级硬件(如普通PC)进行分布式存储和分布式计算。高容错、可扩展、易伸缩。
2. 可根据不同的需求进行不同的配置。
3. Hadoop使用Java编写,支持各主流平台。
4. 支持使用类似shell命令与HDFS进行交互。
5. NameNode和DataNodes集成在了web服务器中,可方便使用web查看集群状态。
6. 其他特性:文件权限验证、机架感知、安全模式、fsck等等。
以下笔记由hadoop 2.7.2文档而来。
二、Web界面
默认的配置中,NameNode可通过http://namenode-name:50070/来访问(其中的namenode-name是你自己配置的namenode主机名)。使用Web界面可以查看集群状态、浏览文件系统、查看DataNodes等。
三、Hadoop集群安装
略,请参考文档,或自行百度。
四、非安全模式下的Hadoop配置
1. 配置文件主要有两种:
- 只读的默认配置 ——
- core-default.xml
- hdfs-default.xml
- yarn-default.xml
- mapred-default.xml
- 具体指定的配置 ——
- etc/hadoop/core-site.xml
- etc/hadoop/hdfs-site.xml
- etc/hadoop/yarn-site.xml
- etc/hadoop/mapred-site.xml
2. 控制Hadoop脚本行为:
- etc/hadoop/hadoop-env.sh
- etc/hadoop/yarn-env.sh
- etc/hadoop/mapred-env.sh
3. Hadoop后台进程:
- Hadoop后台进程一般各自运行在独立的主机上
- HDFS后台进程
- NameNode, SecondaryNameNode, DataNode
- YARN后台进程
- ResourceManager, NodeManager, WebAppProxy
- MapReduce后台进程(若有)
- Job History Server
4. Hadoop后台进程环境配置:
Hadoop进程的环境变量在以下3个脚本中设置
- etc/hadoop/hadoop-env.sh
- etc/hadoop/yarn-env.sh
- etc/hadoop/mapred-env.sh
各后台进程的环境变量如下:
Daemon | Environment Variable |
---|---|
NameNode | HADOOP_NAMENODE_OPTS |
DataNode | HADOOP_DATANODE_OPTS |
Secondary NameNode | HADOOP_SECONDARYNAMENODE_OPTS |
ResourceManager | YARN_RESOURCEMANAGER_OPTS |
NodeManager | YARN_NODEMANAGER_OPTS |
WebAppProxy | YARN_PROXYSERVER_OPTS |
MapReduce Job History Server | HADOOP_JOB_HISTORYSERVER_OPTS |
比如,对NameNode的设置可以如下:
expo