建立一个集群的安装选项
- Apache tarball 二进制包 安装灵活,工作量大
- Packages 各个Linux 发行版提供的包
- 集群管理工具 Cloudera Manager 和Apache Ambari
集群规范
- Hadoop 运行在商业硬件上
- 商业硬件并不等同于低端硬件
- 也不推荐使用大型的数据库级别的机器,性价比太低。
- 一般使用多核CPU和多磁盘
- HDFS namenode 节点采用RAID, datanode 不建议使用RAID
- 集群规模
- 你的集群需要增长得多快?
- 网络拓扑
- DNSToSwitchMapping
集群的构建和安装
- 安装Java
- 创建Unix 用户账号
- 最好创建特定的Unix 用户账号以区分各Hadoop进程,及区分同一机器上的其他服务
- HDFS,MapReduce 和YARN服务通常作为独立的用户运行,分别命名为hdfs,mapred 和yarn.他们都属于同一hadoop组
- 安装hadoop
- 解压,额,最好不要放在home 目录,因为home目录可能挂载在NFS上
- SSH 配置(分布式shell,公钥共享)
- 配置Hadoop
- 格式化HDFS文件系统
- 启动和停止守护进程
- start-dfs.sh
- 在每台机器上启动一个namenode, 这些机器由执行hdfs getconf -namenodes 得到的返回值所缺东
- 在slaves 文件列举的每台机器上启动一个datanode
- 在每台机器上启动一个辅助namenode,这些机器由执行 hdfs getconf -secondarynamenodes 得到的返回值所确定
- start-yarn.sh
- 在本地机器上启动一个资源管理器
- 在slaves 文件列举的每台机器上启动一个节点管理器
- start-dfs.sh
- 创建用户目录
- 此时是给目录设置空间限制的好时机
Hadoop配置
-
hadoop 分发包 etc/hadoop
-
HADOOP_CONF_DIR
hadoop-env.sh mapred-env.sh yarn-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves hadoop-metrics2.properties log4j.properties hadoop-policy.xml
-
配置管理
- 集群的每个节点都各自保存一系列配置文件,推荐使用控制
-
环境设置
- 内存堆大小 默认各个守护进程分配1000MB内存
- 系统日志文件
- SSH设置
- hadoop 守护进程的一些关键属性
fs.defaultFS dfs.namenode.name.dir dfs.datanode.data.dir dfs.namenode.checkpoint.dir
- 默认情况下,HDFS存储目录放在 hadoop.tmp.dir 属性设置的目录下(/tmp/hadoop-${user.name}),需要手动更改
- yarn 和MapReduce中的内存设置
守护进程1000MB yarn.nodemanager.resource.memory-mb
- yarn 和MapReduce 中的CPU设置
每个进程占用一个核
- Hadoop守护进程的地址和端口号
-
hadoop其他属性
- 缓冲区 大小 4kB
- HDFS 块 128MB
- 回收站(额,神奇的东东)
安全性
- kerberos
- 委托令牌