HDFS集群搭建
2017-11-12 本文已影响0人
Mervey
一、机器准备
假设我们已经准备好了6台,内存100G,硬盘2T容量的机器。
生产中我们最好不要使用全部的磁盘作为datanode的存储空间,以备不时之需。
计算NameNode内存占用量
前提:保守估计需要为每1百万个数据块分配1G内存
上面的集群为6个节点,每个节点的使用1.5T磁盘空间,数据块大小为128M,复本数为3的话,则约有2万个数据块(6 * 1500000(MB)/(128MB * 3)
),内存占用不到1G,但是为了充分利用内存我们分配5G足够使用。
二、前置条件
- java 1.7或1.8 安装
- 各个机器间ssh打通(无密码免密码登陆)
- 在每台机器上运行 ssh-keygen 命令
- 将其他机器的 ~/.ssh/id_rsa.pub 文件内容添加到本机 ~/.ssh/authorized_keys 文件中
三、重要配置
环境相关
etc/hadoop/hadoop-env.sh 文件
.bash_profile文件
通用配置
etc/hadoop/core-site.xml文件
HDFS配置
etc/hadoop/hdfs-site.xml文件
DataNode机器列表
etc/hadoop/slaves文件
将六台机器的hostname添加进去即可
四、安装步骤
-
下载
- 下载Hadoop(2.8.2版本)并解压到安装目录
-
配置文件准备
- 安装上面的配置项,修改hadoop的配置文件即可
-
格式化namenode
$HADOOP_HOME/bin/hdfs namenode -format clusterName
-
启动HDFS
-
$HADOOP_HOME/sbin/start-dfs.sh
-
脚本做的事情:
- 在每台机器上启动一个namenode,这些机器由执行 hdfs getconf -namenodes得到的返回值确定
- 在slaves文件列举的每台机器上启动一个datanode
- 在每台机器上启动一个secondarynamenode,这些机器由执行 hdfs getconf -secondarynamenodes 得到的返回值确定
-
-
Web页面
http://namenode:8411/
停止HDFS命令
$HADOOP_HOME/sbin/stop-dfs.sh