Hadoop之安装hdfs集群

  • Hadoop之虚拟机创建与安装(1)
  • Hadoop之集群创建与配置(2)
  • Hadoop之linux服务器的基础软件环境配置(3)
  • 安装hadoop
  • 上传hadoop安装包到hdp-01
  • 解压hadoop-3.0.3.tar.gz
  • 删除doc文件夹--非必要
  • 修改配置文件
  • 远程拷贝hadoop安装目录到其他机器
  • 配置环境变量
  • 启动HDFS
  • 初始化namenode的元数据目录
  • 启动namenode进程(在hdp-01上)
  • 查看端口
  • 在浏览器访问namenode提供的web端口:9870
  • 报错解决
  • 启动众datanode们(在任意地方)
  • 用自动批量启动脚本来启动HDFS
  • 配置hdp-01到集群中的免密登陆
  • 配完免密后
  • 添加datanode进程的节点
  • 在hdp-01上用脚本来自动启动整个集群
  • 在hdp-01上用脚本来自动停止整个集群
  • 启动脚本报错
  • 将SecondaryNameNode放至hdp-02
  • 效果展示


Hadoop之虚拟机创建与安装(1)

Hadoop之虚拟机创建与安装

Hadoop之集群创建与配置(2)

Hadoop之集群创建与配置

Hadoop之linux服务器的基础软件环境配置(3)

Hadoop之linux服务器的基础软件环境配置

安装hadoop

上传hadoop安装包到hdp-01

软件:hadoop-3.0.3.tar.gz

hadoop集群ftp下载 hadoop集群安装_hdfs

解压hadoop-3.0.3.tar.gz

tar -zxvf hadoop-3.0.3.tar.gz

删除doc文件夹–非必要

删除 /root/apps/hadoop-3.0.3/share/doc以减少450M容量,可忽略

rm -rf doc

修改配置文件

要点提示:

核心配置参数:
1)	指定hadoop的默认文件系统为:hdfs
2)	指定hdfs的namenode节点为哪台机器
3)	指定namenode软件存储元数据的本地目录
4)	指定datanode软件存放文件块的本地目录
  1. 修改hadoop-env.sh 找到# JAVA_HOME=/usr/java/testing hdfs dfs -ls
    添加:JAVA_HOME=/root/apps/jdk1.8.0_191
vim /root/apps/hadoop-3.0.3/etc/hadoop/hadoop-env.sh

#  JAVA_HOME=/usr/java/testing hdfs dfs -ls
JAVA_HOME=/root/apps/jdk1.8.0_191

hadoop集群ftp下载 hadoop集群安装_hadoop集群ftp下载_02


2. 修改core-site.xml

添加节点:

vim /root/apps/hadoop-3.0.3/etc/hadoop/core-site.xml

<configuration>

<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000</value>
</property>

</configuration>

hadoop集群ftp下载 hadoop集群安装_hdfs集群安装_03


3. 修改hdfs-site.xml

添加节点:

vim /root/apps/hadoop-3.0.3/etc/hadoop/hdfs-site.xml

<configuration>

<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>

</configuration>

远程拷贝hadoop安装目录到其他机器

scp -r /root/apps/hadoop-3.0.3 hdp-02:/root/apps/
scp -r /root/apps/hadoop-3.0.3 hdp-03:/root/apps/
scp -r /root/apps/hadoop-3.0.3 hdp-04:/root/apps/

配置环境变量

要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量
vim /etc/profile

# hadoop-3.0.3
export HADOOP_HOME=/root/apps/hadoop-3.0.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使环境变量生效:

source /etc/profile

启动HDFS

初始化namenode的元数据目录

要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录
执行:hadoop namenode -format

创建一个全新的元数据存储目录
生成记录元数据的文件fsimage
生成集群的相关标识:如:集群id——clusterID

启动namenode进程(在hdp-01上)

hadoop-daemon.sh start namenode

启动完后,首先用jps查看一下namenode的进程是否存在

jps

18964 NameNode

19028 Jps

hadoop集群ftp下载 hadoop集群安装_hdfs集群安装_04

查看端口

netstat -nltp |grep 18964

hadoop集群ftp下载 hadoop集群安装_Hadoop_05

在浏览器访问namenode提供的web端口:9870

192.168.30.131:9870

hadoop集群ftp下载 hadoop集群安装_hadoop_06

报错解决

NameNode is still loading. Redirecting to the Startup Progress page.

hadoop集群ftp下载 hadoop集群安装_Hadoop_07


更换一个浏览器进行尝试!

360安全浏览器会报以上错误!

启动众datanode们(在任意地方)

hadoop-daemon.sh start datanode

用自动批量启动脚本来启动HDFS

配置hdp-01到集群中的免密登陆

配置hdp-01到集群中所有机器(包含自己)的免密登陆

  1. 在hdp-01进行配置
  2. ssh-keygen
    输入:ssh-keygen
    一直回车
  3. hadoop集群ftp下载 hadoop集群安装_hdfs集群安装_08

  4. ssh-copy-id
ssh-copy-id hdp-01
 ssh-copy-id hdp-02
 ssh-copy-id hdp-03
 ssh-copy-id hdp-04

hadoop集群ftp下载 hadoop集群安装_Hadoop_09

配完免密后

可执行一次 ssh 0.0.0.0

添加datanode进程的节点

修改hadoop安装目录中/root/apps/hadoop-3.0.3/etc/hadoop/workers(把需要启动datanode进程的节点列入)
vim /root/apps/hadoop-3.0.3/etc/hadoop/workers

hdp-01
hdp-02
hdp-03
hdp-04

在hdp-01上用脚本来自动启动整个集群

start-dfs.sh

在hdp-01上用脚本来自动停止整个集群

stop-dfs.sh

启动脚本报错

hadoop集群ftp下载 hadoop集群安装_Hadoop_10


解决方案:

进入:/root/apps/hadoop-3.0.3/sbin/目录下

cd /root/apps/hadoop-3.0.3/sbin/

将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

hadoop集群ftp下载 hadoop集群安装_hdfs_11


start-yarn.sh,stop-yarn.sh顶部也需添加以下:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

hadoop集群ftp下载 hadoop集群安装_hdfs集群安装_12

将SecondaryNameNode放至hdp-02

修改各主机:hdfs-site.xml
添加节点
vim /root/apps/hadoop-3.0.3/etc/hadoop/hdfs-site.xml

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:9870</value>
</property>

hadoop集群ftp下载 hadoop集群安装_hadoop_13

在hdp-01进行一下操作:
停止:secondarynamenode

hadoop-daemon.sh stop secondarynamenode

hadoop集群ftp下载 hadoop集群安装_Hadoop_14

重启整个集群:stop-dfs.sh
启动整个集群:start-dfs.sh

效果展示

hadoop集群ftp下载 hadoop集群安装_hdfs集群安装_15


hadoop集群ftp下载 hadoop集群安装_hadoop_16


hadoop集群ftp下载 hadoop集群安装_hdfs_17