Hadoop(二)单机版、伪分布式和分布式的安装实现

Hadoop技术原理:

    Hdfs主要模块:NameNode、DataNode
    Yarn主要模块:ResourceManager、NodeManager

HDFS主要模块及运行原理:

1)NameNode:

    功能:是整个文件系统的管理节点。维护整个文件系统的文件目录树,文件/目录的元数据和
    每个文件对应的数据块列表。接收用户的请求。

2)DataNode:

    功能:是HA(高可用性)的一个解决方案,是备用镜像,但不支持热备。
 

 

HDFS遵循主从架构,它具有以下元素:

(1)名称节点 -Namenode
名称节点是包含GNU/Linux操作系统和软件名称节点的普通硬件。它是一个可以在商品硬件上运行的软件。
具有名称节点系统作为主服务器,它执行以下任务:

    管理文件系统命名空间。
    规范客户端对文件的访问。
    它也执行文件系统操作,如重命名,关闭和打开的文件和目录。

(2)数据节点 - Datanode
Datanode具有GNU/Linux操作系统和软件Datanode的普通硬件。对于集群中的每个节点(普通硬件/系统),有一个数据节点。

    这些节点管理数据存储在它们的系统。
    数据节点上的文件系统执行的读写操作,根据客户的请求。
    还根据名称节点的指令执行操作,如块的创建,删除和复制。

(3)块 -block
一般用户数据存储在HDFS文件。在一个文件系统中的文件将被划分为一个或多个段和/或存储在个人数据的节点。
这些文件段被称为块。换句话说,数据的HDFS可以读取或写入的最小量被称为一个块。
缺省的块大小为64MB,但它可以增加按需要在HDFS配置来改变。

上图中展现了整个HDFS三个重要角色:NameNode、DataNode和Client

NameNode可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等
NameNode会将文件系统的Meta-data存储在内存中
这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等
DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data
同时周期性地将所有存在的Block信息发送给NameNode。

Client就是需要获取分布式文件系统文件的应用程序

 这里通过三个操作,说明他们之间的交互关系:

文件写入:

  • Client向NN(Nameode简称)发起文件写入的请求
  • NN根据文件大小和文件块配置情况,返回给Client它所管理部分DN的信息
  • Client将文件划分为多个Block,根据DN的地址信息,按顺序写入到每一个DN块中

文件读取:

  • Client向NN发起文件读取的请求
  • NN返回文件存储的DN信息
  • Client读取文件信息

文件Blcok复制

  • NN发现部分文件的Block不符合最小复制数或部分DN失效
  • 统治DN相互复制block
  • DN开始直接相互复制

实验环境:

172.25.58.1        安装hadoop

172.25.58.250    物理机

从真机上给server1发送jdk和hadoop的安装包
Hadoop是Java开发的,因此需要在服务器上安装相对应的JDK
ps:Linux默认自带JDK–openJDK–>Hadoop集群千万不要使用这个
将hadoop安装包上传到服务器
ps:实际开发中如需要其他安装包,请去官网下载

一、单机版的实现

1、创建hadoop用户,把相关安装包全部安装到该用户家目录下

[root@server1 ~]# ls
hadoop-3.0.3.tar.gz  jdk-8u181-linux-x64.tar.gz
[root@server1 ~]# useradd -u 1000 hadoop
useradd: UID 1000 is not unique
[root@server1 ~]# useradd -u 1001 hadoop
[root@server1 ~]# mv * /home/hadoop
[root@server1 ~]# su - hadoop
[hadoop@server1 ~]$ ls
hadoop-3.0.3.tar.gz  jdk-8u181-linux-x64.tar.gz

在hadoop用户下,进行解压以及软链接~~以便于后续设置环境变量

[hadoop@server1 ~]$ tar zxf hadoop-3.0.3.tar.gz
[hadoop@server1 ~]$ tar zxf jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ ls
hadoop-3.0.3         jdk1.8.0_181
hadoop-3.0.3.tar.gz  jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ ln -s hadoop-3.0.3 hadoop
[hadoop@server1 ~]$ ln -s jdk1.8.0_181 java
[hadoop@server1 ~]$ ll
total 488256
lrwxrwxrwx 1 hadoop hadoop        12 Dec 21 18:30 hadoop -> hadoop-3.0.3
drwxr-xr-x 9 hadoop hadoop       149 May 31  2018 hadoop-3.0.3
-rw-r--r-- 1 root   root   314322972 Dec 21 18:26 hadoop-3.0.3.tar.gz
lrwxrwxrwx 1 hadoop hadoop        12 Dec 21 18:30 java -> jdk1.8.0_181
drwxr-xr-x 7 hadoop hadoop       245 Jul  7  2018 jdk1.8.0_181
-rw-r--r-- 1 root   root   185646832 Dec 21 18:26 jdk-8u181-linux-x64.tar.gz

