Linux 大数据 HADOOP 01-02

【Hadoop 伪分布式  与 完全分布式  的安装部署】

Hadoop 伪分布式
• 伪分布式

– 伪分布式的安装和完全分布式类似,但区别是所有角
色安装在一台机器上,使用本地磁盘,一般生产环境
都会使用完全分布式,伪分布式一般用来学习和测试
方面的功能
– 伪分布式的配置和完全分布式配置类似

+++++++++++++++++++++++++++++++++++++++++++++++
HDFS 分布式文件系统
——完全分布式
• 系统规划

主机                                        角色                                                           软件
192.168.1.10
Nn01                            NameNode
                                     Sec ondaryNameNode                                     HDFS

192.168.1.11
Node1                               Da taNode                                                    HD FS

192.168.1.12
Node2                                  DataNode                                                   HDFS

192.168.1.13
node3                                          DataNode                                             HDFS
---------------------------
搭建完全分布式
【【一】】• 基础环境准备
– 新开启3台虚拟机
– 禁用 selinux
SELINUX=disabled
– 禁用 firewalld
systemctl stop firewalld
systemctl mask firewalld
– 安装 java-1.8.0-openjdk-devel
yum install -y java-1.8.0-openjdk-devel
----------------
搭建完全分布式
• 基础环境准备
– 在3台机器上配置 /etc/hosts
– 注: 所有主机都能 ping 同 namenode 的主机名

namenode 能 ping 同所有节点
– java -version 验证 java 安装
– jps 验证角色
-----------------------
完全分布式
• 配置 SSH 信仸关系(namenode)
– 注意:不能出现要求输入 yes 的情况,每台机器都要
能登录成功,包括本机!!!
– ssh_config
StrictHostKeyChecking no
– ssh-keygen -b 2048 -t rsa -N '' -f key
– ssh-copy-id -i ./key.pub root@ip.xx.xx.xx


4台hosts 都配置
192.168.1.20    nn01
192.168.1.21    node1
192.168.1.22    node2
192.168.1.23    node3

[root@nn01 ~]# vim /etc/hosts
192.168.1.10 nn01
192.168.1.11 node1
192.168.1.12 node2
192.168.1.13 node3
[root@nn01 ~]# rsync -av /etc/hosts node1:/etc/
-bash: rsync: 未找到命令
[root@nn01 ~]# yum provides rsync   #查找这个命令由哪个包产生
[root@nn01 ~]# yum -y install rsync    #(node1 2 3 也要安装!)
同步到node1 2 3 
[root@nn01 ~]# rsync -av /etc/hosts node1:/etc/
[root@nn01 ~]# rsync -av /etc/hosts node2:/etc/
[root@nn01 ~]# rsync -av /etc/hosts node3:/etc/

【nn01 已经部署安装过了hadoop】

[root@nn01 ~]#  yum install java-1.8.0-openjdk-devel
[root@node1 ~]# yum install java-1.8.0-openjdk-devel
[root@node2 ~]# yum install java-1.8.0-openjdk-devel
[root@node3 ~]# yum install java-1.8.0-openjdk-devel

验证一下所有机器java环境
[root@nn01 ~]# for i in node{1..3};do ssh ${i} jps; done
root@node1's password: 
10290 Jps
root@node2's password: 
10263 Jps
root@node3's password: 
1442 Jps
-------------------------
【【二 】】配置 SSH 信任关系

– 注意:不能出现要求输入 yes 的情况,每台机器都要
能登录成功,包括本机!!
– ssh-keygen -b 2048 -t rsa -N '' -f key
– ssh-copy-id -i ./key.pub root@ip.xx.xx.xx

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
解释: -f key   key表示文件名,key有两个文件名(id_rsa , id_rsa.pub);如果指定了key的话,它会指定文件名; -f filename;  如果在外面生成了,私钥需要拷贝到root下的.ssh里才能生效!  因为配置文件里面写的路径就是/root/.ssh/ 
 除非自己私自更改路径;
[root@nn01 ~]# vim /etc/ssh/ssh_config 
....... ......
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa        #—> 默认写好了路径, 想改就把注释去掉,自己写路径
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
.........

