一、下载
1、相关软件下载
百度网盘地址 提取码:zz0r
(里面的hadoop都是编译之后的版本)
2、 软件环境说明
windows10+vmware14pro+centOS7.3+jdk1.8+Hadoop2.7
3、安装虚拟机
百度就行
4、安装centOS7.3
安装虚拟机文章(引用的)
根据上述的步骤安装一台虚拟机就好,网络模式设置为NAT模式,然后再克隆两个完整的虚拟机就好了。我这里是克隆了两台,名称如下
三台机器分别命名为
hadoop100
hadoop101
hadoop102
二、安装三台虚拟机并实现SSH互相免密登陆
1、设置静态ip
开始安装的时候网络模式选择NAT模式的,在克隆的时候ip会跟着变化的,所以需要设置静态ip这样后面用起来也好些不会由于网络一变就各处修改ip的麻烦。
首先打开网卡的配置文件
(没有安装vim的可以使用 yum install vim 安装一下)
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static #(修改) dhcp为动态 需要修改为static静态的
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ff81c328-6ffc-48e4-91d5-ec2c942249bb
DEVICE=ens33
#关于静态ip的配置
IPADDR=192.168.17.130 #静态IP(增加)
GATEWAY=192.168.17.2 #默认网关,虚拟机安装的话,通常是2,也就是VMnet8的网关设置(增加)
NETMASK=255.255.255.0 #子网掩码(增加)
DNS1=192.168.17.2 #DNS 配置,虚拟机安装的话,DNS就网关就行,多个DNS网址的话再增加(增加)
ONBOOT=yes
这里的ip地址和网关需要根据自己的本机ip地址来进行设置保证和本机在同一网段,后面要确保可以几台虚拟机可以互相ping通,然后可以和本机ping通可以和外界ping通
说明:这里修改ip为静态的ip需要在每个虚拟机的配置文件中都进行修改这个配置文件,并且ip设置为同一网段
有问题的话可以参考一下(引用)
主机名 | ip地址 |
---|---|
hadoop100 | 192.168.17.128 |
hadoop101 | 192.168.17.129 |
hadoop102 | 192.168.17.130 |
2、修改hosts文件
host文件和windows中的hosts文件一样都是为了做主机网络ip映射
[root@hadoop100 local]# vim /etc/hosts
hosts文件修改如下
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#添加下面的内容
192.168.17.128 hadoop100
192.168.17.129 hadoop101
192.168.17.130 hadoop102
3、重启虚拟机(改了hosts文件和网卡配置文件重启确保生效)
#重启
[root@hadoop100 local]# reboot
#关机
[root@hadoop100 local]# poweroff
下面就可以连接上虚拟机使用了,我这里用的是xshell和xftp来就进行连接和文件传输
4、添加Hadoop用户,创建相关目录并分配权限
#添加组
[root@hadoop100 ~]# groupadd hadoop
[root@hadoop100 ~]# useradd -m hadoop -g hadoop -s /bin/bash
#给hadoop用户设置密码
[root@hadoop100 ~]# passwd hadoop
给hadoop赋予root权限
#打开用户配置文件
[root@hadoop100 ~]# vim /etc/sudoers
找到这一行的地方,然后在root下面新增这一行给hadoop赋予和root相同的权限
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
linux中opt代表的是软件安装目录 所以在opt下面新建local目录然后在里面新建 java、hadoop、hive、software四个目录
[root@hadoop100 local]# cd /opt
[root@hadoop100 opt]# mkdir local
[root@hadoop100 opt]# cd local
[root@hadoop100 local]# mkdir java
[root@hadoop100 local]# mkdir hadoop
[root@hadoop100 local]# mkdir hive
[root@hadoop100 local]# mkdir software
#修改权限给hadoop
[root@hadoop100 local]# chown -R hadoop:hadoop /opt/local/java
[root@hadoop100 local]# chown -R hadoop:hadoop /opt/local/hadoop
[root@hadoop100 local]# chown -R hadoop:hadoop /opt/local/hive
[root@hadoop100 local]# chown -R hadoop:hadoop /opt/local/software
修改之后在查看就这样的
5、关闭防火墙和SELinux
CentOS的所有访问权限都是有SELinux来管理的,为了避免我们安装中由于权限关系而导致的失败,需要先将其关闭。防火墙也是为了后面操作方便直接关闭
在企业里面配置的时候一定不要关闭这两个,可以百度了解添加信任和开放端口来设置。
SELinux
[root@hadoop100 ~]# getenforce # 查看当前的 SELinux 状态Enforcing
[root@hadoop100 ~]# vi /etc/selinux/config
# 编辑 config 文件将 SELINUX=enforcing 修改为 SELINUX=disabled(重启生效)
[root@hadoop100 ~]# cat /etc/selinux/config # 检查修改
使用 getenforce 命令获取当前 SELinux 的运行状态为 permissive 或者 disabled 时均表示关闭。
防火墙
[root@hadoop100 ~]# systemctl disable firewalld # 永久关闭防火墙(重启生效)
[root@hadoop100 ~]# systemctl stop firewalld # 临时关闭防火墙(立即生效)
[root@hadoop100 ~]# systemctl status firewalld # 检查修改
这样即为关闭状态
6、同步时间
安装工具
#安装ntpdate
[root@hadoop100 local]# yum install ntpdate
#同步网络时间
[root@hadoop100 local]# ntpdate cn.poll.ntp.org
7、设置免密登录(不好弄,错了好几次试了了几次才弄好)
首先做好上述步骤之后,建议将三台虚拟机都重启一下,然后打个快照保存一下,这样方便后面错了能够及时恢复。上面的静态ip和hosts文件都配置好了生效了之后,可以进行测试。
hadoop100机器
ping 这些: hadoop100,hadoop101,hadoop102,本机(win10的物理机),百度都可以通
几台机器相互的都可以通这样才进行后面的加免密的操作
第一步
[root@hadoop100 local]# ssh-keygen -t dsa
t表示类型, 后面dsa表示算法,使用rsa算法,还是使用dsa算法
第二步
利用xftp问价传输将 /root/.ssh目录下生成的文件拷贝
用一个记事本将三个虚拟机中的这个公钥都分别复制出来,然后再修改记事本的名称为
authorized_keys然后将这个文件拷贝回/root/.ssh目录下面(如上图)
第三步
可以通过命令查看是否完成
上面的是查看文件的命令,最重要的是这个红笔画的地方是自己的主机名,当你用命令生成这个公钥的时候就是最后面应该就是这个,复制到记事本中的时候记得一个公钥占一行,一共三行。最后修改文件名称为authorized_keys
第四步
三个虚拟机复制出里面的公钥之后将最后的文件分别拷贝到这个三个虚拟机对应的位置里面,然后建议重启一下打个快照(我这没有重启也是可以的)
下面测试
[root@hadoop100 local]# ssh hadoop101
用hadoop100区连接hadoop101,这里第一次可能需要输入一个yes,照着提示输入即可,后面再连接的时候就这种的直接就连接上了。然后exit退出来连接hadoop102也可以连接上。其他的两台也相同的测试下,只要都可以第一遍输入yes之后,后面就可以直接连接,不用输入yes或者是密码啥的就表示成功了!
三、安装java
将下载好的jdk和hadoop都传输复制到 /opt/local/software目录里面
# 1、进入相关目录
[root@hadoop100 jdk1.8]# cd /opt/local/software/
# 2、解压文件到当前文件夹下面
[root@hadoop100 jdk1.8]# tar -xzvf jdk-8u144-linux-x64.tar.gz
# 3、改名为jdk1.8
[root@hadoop100 jdk1.8]# mv jdk1.8.0_144 jdk1.8
# 4、移动文件到java目录下面
[root@hadoop100 jdk1.8]# mv jdk1.8 /opt/local/java
#5、配置环境变量
[root@hadoop100 jdk1.8]# vim /etc/profile
#文件末尾添加这三行
export JAVA_HOME=/opt/local/java/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
==说明:==配置环境变量之前建议打个快照,小编这边差点就把环境变量搞坏了,不然…
先在外面建个记事本然后将环境变量复制进去。JAVA_HOME的值就是jdk1.8的位置
(ctrl+d可以直接翻盘 G 可以直接到文件最后一行)
测试java环境是否装好
java -version或者是java命令即可,和windows中安装jdk之后测试是一样的
[root@hadoop100 jdk1.8]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
同样的操作给三台机器都安装好jdk环境
四、安装Hadoop
1、解压
进入到software目录下面
#将文件解压到/opt/local/hadoop目录下面
[root@hadoop100 hadoop-2.7.2]# tar -xzvf hadoop-2.7.2.tar.gz -C /opt/local/hadoop
2、配置环境变量
# 1、进入profile中
[root@hadoop100 hadoop-2.7.2]# vim /etc/profile
# 2、到最下面一行 将环境变量粘贴进来 【hadoop的位置是你自己解压后hadoop的位置】
##HADOOP_HOME
export HADOOP_HOME=/opt/local/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 3、刷新文件
[root@hadoop100 hadoop-2.7.2]# source /etc/profile
3、测试
hadoop version
Hadoop 2.7.2
Subversion Unknown -r Unknown
Compiled by root on 2017-05-22T10:49Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /opt/local/hadoop/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar
表明安装成功!
给三台机器都安装hadoop
-----end-----
参考文章 https://blog.csdn.net/Hellowenpan/article/details/83351493
下一篇是关于hadoop的配置和启动,如果文章中有什么错误和遗漏欢迎指出。