hadoop-hdfs集群详细安装步骤

  • Post author:
  • Post category:其他


安装hdfs集群的具体步骤:


一、首先需要准备N


台linux


服务器

学习阶段,用虚拟机即可!

先准备3台虚拟机:1个namenode节点  + 2 个datanode 节点


二、修改各台机器的主机名和ip


地址

主机名:node1  对应的ip地址:192.168.223.11

主机名:node2  对应的ip地址:192.168.223.12

主机名:node3  对应的ip地址:192.168.223.13

三台主机上用户均为:ws(用户名,可以自取)


2.1 修改主机ip和网络

①用root权限打开配置文件,命令如下:

# ens33是网卡名 
vi /etc/sysconfig/network-scripts/ifcfg-ens33 

②修改配置项

注网关和掩码可以VMware Workstation Pro中编辑->虚拟网络编辑器->更改设置->NAT设置中查看

#原有配置修改项
#一定设置为static,不然重新开机地址会改变
BOOTPROTO=static
# 开机启动设置为yes
ONBOOT=yes

# 增加项
#IP地址
IPADDR=192.168.223.13
# 网关
GATEWAY=192.168.223.2
# 掩码
NETMASK=255.255.255.0
# DNS解析,119.29.29.29是国内一个公共的地址解析服务器
DNS1=119.29.29.29

三台主机均完成配置后可以使用ping+主机IP地址看是否联通

注:CentOS 7 修改主机名可以用语句

hostnamectl set-hostname "node1"
hostnamectl set-hostname "node1" --static
hostnamectl set-hostname "node1" --pretty

三、从windows中用CRT软件进行远程连接

在windows中将各台linux机器的主机名配置到的windows的本地域名映射文件中:

c:/windows/system32/drivers/etc/hosts

192.168.223.11 node1
192.168.223.12 node2
192.168.223.13 node3

用crt连接上后,修改一下crt的显示配置(字号,编码集改为UTF-8):


四、配置linux


服务器的基础软件环境


4.1、关闭防火墙

关闭防火墙

systemctl stop firewalld

禁止开机启动

systemctl disable firewalld


4.2、安装jdk:(hadoop体系中的各软件都是java开发的)

  1. 利用alt+p 打开sftp窗口,然后将jdk压缩包拖入sftp窗口
  2. 然后在linux中将jdk压缩包解压到/home/ws/apps/java 下
  3. 配置环境变量:JAVA_HOME   PATH

vi /etc/profile   在文件的最后,加入:

export JAVA_HOME=/home/ws/apps/java/jdk1.8.0_60

export PATH=$PATH:$JAVA_HOME/bin
  1. 修改完成后,记得 source /etc/profile使配置生效
  2. 检验:在任意目录下输入命令: java -version 看是否成功执行
  3. 将安装好的jdk目录用scp命令拷贝到其他机器
  4. 将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令


4.3、集群内主机的域名映射配置

在node1上,vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.223.11   node1
192.168.223.12   node2
192.168.223.13   node3

然后,将hosts文件拷贝到集群中的所有其他机器上

scp /etc/hosts node2:/etc/

scp /etc/hosts node3:/etc/


五、安装hdfs


集群

5.1、上传hadoop安装包到node1

修改配置文件

要点提示



核心配置参数:


  1. 指定hadoop


    的默认文件系统为:hdfs

  2. 指定hdfs


    的namenode


    节点为哪台机器

  3. 指定namenode


    软件

    存储元数据的

    本地目录




  4. 指定


    datanode




    软件




    存放文件块的

    本地目录


hadoop的配置文件在:/home/ws/apps/hadoop安装目录/etc/hadoop/


1)


修改hadoop-env.sh

export JAVA_HOME=/home/ws/apps/java/jdk1.8.0_60


2)


修改core-site.xml

<configuration>

  <property>

     <name>fs.defaultFS</name>

     <value>hdfs://node1:9000</value>

  </property>

</configuration>


3)


修改hdfs-site.xml


<configuration>
   <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/ws/apps/hadoop/hdfsdata/name</value>
   </property>

   <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/ws/apps/hadoop/hdfsdata/data</value>
   </property>

   <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:50090</value>
   </property>
</configuration>


4)


拷贝整个hadoop


安装目录到其他机器

scp -r /home/ws/apps/hadoop-2.8.0  node2:/home/ws/apps/

scp -r /home/ws/apps/hadoop-2.8.0  node3:/home/ws/apps/


5)


启动HDFS

所谓的启动HDFS,就是在对的机器上启动对的软件


要运行hadoop


的命令,需要在linux


环境中配置HADOOP_HOME


和PATH


环境变量

vi /etc/profile
export JAVA_HOME=/home/ws/apps/java/jdk1.8.0_60

export HADOOP_HOME=/home/ws/apps/hadoop/hadoop-2.8.0

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin


首先,初始化namenode


的元数据目录

要在node1上执行hadoop的一个命令来初始化namenode的元数据存储目录

hadoop namenode -format
  1. 创建一个全新的元数据存储目录
  2. 生成记录元数据的文件fsimage
  3. 生成集群的相关标识:如:集群id——clusterID


然后,启动namenode


进程(在node1


上)

hadoop-daemon.sh start namenode

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


然后,在windows


中用浏览器访问namenode


提供的web


端口:50070


http://node1:50070

版本不同,有些时候可能不是50070,那么查看一下namenode监听了拿下端口,用以下命令,其中进程号就是我们jps得到的

获得它坚挺的端口后,修改上面url的端口为我们自己的端口即可访问,比如我的就是9870端口

netstat -nltp | grep 进程号
[ws@node1 hadoop]$ netstat -nltp | grep 2907

tcp        0      0 0.0.0.0:9870            0.0.0.0:*               LISTEN     2907/java           
tcp        0      0 192.168.223.11:9000     0.0.0.0:*               LISTEN     2907/java    


然后,启动众datanode


们(在任意地方)

hadoop-daemon.sh start datanode


6)


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

  1. 先配置node1到集群中所有机器(包含自己)的免密登陆(详情见另外一篇博客

    https://blog.csdn.net/wangshun_410/article/details/90613168

  2. 配完免密后,可以执行一次

    ssh 0.0.0.0
  3. 修改hadoop安装目录中/etc/hadoop/slaves(高版本是workes)(把需要启动datanode进程的节点列入)
  4. 在node1上用脚本:

    start-dfs.sh

    来自动启动整个集群
  5. 如果要停止,则用脚本:

    stop-dfs.sh



版权声明:本文为wangshun_410原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。