记住:如果使用了 ssh-keygen -b 2048 -t rsa -N '' -f key (没有指定key的文件名),
会生成 两个文件.key  .key.pub  (如果指定了key文件名,或者默认,会生成id_rsa  id_rsa.pub ) 
[root@nn01 ~]# ls
.key  .key.pub
那么私钥可能会生成在外面, 可能无法实现 免秘钥匙,怎么解决,
私钥 默认是在root下的.ssh里
1种方法:
mv key /root/.ssh/id_rsa  (把生成的文件key放到/root/.ssh/ 重命名id_rsa)
2种方法: 找到key的路径,把配置文件里面的路径改一下。
3种方法:ssh -i key 192.168.1.10
如果不想出现这问题,想省事情 就直接 ssh-keygen -b 2048 -t rsa -N '' 不带-f key  就生成默认的
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


##: ssh 的时候,需要输入“yes” 在配置文件中找到“StrictHostKeyChecking”写到“Host”下面
[root@nn01 ~]# vim /etc/ssh/ssh_config  # 不让出现输入yes情况!
.... ... ..
Host *
        GSSAPIAuthentication yes
        StrictHostKeyChecking no

 ......

[root@nn01 .ssh]# ssh-keygen -t rsa -b 2048 -N '' -f id_rsa

[root@nn01 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@nn01 .ssh]# 

[root@nn01 .ssh]# ssh-copy-id -i id_rsa.pub nn01
[root@nn01 .ssh]# ssh-copy-id -i id_rsa.pub node1
[root@nn01 .ssh]# ssh-copy-id -i id_rsa.pub node2
[root@nn01 .ssh]# ssh-copy-id -i id_rsa.pub node3

[root@nn01 .ssh]# ssh localhost
[root@nn01 .ssh]# ssh node1
[root@nn01 .ssh]# ssh node2
[root@nn01 .ssh]# ssh node3

----------------------------------
【hadoop官方网址::---》》》】http://hadoop.apache.org/
hadoop官方文档  http://hadoop.apache.org/
-> Documentation -> 找到相应的版 --> configuration——> 看到相应的配置文件
+++++++++
Hadoop 配置文件及格式
• 文件格式
– Hadoop-env.sh
JAVA_HOME
HADOOP_CONF_DIR

– Xml 文件配置格式
<property>
<name>关键字</name>
<value>变量值</value>
<description> 描述 </description>
</property>


【【 三 】】• HDFS 完全分布式系统配置

– 环境配置文件 hadoop-env.sh
– 核心配置文件 core-site.xml
– HDFS配置文件 hdfs-site.xml
– 节点配置文件 slaves

:: hadoop 有通用性 在一台机器上配置完了 所有节点的配置文件相同,
所以在一台机器上配置完之后,可以拷贝(同步)到其它机器上 ,就完成了配置。
----------------------

1. # # #  环境配置文件 hadoop-env.sh #
– openjdk 的安装目录
– JAVA_HOME

– hadoop 配置文件的存放目录
– HADOOP_CONF_DIR
-------------------
找到软件,或者下载到机器上 (本次实验之前我的把下载的hadoop软件放到另外一台机器上了)
[root@node20 ~]# lftp 192.168.1.254
lftp 192.168.1.254:/> cd elk/hadoop/
lftp 192.168.1.254:/elk/hadoop> get hadoop-2.7.6.tar.gz 
[root@node20 ~]# ls
hadoop-2.7.6.tar.gz  
[root@node20 ~]# 
[root@node20 ~]# tar zxf hadoop-2.7.6.tar.gz 
[root@node20 ~]# ls
hadoop-2.7.6  hadoop-2.7.6.tar.gz

[root@node20 ~]# mv hadoop-2.7.6 /usr/local/hadoop
[root@node20 ~]# 
[root@node20 ~]# cd /usr/local/hadoop/
[root@node20 hadoop]# ls
bin  include  libexec      NOTICE.txt  sbin
etc  lib      LICENSE.txt  README.txt  share
『bin里面放的可以执行的命令文件; sbin也是命令 服务相关的; include放的是引用的类库  libexec执行的一些类库
etc配置文件所在的路径; lib动态连接库   share 编写的一些文档,案例,代码!』