2、编辑环境变量的文件,写入java命令绝对路径方便命令使用
 

[hadoop@server1 ~]$ vim .bash_profile

PATH=$PATH:$HOME/.local/bin:$HOME/java/bin

[hadoop@server1 ~]$ source .bash_profile   #使文件生效


[hadoop@server1 hadoop]$ vim hadoop-env.sh 
 54 export JAVA_HOME=/home/hadoop/java

[hadoop@server1 bin]$ jps   #显示当前所有java进程pid的命令
2334 Jps
[hadoop@server1 ~]$ ls
hadoop        hadoop-3.0.3.tar.gz  jdk1.8.0_181
hadoop-3.0.3  java                 jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ cd java/
bin/
COPYRIGHT
include/
javafx-src.zip
jre/
lib/
LICENSE
man/
README.html
release
src.zip
THIRDPARTYLICENSEREADME-JAVAFX.txt
THIRDPARTYLICENSEREADME.txt
[hadoop@server1 ~]$ cd java/jre/
[hadoop@server1 jre]$ ls
bin        LICENSE  THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  plugin   THIRDPARTYLICENSEREADME.txt
lib        README   Welcome.html
[hadoop@server1 jre]$ cd bin/

java对应的目录:

bin           hadoop最近的管理脚本和使用脚本的目录

etc           Hadoop配置文件所在的目录,包core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml
include     对外提供的编程库文件(具体存在着静态和动态链接,这些文件都是C++定义,通常适用于MapReduce)
lib            包含hadoop对外提供的编程静态和动态库,与include目录中的文件一起使用
libexec     各种服务对应上的shell配置文件所在的目录
sbin          hadoop管理脚本的目录,包括HDFS和YARN的各种启动服务
share        hadoop各个模块编译后jar包所在目录

ps:hadoop1.x版本是没有 yarn hadoop2.x之后提供的yarn

[hadoop@server1 hadoop]$ cat workers     #当前的用户是localhost
localhost
3、进行测试~~~

