第一步:使用date命令查看时间 确保四台虚拟机的时间保持同步(相差30s以内都可以接受) 不同步的话 需要跟同一个公用时间同步服务器同步(ntpdate命令)(安装hadoop之前要确保兼容的jdk已经安装好)

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim

 

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_02

第二步:设置SSH免密登录(非必须) 是因为如果不配置的话 在一个节点上启动hdfs时 它会默认远程登录到其他节点启动,这时就会暂停 需要手动输入密码 才能继续

免密登陆的过程及原理剖析:

以master和slave1为例,master要想免密登录到slave1,首先需要将自己的ip地址和公钥发送给slave1,slave1在收到master发送的公钥后与自己的本地认证文件中的公钥进行比对,如果比对成功,则会认为master是可以免密登录到slave1的,那么slave1就会把自己的密码发送给master,master收到密码后,再一次向slave1发起连接,即可登录成功

先检查是否已经设置 例如ssh master 如果弹出让你输入密码的提示 表示没有设置免密登录

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hdfs_03

(1)生成密钥: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

(2)查看生成的密钥文件:ls ~/.ssh

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_04

id_dsa是私钥 id_dsa.pub是公钥 设置免密登录需要用到公钥

(3)将公钥追加到本地的认证文件中:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_05

(4)测试 ssh master

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_06

发现master已经可以免密登录

(5)在slave1 slave2 slave3上分别使用上面的命令生成公钥 并把公钥追加到自己的认证文件中 那么它们就都可以免密登录本地服务器

(6)将master中的公钥拷贝到slave1的/opt目录下

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_07

(7)将slave1的/opt下master的公钥追加到自己本地的认证文件中:

cat ./id_dsa.pub >> ~/.ssh/authorized_keys

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hdfs_08

(8)在master上测试 是否能免密登录到slave1:ssh slave1

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_09

表示成功

重复以上的操作 使得master可以免密登录到slave1 slave2 slave3(注意:登录后记得退出)

第三步:在master(NameNode)上安装hadoop

(1)上传安装包 并解压:tar -xvf hadoop-2.5.1_x64.tar.gz 

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_10

修改文件夹名 mv hadoop-2.5.1 hadoop

(2)修改hadoop-env.sh文件中的JAVA_HOME:vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_11

(3)在core-site.xml文件中加入以下内容:vim /usr/local/hadoop/etc/hadoop/core-site.xml

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_12

指定master为NameNode以及数据上传下载的端口为9000(基于RPC协议 不能通过浏览器访问)

(4)在core-site.xml文件中加入以下内容:vim /usr/local/hadoop/etc/hadoop/core-site.xml

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_13

指定hadoop的临时文件目录 默认在Linux的/tmp目录下 但是由于Linux重启后/tmp目录下的所有文件会清空 会造成hadoop临时文件丢失 而hdfs-default.xml文件中的配置项dfs.namenode.name.dir默认就是在hadoop的临时文件目录下 它保存的是fsimage文件 因此一旦配置在默认路径下 Linux重启后fsimage文件就会丢失 元数据十分重要 一旦丢失 整个hdfs集群就会崩溃 因此需要将hadoop临时文件配置在其他安全的目录

(5)在hdfs-site.xml文件中加入以下内容::vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hdfs_14

指定SecondaryNameNode所在的主机及端口(基于http协议 可以通过浏览器直接访问)

(6)在slaves文件中加入以下内容:vim /usr/local/hadoop/etc/hadoop/slaves

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_15

指定DataNode的主机名

(7)在/usr/local/hadoop/etc/hadoop目录下创建masters文件 并加入以下内容:vim /usr/local/hadoop/etc/hadoop/masters

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_16

指定SecondaryNameNode的主机名

第四步:将master上的hadoop拷贝到slave1 slave2 slave3上

(1)先删除/usr/local/hadoop/share目录下的doc文件夹

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_17

(2)开始拷贝:scp -r /usr/local/hadoop root@slave1:/usr/local

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_18

可以看到slave1的/usr/local目录下已经存在hadoop目录了 再分别拷贝到slave2 slave3的/usr/local目录下

第五步:在master上配置hadoop的环境变量:vim ~/.bash_profile

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_19

将配置文件拷贝到slave1 slave2 slave3的root目录下

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hdfs_20

source ~/.bash_profile使配置文件生效

第六步:在master上格式化hdfs文件系统:hdfs namenode -format(这个命令只能在指定的namenode上输入)

格式化之后 会在之前配置为hadoop临时文件目录下生成以下的目录和文件(fsimage文件只是初始化 基本没有什么内容 后缀为.md5的文件是fsimage的验证文件)

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_21

第六步:在master上启动hdfs集群:start-dfs.sh(如果没有设置免密登录 此时就会多次让你输入密码)

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_22

表示所有节点启动完成

第七步:通过浏览器查看集群状态(www.master.com:50070)

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_23

查看活动的DataNode节点

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_24

查看SecondaryNameNode状态信息(www.slave1.com:50090)

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hdfs_25

查看hdfs文件系统信息

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_vim_26

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_27

hadoop查询集群的存储系统信息没有数据 hadoop集群验证步骤_hadoop_28

a.php不到128M 所以只有一个block