HDFS集群搭建

一、机器准备

假设我们已经准备好了6台,内存100G,硬盘2T容量的机器。

生产中我们最好不要使用全部的磁盘作为datanode的存储空间,以备不时之需。

计算NameNode内存占用量

前提:保守估计需要为每1百万个数据块分配1G内存

上面的集群为6个节点,每个节点的使用1.5T磁盘空间,数据块大小为128M,复本数为3的话,则约有2万个数据块(6 * 1500000(MB)/(128MB * 3)),内存占用不到1G,但是为了充分利用内存我们分配5G足够使用。

二、前置条件

  1. java 1.7或1.8 安装
  2. 各个机器间ssh打通(无密码免密码登陆)
    • 在每台机器上运行 ssh-keygen 命令
    • 将其他机器的 ~/.ssh/id_rsa.pub 文件内容添加到本机 ~/.ssh/authorized_keys 文件中

三、重要配置

环境相关

etc/hadoop/hadoop-env.sh 文件

HDFS集群搭建_第1张图片
hadoop-env.sh

.bash_profile文件

HDFS集群搭建_第2张图片
.bash_profile

通用配置

etc/hadoop/core-site.xml文件

HDFS集群搭建_第3张图片
core-site.xml

HDFS配置

etc/hadoop/hdfs-site.xml文件

HDFS集群搭建_第4张图片
hdfs-site.xml

DataNode机器列表

etc/hadoop/slaves文件

将六台机器的hostname添加进去即可

四、安装步骤

  1. 下载

    • 下载Hadoop(2.8.2版本)并解压到安装目录
  2. 配置文件准备

    • 安装上面的配置项,修改hadoop的配置文件即可
  3. 格式化namenode

    • $HADOOP_HOME/bin/hdfs namenode -format clusterName
  4. 启动HDFS

    • $HADOOP_HOME/sbin/start-dfs.sh

    • 脚本做的事情:

      • 在每台机器上启动一个namenode,这些机器由执行 hdfs getconf -namenodes得到的返回值确定
      • 在slaves文件列举的每台机器上启动一个datanode
      • 在每台机器上启动一个secondarynamenode,这些机器由执行 hdfs getconf -secondarynamenodes 得到的返回值确定
  5. Web页面

    • http://namenode:8411/

停止HDFS命令 $HADOOP_HOME/sbin/stop-dfs.sh

你可能感兴趣的:(HDFS集群搭建)