[root@node20 hadoop]# ls bin/
container-executor  hdfs      mapred.cmd               yarn
hadoop              hdfs.cmd  rcc                      yarn.cmd
hadoop.cmd          mapred    test-container-executor
[root@node20 hadoop]# 
[root@node20 hadoop]# ./bin/hadoop            ## — — — —>> 运行一下hadoop
Error: JAVA_HOME is not set and could not be found.   ##报错!
[root@node20 hadoop]# 
[root@node20 hadoop]# rpm -ql java-1.8.0-openjdk  ##查找一下java的安装的家目录路径
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/bin/policytool
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/lib/amd64/libawt_xawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/lib/amd64/libjawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/lib/amd64/libjsoundalsa.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/lib/amd64/libsplashscreen.so
/usr/share/applications/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64-policytool.desktop
.....    .....   ....   ....   
可以看到家目录,共有的目录到/jre 之前都相同
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre

[root@node20 hadoop]# ls
[root@node20 hadoop]# cd etc/
[root@node20 etc]# ls
hadoop
[root@node20 hadoop]# ls
[root@node20 hadoop]# pwd
/usr/local/hadoop/etc/hadoop            ##----->> hadoop 配置文件的路径!

[root@node20 hadoop]# pwd
/usr/local/hadoop/etc/hadoop
[root@node20 hadoop]# vim hadoop-env.sh  #(这其实是个脚本,修改这个脚本, 非注释的 前两行!)
修改前  
export JAVA_HOME=${JAVA_HOME}
与 后
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"

修改前 
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}   ##// hadoop配置文件路径!
【解释: ${HADOOP_CONF_DIR:-"/etc/hadoop"} 前面是个变量 HADOOP_CONF_DIR这是变量的主题,后面/etc/hadoop是个字符串; 其中 :- 表示 前面变量为空或没有设置的时候,由后面字符串代替  】

修改后
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"


[root@node20 hadoop]# cd /usr/local/hadoop/
[root@node20 hadoop]# ./bin/hadoop          ##此时就不会报错了!显示出信息了!
验证安装是否完成!
[root@node20 hadoop]# ./bin/hadoop version    ## 查看一下版本  这时候安装完成!
Hadoop 2.7.6
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r 085099c66cf28be31604560c376fa282e69282b8
Compiled by kshvachk on 2018-04-18T01:33Z
Compiled with protoc 2.5.0
From source with checksum 71e2695531cb3360ab74598755d036
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.6.jar
[root@node20 hadoop]# 


------------------
2 # # # 核心配置文件 core-site.xml #   
默认都是注释,配置文件部分 是空的 需要手写
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
....    ..    ..    ..
<!--
  limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->

<configuration>
</configuration>

