hadoop2.5.1集群安装步骤

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

 

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

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

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

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

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

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

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

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

(4)测试 ssh master

发现master已经可以免密登录

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

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

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

 

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

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

表示成功

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

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

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

修改文件夹名 mv hadoop-2.5.1 hadoop

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

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

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

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

指定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

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

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

指定DataNode的主机名

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

指定SecondaryNameNode的主机名

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

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

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

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

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

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

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

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

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

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

表示所有节点启动完成

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

查看活动的DataNode节点

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

查看hdfs文件系统信息

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值