[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ mkdir input
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop/etc/hadoop
[hadoop@server1 hadoop]$ cp *.xml /home/hadoop/hadoop/in
include/ input/   
[hadoop@server1 hadoop]$ cp *.xml /home/hadoop/hadoop/input/
[hadoop@server1 hadoop]$ cd /home/hadoop/hadoop/

操作debug运行一个程序~~~
[hadoop@server1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep input output 'dfs[a-z.]+'

利用examples这个jar示例文件包,进行测试

测试结果:

[hadoop@server1 hadoop]$ cd output/
[hadoop@server1 output]$ ls
part-r-00000  _SUCCESS
[hadoop@server1 output]$ cat *
1    dfsadmin

结果即将input目录中的文件传到本地的output目录中

此时单机版搭建已经完毕~~~

二、伪分布式的实现过程如下

1、做本机的免密

[hadoop@server1 hadoop]$ ssh-keygen
[hadoop@server1 hadoop]$ su
[root@server1 hadoop]# passwd hadoop
[root@server1 hadoop]# su - hadoop
[hadoop@server1 ~]$ ssh-copy-id localhost

2、此时的workers文件里面既可以写localhost,也可以写ip地址
为了后续实验方便,此时写ip地址

[hadoop@server1 ~]$ vim /home/hadoop/hadoop/etc/hadoop/workers

172.25.58.1

3、设置slave为本机

本机一个节点开启datanode进程

具体配置过程https://hadoop.apache.org/# 官方网站上有

设置slave节点

[hadoop@server1 ~]$ cat /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml    副本接替

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>     
    </property>
</configuration>

设置master节点

[hadoop@server1 tmp]$ cd /home/hadoop/hadoop/etc/hadoop/core-site.xml   定义主节点

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.25.58.1:9000</value>
    </property>
</configuration>

进行初始化:

[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ bin/hdfs namenode -format

初始化后会出现一些临时文件,都在/tmp中

[hadoop@server1 hadoop]$ cd /tmp/
[hadoop@server1 tmp]$ ls
hadoop  hadoop-hadoop  hadoop-hadoop-namenode.pid  hsperfdata_hadoop

开启服务并且查看,此时datanode和namenode进程均开启在本节点上

[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ sbin/start-dfs.sh
Starting namenodes on [sever1]
sever1: Warning: Permanently added 'sever1,172.25.58.1' (ECDSA) to the list of known hosts.
Starting datanodes
Starting secondary namenodes [server1]
server1: Warning: Permanently added 'server1,fe80::5054:ff:fef0:98d4%eth0' (ECDSA) to the list of known hosts.
[hadoop@server1 hadoop]$ jps
3266 Jps
3128 SecondaryNameNode
2815 NameNode
2927 DataNode

[hadoop@server1 hadoop]$ ps ax

 2604 ?        S<     0:00 [kworker/0:0H]
 2815 ?        Sl     0:05 /home/hadoop/java/bin/java -Dproc_namenode -
 2927 ?        Sl     0:04 /home/hadoop/java/bin/java -Dproc_datanode -
 3128 ?        Sl     0:02 /home/hadoop/java/bin/java -Dproc_secondaryn
 3200 ?        Ss     0:00 /usr/sbin/anacron -s
 3276 pts/1    R+     0:00 ps ax

下载net-tools工具时出现报错:

[hadoop@server1 hadoop]$ sudo yum install net-tools-2.0-0.17.20131004git.el7.x86_64 -y

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

linux下面无法运行sudo命令
(a)进入超级用户模式。
输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
(b)添加文件的写权限。
输入命令"chmod u+w /etc/sudoers"。
(c)编辑/etc/sudoers文件。
输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。
(d)撤销文件的写权限。
输入命令"chmod u-w /etc/sudoers"。  
此时即可以进行下载net-tools工具~~

[hadoop@server1 ~]$ netstat -antlp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9866            0.0.0.0:*               LISTEN      2927/java           
tcp        0      0 0.0.0.0:9867            0.0.0.0:*               LISTEN      2927/java           
tcp        0      0 0.0.0.0:9868            0.0.0.0:*               LISTEN      3128/java           
tcp        0      0 0.0.0.0:9870            0.0.0.0:*               LISTEN      2815/java           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:36935         0.0.0.0:*               LISTEN      2927/java           
tcp        0      0 0.0.0.0:9864            0.0.0.0:*               LISTEN      2927/java           
tcp        0      0 172.25.58.1:9000        0.0.0.0:*               LISTEN      2815/java           
tcp        0      0 172.25.58.1:22          172.25.58.250:50556     ESTABLISHED -                   
tcp        0      0 172.25.58.1:56848       172.25.58.1:9000        ESTABLISHED 2927/java           
tcp        0      0 172.25.58.1:9000        172.25.58.1:56848       ESTABLISHED 2815/java           
tcp        0      0 172.25.58.1:56886       172.25.58.1:9000        TIME_WAIT   -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      -                   
tcp6       0      0 ::1:22                  ::1:51498               ESTABLISHED -                   
tcp6       0      0 ::1:51498               ::1:22                  ESTABLISHED 2581/ssh

在真机上做好解析后,进行测试~~~

http:172.25.58.1:9870

截图如下:

查看主机信息:(可以看到此时主机内存还没有被占用)

[hadoop@server1 ~]$ cd /home/hadoop/hadoop
[hadoop@server1 hadoop]$ bin/hdfs dfsadmin -report

[hadoop@server1 ~]$ cd /home/hadoop/hadoop
[hadoop@server1 hadoop]$ bin/hdfs dfsadmin -report
Configured Capacity: 18238930944 (16.99 GB)
Present Capacity: 15336062976 (14.28 GB)
DFS Remaining: 15336054784 (14.28 GB)
DFS Used: 8192 (8 KB)
DFS Used%: 0.00%
Replicated Blocks:
    Under replicated blocks: 0
    Blocks with corrupt replicas: 0
    Missing blocks: 0
    Missing blocks (with replication factor 1): 0
    Pending deletion blocks: 0
Erasure Coded Block Groups:
    Low redundancy block groups: 0
    Block groups with corrupt internal blocks: 0
    Missing block groups: 0
    Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (1):

Name: 172.25.58.1:9866 (sever1)
Hostname: sever1
Decommission Status : Normal
Configured Capacity: 18238930944 (16.99 GB)
DFS Used: 8192 (8 KB)
Non DFS Used: 2902867968 (2.70 GB)
DFS Remaining: 15336054784 (14.28 GB)
DFS Used%: 0.00%
DFS Remaining%: 84.08%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Dec 21 19:16:39 EST 2019
Last Block Report: Sat Dec 21 19:01:01 EST 2019

测试,创建目录,并上传:

[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop

[hadoop@server1 hadoop]$ bin/hdfs dfs -ls   #创建之前,ls的话会出错
ls: `.': No such file or directory

[hadoop@server1 hadoop]$ bin/hdfs dfs -mkdir -p /user/hadoop     创建hadoop存储的家目录(这里似乎得创建两次目录,不能一下子创建完)
[hadoop@server1 hadoop]$ bin/hdfs dfs -ls    #由于还没有在里边存储数据
[hadoop@server1 hadoop]$ bin/hdfs dfs -put input   #上传到分布之文件系统中
[hadoop@server1 hadoop]$ bin/hdfs dfs -ls
Found 1 items
drwxr-xr-x   - hadoop supergroup          0 2019-12-21 19:21 input


[hadoop@server1 hadoop]$ sudo yum install -y bash-* 
这下就可以table补齐了

可以看到上传的目录

删除input和output文件,重新执行命令

[hadoop@server1 hadoop]$ rm -fr input/ output/
[hadoop@server1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep input output 'dfs[a-z.]+'
[hadoop@server1 hadoop]$ ls
bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  README.txt  sbin  share
**此时input和output不会出现在当前目录下,而是上传到了分布式文件系统中,网页上可以看到**

[hadoop@server1 hadoop]$ bin/hdfs dfs -cat output/*
1    dfsadmin
[hadoop@server1 hadoop]$ bin/hdfs dfs -get output      ##从分布式系统中get下来output目录
[hadoop@server1 hadoop]$ cd output/
[hadoop@server1 output]$ ls
part-r-00000  _SUCCESS
[hadoop@server1 output]$ cat *
1    dfsadmin

三、分布式的搭建

注意:

  • blocksize:1.X是64M   2.X是128M
  • 启动失败,重新formant格式化即可

实验前提:停止server1上的服务

1、先停掉服务,清除原来的数据

[hadoop@server1 hadoop]$ sbin/stop-dfs.sh 
[hadoop@server1 hadoop]$ jps
4375 Jps
[hadoop@server1 hadoop]$ cd /tmp
[hadoop@server1 tmp]$ rm -rf *

2、新开两个虚拟机,当做节点

##创建用户
[root@server2 ~]# useradd -u 1001 hadoop
[root@server3 ~]# useradd -u 1001 hadoop

##安装nfs-utils
[root@server1 ~]# yum install -y nfs-utils
[root@server2 ~]# yum install -y nfs-utils
[root@server3 ~]# yum install -y nfs-utils

[root@server1 ~]# systemctl start rpcbind
[root@server2 ~]# systemctl start rpcbind
[root@server3 ~]# systemctl start rpcbind

exportfs命令

  • -a 全部挂载或者全部卸载
  • -r 重新挂载
  • -u 卸载某一个目录
  • -v 显示共享目录

3、server1开启服务,配置

[root@server1 ~]# systemctl start nfs-server
[root@server1 ~]# vim /etc/exports
/home/hadoop   *(rw,anonuid=1001,anongid=1001)
[root@server1 ~]# exportfs -rv    #重新挂载,并且显示创建的共享目录
exporting *:/home/hadoop
[root@server1 ~]# showmount -e
Export list for server1:
/home/hadoop *

showmount命令用于查询NFS服务器的相关信息
# showmount --help
 Usage: showmount [-adehv]
        [--all] [--directories] [--exports]
        [--no-headers] [--help] [--version] [host]
-a或--all
    以 host:dir 这样的格式来显示客户主机名和挂载点目录。
 -d或--directories
    仅显示被客户挂载的目录名。
 -e或--exports
    显示NFS服务器的输出清单。
 -h或--help
    显示帮助信息。
 -v或--version
    显示版本信。
 --no-headers
    禁止输出描述头部信息。

4、server2,3挂载

[root@server2 ~]# mount 172.25.58.1:/home/hadoop/ /home/hadoop/
[root@server2 ~]# df
Filesystem               1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root     17811456 1094872  16716584   7% /
devtmpfs                    497292       0    497292   0% /dev
tmpfs                       508264       0    508264   0% /dev/shm
tmpfs                       508264   13076    495188   3% /run
tmpfs                       508264       0    508264   0% /sys/fs/cgroup
/dev/sda1                  1038336  141512    896824  14% /boot
tmpfs                       101656       0    101656   0% /run/user/0
172.25.58.1:/home/hadoop  17811456 2840704  14970752  16% /home/hadoop

5、此时发现可以免密登录(因为是挂载上的)

6、重新编辑server1的文件

[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop/etc/hadoop
[hadoop@server1 hadoop]$ vim core-site.xml 
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.25.58.1:9000</value>
    </property>
</configuration>


[hadoop@server1 hadoop]$ vim hdfs-site.xml 
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>     ##改为两个节点
    </property>
</configuration>

[hadoop@server1 hadoop]$ vim workers 
[hadoop@server1 hadoop]$ cat workers 
172.25.58.2
172.25.58.3
##在一个地方编辑,其他节点都有了
[root@server2 ~]# su - hadoop
Last login: Sat Apr  6 11:32:41 CST 2019 from server1 on pts/1
[hadoop@server2 ~]$ cd hadoop/etc/hadoop/
[hadoop@server2 hadoop]$ cat workers 
172.25.58.2
172.25.58.3

[root@server3 ~]# su - hadoop
Last login: Sat Apr  6 11:32:41 CST 2019 from server1 on pts/1
[hadoop@server3 ~]$ cd hadoop/etc/hadoop/
[hadoop@server3 hadoop]$ cat workers 
172.25.58.2
172.25.58.3

7、进行格式化,并启动服务

[hadoop@server1 hadoop]$ bin/hdfs namenode -format
[hadoop@server1 hadoop]$ sbin/start-dfs.sh 
[hadoop@server1 hadoop]$ sbin/start-dfs.sh 
Starting namenodes on [sever1]
Starting datanodes
172.25.58.3: Warning: Permanently added '172.25.58.3' (ECDSA) to the list of known hosts.
172.25.58.2: Warning: Permanently added '172.25.58.2' (ECDSA) to the list of known hosts.
Starting secondary namenodes [server1]


[hadoop@server1 hadoop]$ jps
5159 SecondaryNameNode
4937 NameNode
5273 Jps   

##从节点可以看到datanode信息
[hadoop@server2 ~]$ jps
11959 DataNode
12046 Jps
[hadoop@server3 ~]$ jps
2616 DataNode
2702 Jps

8、进行测试

[hadoop@server1 hadoop]$ bin/hdfs dfs -mkdir -p /user/hadoop
[hadoop@server1 hadoop]$ bin/hdfs dfs -mkdir input
[hadoop@server1 hadoop]$ bin/hdfs dfs -put etc/hadoop/*.xml input
[hadoop@server1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep input output 'dfs[a-z.]+'

出现的问题:

[hadoop@server1 hadoop]$ bin/hdfs dfs -mkdir -p /user/hadoop
mkdir: Cannot create directory /user/hadoop. Name node is in safe mode.

此时出出现error,name node在安全模式下:


原因:
(1)、当namenode发现集群中的block丢失数量达到一个阀值时,namenode就进入安全模式状态,不再接受客户端的数据更新请求

(2)、在正常情况下,namenode也有可能进入安全模式:
集群启动时(namenode启动时)必定会进入安全模式,然后过一段时间会自动退出安全模式(原因是datanode汇报的过程有一段持续时间)

也确实有异常情况下导致的安全模式
原因:block确实有缺失
措施:可以手动让namenode退出安全模式,bin/hdfs dfsadmin -safemode leave
[hadoop@server1 hadoop]$ bin/hdfs dfsadmin -safemode leave
Safe mode is OFF
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop

总结:当salve的datanode不能开启时,就将master和slave的/tmp下所有文件删除,然后重新格式化,start...此时就好了~~~

server4模拟客户端

[root@server4 ~]# useradd -u  1000 hadoop
[root@server4 ~]# yum  install -y  nfs-utils
[root@server4 ~]# systemctl start rpcbind
[root@server4 ~]# mount 172.25.14.1:/home/hadoop /home/hadoop
[root@server4 ~]# su - hadoop
[hadoop@server4 hadoop]$ pwd
/home/hadoop/hadoop/etc/hadoop
[hadoop@server4 hadoop]$ vim workers 
172.25.14.2
172.25.14.3
172.25.14.4


[hadoop@server4 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server4 hadoop]$ sbin/hadoop-daemon.sh start   ##开启datanode节点服务datanode
[hadoop@server4 hadoop]$ jps
2609 Jps
2594 DataNode

浏览器查看,节点添加成功~~

[hadoop@server4 hadoop]$ dd if=/dev/zero of=bigfile bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 25.8653 s, 20.3 MB/s
[hadoop@server4 hadoop]$ bin/hdfs dfs -put bigfile
发布了124 篇原创文章 · 获赞 18 · 访问量 3085

猜你喜欢

转载自blog.csdn.net/weixin_42221657/article/details/103649736