Hadoop分布式集群搭建 (一 Centos7 环境准备)

来源:互联网 发布:glassfish java ee 编辑:程序博客网 时间:2024/05/22 12:55

机器准备

  • Centos7
  • Vmware10
  • jdk

安装和配置IP

主机名称 用户 密码 ip master master master 192.168.1.122 slave1 hadoop hadoop 192.168.1.123 slave2 hadoop hadoop 192.168.1.124 slave3 hadoop hadoop 192.168.1.125

在每台主机添加用户 hadoop 密码 hadoop

使用命令 useradd添加用户, passwd为用户hadoop设置密码

[root@slave1 ~]# useradd hadoop[root@slave1 ~]# passwd hadoopChanging password for user hadoop.New password: BAD PASSWORD: The password is shorter than 8 charactersRetype new password: passwd: all authentication tokens updated successfully.[root@slave1 ~]# 

关闭防火墙

关闭防火墙是必须的,centos7默认是不用iptables

sudo systemctl stop firewalld.service && sudo  systemctl disable firewalld.service

配置hosts文件

注意: ==sudo== 命名为使用超级管理员用户操作 相当于 root 用户

[hadoop@localhost ~]$ sudo vim /etc/hosts

问题:若无法使用sudo命令?

hadoop is not in the sudoers file.  This incident will be reported.

需要在 /etc/sudoers文件中添加配置

## Allow root to run any commands anywhere root    ALL=(ALL)   ALLhadoop ALL=(ALL) ALL

hosts文件中添加内容为(其他主机同样添加):

192.168.1.122 master192.168.1.123 slave1192.168.1.124 slave2192.168.1.125 slave3

配置SSH 免登陆

这里需要对 所有机器上的 ==hadoop@主机== 用户配置ssh免密码登录

在Centos7中已经默认安装ssh服务,ssh-keygen命令无效,说明需要先安装ssh服务,即:

[hadoop@master /]$ sudo yum install openssh-server

以==master==主机为例.

  • 生成无密码密钥对,在命令中一路回车即可
[hadoop@master /]$ ssh-keygen
  • ### 将公钥写入公钥库中,这里公钥库使用默认库名 authorized_keys
[hadoop@master /]$  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

查看.ssh中内容

[hadoop@master ~]$ cd ~/.ssh[hadoop@master .ssh]$ lsauthorized_keys  id_rsa  id_rsa.pub  known_hosts
  • 设置公钥库权限
[hadoop@master /]$ chmod 600 authorized_keys 
  • 重启ssh服务 (root权限)
[hadoop@master /]$ sudo service sshd restart

其他主机,即slave1,slave2,slave3,分别执行 ssh-keygen生成密钥对

  • 将maser主机中的ssh分别发至 slave1,slave2,slave3主机

其中 slave1@slave1 即 xx@yy xx代表用户名,yy代表主机名

[hadoop@master /]$ scp ~/.ssh/* hadoop@slave1:~/.ssh/[hadoop@master /]$ scp ~/.ssh/* hadoop@slave2:~/.ssh/[hadoop@master /]$ scp ~/.ssh/* hadoop@slave3:~/.ssh/

重启其他主机的ssh服务

  • 测试

主机之间第一次访问时,会需要接受ESDSA可以,yes接受即可,再次互相访问时,就就不在需要了。

[hadoop@slave3 ~]$ ssh masterThe authenticity of host 'master (192.168.1.122)' can't be established.ECDSA key fingerprint is 3b:14:33:d5:5a:c4:92:c5:62:65:49:3d:4f:90:07:16.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'master,192.168.1.122' (ECDSA) to the list of known hosts.Last login: Sun Nov  6 06:03:47 2016 from 192.168.1.105[hadoop@master ~]$ ssh slave1Last login: Sun Nov  6 06:05:12 2016 from 192.168.1.105[hadoop@slave1 ~]$ ssh slave2Last login: Sun Nov  6 06:11:48 2016 from 192.168.1.105[hadoop@slave2 ~]$ ssh slave3

maser,slave1,slave2,slave3 四台主机之间都可以无密码访问,即是ssh设置成功了!

配置JDK

这里对==master==主机进行配置 将jdk等软件上传至/opt/目录:

  • 使用超级管理员用户解压 jdk
sudo tar -zxvf jdk-7u67-linux-x64.tar.gz 

配置jdk环境变量 /etc/profile,并查看是否成功

export JAVA_HOME=/opt/jdk1.7.0_67/export JRE_HOME=/opt/jdk1.7.0_67/jreexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

注意,上面配置中,最后一行,$PATH放在前面不生效时,也可以这么写:

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

重新加载

source /etc/profile
1 0
原创粉丝点击