以3台linux机器的hdfs集群安装为例,使用hadoop-3.xx版本安装,安装步骤如下
- 在3台机器上安装好java环境,使用java -version测试是否安装成功
- 在三台机器上配置静态IP和主机名的映射,vim /etc/hosts进行修改
- 配置免密码登陆,在主节点上顺序指定以下命令
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的原理,方便理解安装流程。