以3台linux机器的hdfs集群安装为例,使用hadoop-3.xx版本安装,安装步骤如下

  1. 在3台机器上安装好java环境,使用java -version测试是否安装成功
  2.   在三台机器上配置静态IP和主机名的映射,vim /etc/hosts进行修改
  3.   配置免密码登陆,在主节点上顺序指定以下命令
ssh-keygen –t rsa –P ‘’ –f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

 

使用ssh localhost 命令查看是否配置成功,若配置成功,则将id_rsa.pub文件使用scp命令复制到其他两台机器上,然后执行以下命令

cat id_rsa.pub >> ~/.ssh/authorized_keys

 

完成后使用ssh命令查看主节点连接到其他两台机器是否已经免密。

  在三台机器上执行chkconfig iptables off命令关闭防火墙。

  将hadoop-3.1.2.tar.gz文件拷贝到主节点的/work/bin目录下,解压之后进入/work/bin/hadoop-3.1.2/etc/hadoop目录下,修改hadoop-env.sh文件,在其中的export JAVA_HOME下面添加java jdk的路径,如添加以下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_60

 

  修改core-site.xml文件,添加如下内容

<configuration>

   <property>

      <name>fs.defaultFS</name>

      <value>hdfs://host-52-62:9000</value>       ##hdfs的api接口

   </property>

   <property>

      <name>hadoop.tmp.dir</name> ##运行时产生的临时数据的存储目录

      <value>/data/hadoop/tmp</value>##目录的地址

   </property>

</configuration>

 

  修改hdfs-site.xml文件,添加如下内容:

<configuration>

   <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>host-52-63:50090</value>

   </property>

   <property>

        <name>dfs.replication</name>       ##设置副本个数

        <value>2</value>

   </property>

   <property>

      <name>dfs.namenode.name.dir</name> ##设置namenode数据存放点

      <value>file:/data/hadoop/dfs/name</value>

   </property>

   <property>

        <name>dfs.datanode.data.dir</name>##设置datanode数据存放点

        <value>file:/data/hadoop/dfs/data</value>

   </property>

</configuration>

 

  修改workers文件,添加从节点的主机名称,如下

host-52-63

host-52-64

  在/etc/profile文件中添加hadoop的环境变量,如下所示,添加完成后,使用source /etc/profile命令使之生效。

HADOOP_HOME=/work/bin/hadoop-3.1.2

PATH=$JAVA_BIN:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export JAVA_HOME JAVA_BIN PATH CLASSPATH HADOOP_HOME

 

  将hadoop压缩包发送到其他两台机器,并解压,然后将修改后的文件(profile、core-site.xml、hdfs-site.xml、hadoop-env.sh、workers)发送到其他两台机器的相应位置替换原来的文件。

  如果使用linux的root账户去操作hdfs还需要配置hdfs的权限,在/work/bin/hadoop-3.1.2/sbin下的start-dfs.sh和stop-dfs.sh文件中的开始空白位置添加如下内容:

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

YARN_NODEMANAGER_USER=root

YARN_RESOURCEMANAGER_USER=root

 

  在/work/bin/hadoop-3.1.2/sbin下的start-yarn.sh和stop-yarn.sh文件中的开始空白位置添加如下内容:

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

 

  至此,hdfs安装完成,下面启动hdfs,如下命令:

hadoop namenode –format    //格式化namenode,只需执行一次,且必须一次

start-dfs.sh                //启动hdfs

 

  在三台机器上使用jps,查看是否成功启动nn,snn和dn,hdfs的web页面默认端口是9870,建议在安装之前先大致了解hdfs的原理,方便理解安装流程。