[root@nn01 hadoop]# vim core-site.xml 
[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ls
[root@nn01 hadoop]# cd etc/hadoop/
[root@nn01 hadoop]# pwd
/usr/local/hadoop/etc/h

[root@nn01 hadoop]# vim core-site.xml
.......    ......    ...    ...
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://nn01:9000</value>      #->namenode
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop</value>         #->可以理解为hadoop的数据根目录
    </property>
</configuration>

[root@nn01 hadoop]# mkdir /var/hadoop   # 建立数据目录
[root@nn01 hadoop]# ssh node1 mkdir /var/hadoop    #为每个节点创造目录
[root@nn01 hadoop]# ssh node2 mkdir /var/hadoop
[root@nn01 hadoop]# ssh node3 mkdir /var/hadoop

---------------------------------------
3 # # #  HDFS配置文件 hdfs-site.xml #

[root@nn01 hadoop]# vim hdfs-site.xml 
...    ...    ...    ...    ...
<configuration>
    <property>
        <name>dfs.namenode.http-address</name>    #namenode的地址
        <value>nn01:50070</value>            #namenode的地址(ip)
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name> #相当于namenode的小蜜 本次实验还是nn01
        <value>nn01:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>            #切块数据 存几份 默认是3份 
        <value>2</value>                    # 存两份!
    </property>
</configuration>

---------------------------------------------------------
4 # # # 节点配置文件 slaves #
完全分布式
• 节点配置文件 slaves
– 只写 datanode 节点的主机名称
node1
node2
node3

[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  oo  README.txt  sbin  share  xx
[root@nn01 hadoop]# cd etc/hadoop/
[root@nn01 hadoop]# pwd
/usr/local/hadoop/etc/hadoop
[root@nn01 hadoop]# ls
[root@nn01 hadoop]# vim slaves   ## 其实就是写datanode的主机名
node1
node2
node3
--------------------------------
5 # # #  
– 同步配置
– hadoop 所有节点的配置参数完全一样,我们在一台
配置好以后,要把配置文件分发到其它所有主机上去

[root@nn01 hadoop]# for i in node{1..3};do
> rsync -aSH --delete /usr/local/hadoop ${i}:/usr/local/ -e 'ssh' &
> done
[1] 11977
[2] 11978
[3] 11979
[root@nn01 hadoop]# wait
[1]   完成                  rsync -aSH --delete /usr/local/hadoop ${i}:/usr/local/ -e 'ssh'
[2]-  完成                  rsync -aSH --delete /usr/local/hadoop ${i}:/usr/local/ -e 'ssh'
[3]+  完成                  rsync -aSH --delete /usr/local/hadoop ${i}:/usr/local/ -e 'ssh'
[root@nn01 hadoop]# 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
补充:注意::--->>
为了方便后期同步,我们可以写个脚本!
[root@nn01 hadoop]# cd /usr/local/bin/
[root@nn01 bin]# ls
[root@nn01 bin]# vim rrr
#!/bin/bash
for i in $@;do
    rsync -aSH --delete /usr/local/hadoop/etc ${i}:/usr/local/hadoop/ -e 'ssh' &
done
wait
[root@nn01 bin]# chmod 755 rrr
[root@nn01 bin]# cd
[root@nn01 ~]# 
[root@nn01 ~]# rrr node{1..3}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 # # #
– 在所有机器上创建 /var/hadoop 文件夹    这一步骤在“2 ##”已经做过
mkdir /var/hadoop

– 在 namenode 上执行格式化操作
./bin/hdfs namenode -format
– 启劢集群
./sbin/start-dfs.sh


[root@nn01 ~]# cd /usr/local/hadoop/
[root@nn01 hadoop]# ls
[root@nn01 hadoop]# ./bin/hdfs  直接“回车” 可以看到帮助!

[root@nn01 hadoop]# ./bin/hdfs namenode -format    #------> 执行格式化!!
格式化:成功的结果是 会看到一列 INFO  没有erro 应该也没有waring  会看到successfully 

启动集群之前  是没有叫logs的文件夹
[root@nn01 hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  oo  README.txt  sbin  share  xx
[root@nn01 hadoop]# 

[root@nn01 hadoop]# ./sbin/start-dfs.sh  #-----------> 启动集群!!
[root@nn01 hadoop]# ./sbin/stop-dfs.sh  #-----------> 关闭集群!!

启动集群之后 会看到logs文件夹
[root@nn01 hadoop]# ls
bin  include  libexec      logs        oo          sbin   xx
etc  lib      LICENSE.txt  NOTICE.txt  README.txt  share
[root@nn01 hadoop]# 
-----------------------------------
7 # # #——————
• JPS验证角色:
– namenode 验证
[root@nn01 hadoop]# jps
29826 SecondaryNameNode
31237 Jps
29643 NameNode
– datanode 验证
[root@node1 ~]# jps
24472 Jps
24027 DataNode


[root@nn01 hadoop]# jps       ## 可以看到nn01 有两个角色!!!
12481 Jps
12355 SecondaryNameNode
12168 NameNode
[root@nn01 hadoop]# 
[root@nn01 hadoop]# ssh node1 jps
11162 Jps
11085 DataNode
[root@nn01 hadoop]# 
[root@nn01 hadoop]# ssh node2 jps
11057 DataNode
11133 Jps
[root@nn01 hadoop]# 
[root@nn01 hadoop]# 
[root@nn01 hadoop]# ssh node3 jps
11043 Jps
10966 DataNode
[root@nn01 hadoop]# 

--------------------------------------------------
8 ###
完全分布式
• 节点验证:
– namenode 上
– bin/hdfs dfsadmin -report

[root@nn01 hadoop]# bin/hdfs dfsadmin -report

Configured Capacity: 51505004544 (47.97 GB)
DFS Used: 733184 (716 KB)
... ...
Missing blocks: 0
Missing blocks (with replication factor 1): 0
-------------------------------------------------
Live datanodes (3):
-
实际验证::———>>>>
[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report

[root@nn01 hadoop]# ./bin/hdfs dfsadmin -report
Configured Capacity: 64389844992 (59.97 GB)
Present Capacity: 59319640064 (55.25 GB)
DFS Remaining: 59319627776 (55.25 GB)
DFS Used: 12288 (12 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (3):        #!#!#------------>> 一定是3 因为我们之前规划的就是三个!!

Name: 192.168.1.12:50010 (node2)
Hostname: node2
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 1690120192 (1.57 GB)
DFS Remaining: 19773157376 (18.42 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.13%
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: Wed Aug 08 11:45:33 CST 2018

Name: 192.168.1.11:50010 (node1)
Hostname: node1
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 1690034176 (1.57 GB)
DFS Remaining: 19773243392 (18.42 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.13%
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: Wed Aug 08 11:45:33 CST 2018

Name: 192.168.1.13:50010 (node3)
Hostname: node3
Decommission Status : Normal
Configured Capacity: 21463281664 (19.99 GB)
DFS Used: 4096 (4 KB)
Non DFS Used: 1690050560 (1.57 GB)
DFS Remaining: 19773227008 (18.42 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.13%
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: Wed Aug 08 11:45:33 CST 2018
------------------------------------------------------
排错::————>>
如果看不到哪台机器 就去哪台机器上 去排错!
例如namenode 
[root@nn01 hadoop]# cd logs/
[root@nn01 logs]# 
[root@nn01 logs]# ls
hadoop-root-namenode-nn01.log           hadoop-root-secondarynamenode-nn01.out
hadoop-root-namenode-nn01.out           SecurityAuth-root.audit
hadoop-root-secondarynamenode-nn01.log

解释:hadoop-root-namenode-nn01.log   hadoop-root-namenode-nn01.out
hadoop 软件平台名称 ; root表示启动这个服务的用户   ; namenode表示这个用户启动的角色  ;
nn01 表示服务器的名称 ; .log日志输出;  .out屏幕输出 

例如到datanode 也一样
[root@node1 hadoop]# ls
bin  include  libexec      logs        oo          sbin   xx
etc  lib      LICENSE.txt  NOTICE.txt  README.txt  share
[root@node1 hadoop]# cd logs/
[root@node1 logs]# ls
hadoop-root-datanode-node1.log  hadoop-root-datanode-node1.out  SecurityAuth-root.audit
[root@node1 logs]# 

另外排错,什么样的角色 就存什么要的数据  
例如node1
[root@node1 ~]# cd /var/hadoop/
[root@node1 hadoop]# ls
dfs
[root@node1 hadoop]# cd dfs/
[root@node1 dfs]# ls
data                        ## 只有data 因为node1它是datanode角色
[root@node1 dfs]# tree 
.
└── data
    ├── current
    │   ├── BP-1963026238-192.168.1.10-1533699139698
    │   │   ├── current
    │   │   │   ├── finalized
    │   │   │   ├── rbw
    │   │   │   └── VERSION
    │   │   ├── scanner.cursor
    │   │   └── tmp
    │   └── VERSION
    └── in_use.lock

7 directories, 4 files
[root@node1 dfs]# 

再如nn01  它是name角色 namesecondary角色

[root@nn01 hadoop]# cd /var/hadoop/
[root@nn01 hadoop]# ls
dfs
[root@nn01 hadoop]# cd dfs/
[root@nn01 dfs]# ls
name  namesecondary            ## 只有name  namesecondary   没有data
[root@nn01 dfs]# 

# # # 就是数这台机器起什么角色,它/var/hadoop 才会存什么样的东西!
那么角色由什么查看呢 
#如果这些都没有问题,那么hadoop就成功了


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值