前言
首先有一台虚拟机,使用VMware新建一台虚拟机可以参考这里 有时重启虚拟机,虚拟机IP地址会改变,可以参考下面方法:
1.首先查看相关配置
依次点击“编辑—虚拟网络编辑器—VMnet8—NAT设置”
记住NAT设置中的子网IP、子网掩码、网关IP三项,接下来配置文件主要是这三项。
2.编辑Linux中的网络配置文件
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
注:网络配置文件名可能会有不同,在输入到ifcfg时,可以连续按两下tab键,获取提示,比如我的机器 为 ifcfg-ens33
TYPE=“Ethernet”
BOOTPROTO=“static” #静态连接
NAME=“ens33”
UUID=“1f093d71-07de-4ca5-a424-98e13b4e9532”
DEVICE=“ens33”
ONBOOT=“yes” #网络设备开机启动
IPADDR=“192.168.192.130” #192.168.192.x, x为3~255
NETMASK=“255.255.255.0” #子网掩码
GATEWAY=“192.168.192.2” #网关IP
上面#的内容就是你需要修改的,网关IP需要你看上面VM网络配置查看自己刚刚所看到的配置进行相关修改,IP地址可以使用ifconfig查看当前IP地址。
3.重启网络服务
[root@localhost ~]# service network restart
也可以关VM重启
4.测试
[root@localhost ~]# ping www.baidu.com
ping的通说明配置成功
5.如果 ping www.baidu.com的时候 ,报出
name or service not known 错误,则修改resolv.conf,添加dns服务器
[root@localhost ~]# vim /etc/resolv.conf
在文件中添加如下两行:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存退出,重启服务器,之后再ping一次。
正文
1、卸载openjdk
1.1 查看虚拟机已有的java版本
[root@localhost wxx]# java -version
1.2 查看openjdk版本
[root@localhost wxx]# rpm -qa | grep jdk
1.3 除.noarch,其余全部删除
[root@localhost wxx]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
[root@localhost wxx]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
[root@localhost wxx]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
[root@localhost wxx]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
2、安装JDK
2.1 官网下载JDK
2.2 新建java文件夹
[root@localhost wxx]# mkdir -p /usr/java
2.3 使用xftp将压缩包拖到用户文件夹下,并解压(看到有文章说可以直接拖到新建的java文件夹下,但我的不可以,有兴趣的小伙伴可以试试)
[root@localhost wxx]# tar -zxvf /home/wxx/jdk-8u221-linux-x64.tar.gz -C /usr/java
2.4 可以看到在java文件夹下,多了一个jdk1.8.0_221文件夹,接下来配置环境变量
[root@localhost wxx]# vim /etc/profile
点击i进入输入模式,在最后面添加以下内容,然后按Esc退出并保存
JAVA_HOME=/usr/java/jdk1.8.0_221
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
2.5 使用source命令使配置生效
[root@localhost wxx]# source /etc/profile
2.6 查看java版本
3、克隆虚拟机
3.1 右键已有的虚拟机,依次选择 管理-克隆
3.2 选择下一步
3.3 默认选项即可,选择下一步
3.4 默认选项即可,下一步
3.5 设置虚拟机的名称和位置,点击完成
4、配置文件(三台虚拟机都需要配置)
4.1 查看虚拟机的ip地址
[root@localhost wxx]# ifconfig
4.2查看机器名称,并修改(三台机器分别修改为hadoop1,hadoop2,hadoop3)
[root@localhost wxx]# hostname
[root@localhost wxx]# hostname hadoop1
4.3 修改/etc/hosts文件内容
[root@localhost wxx]# vim /etc/hosts
将以下内容插入文件中
192.168.192.130 hadoop1
192.168.192.131 hadoop2
192.168.192.132 hadoop3
4.4 检查三台虚拟机是否ping通,以hadoop1为例,都能ping通.
[root@localhost wxx]# ping -c 3 hadoop2
[root@localhost wxx]# ping -c 3 hadoop3
4.5 配置密钥文件
生成密钥文件,中间需要按一次回车键
[root@localhost wxx]# ssh-keygen -t rsa -P ""
4.6 查看生成的文件,创建authorized_keys 文件,并将三台虚拟机的id_rsa.pub内容全部保存至mater的authorized_keys文件内(这里使用的是比较笨的方法:使用vim打开三台虚拟机的id_ras.pub,将它们依次写入到三台虚拟机的authorized_keys文件内)
[root@localhost wxx]# ls /root/.ssh
[root@localhost wxx]# touch /root/.ssh/authorized_keys
[root@localhost ~]# vim /root/.ssh/id_rsa.pub
[root@localhost ~]# vim /root/.ssh/authorized_keys
4.7 测试ssh无密码登陆
登陆成功后,记得使用exit退出当前登录
[root@localhost ~]# ssh hadoop2
[root@hadoop2 ~]# exit
[root@localhost ~]# ssh hadoop3
[root@hadoop2 ~]# exit
5、安装及配置hadoop(三台虚拟机都需要操作)
5.1 新建hadoop文件夹
[root@localhost ~]# mkdir /usr/hadoop
5.2 将下载的hadoop压缩包解压到hadoop文件内,并进入etc目录配置profile文件设置HADOOP_HOME环境变量
# 解压后得到 hadoop-2.6.5.tar.gz
[root@localhost ~]# unzip /home/wxx/hadoop-2.6.5.tar.zip -d /usr/hadoop
# 解压得到hadoop-2.6.5文件夹
[root@localhost ~]# tar -zxvf /usr/hadoop/hadoop-2.6.5.tar.gz -C /usr/hadoop
# 删除/usr/hadoop/hadoop-2.6.5.tar.gz包
[root@localhost ~]# rm /usr/hadoop/hadoop-2.6.5.tar.gz
[root@localhost ~]# vim /etc/profile
export HADOOP_HOME=/usr/hadoop/hadoop-2.6.5
export PATH=$HADOOP_HOME/bin:$PATH
执行配置文件
[root@localhost wxx]# source /etc/profile
验证环境变量是否配置成功
[root@localhost wxx]# hadoop
5.3 新建几个文件夹(只在master上操作即可)
[root@localhost wxx]# mkdir /root/hadoop
[root@localhost wxx]# mkdir /root/hadoop/tmp
[root@localhost wxx]# mkdir /root/hadoop/var
[root@localhost wxx]# mkdir /root/hadoop/dfs
[root@localhost wxx]# mkdir /root/hadoop/dfs/name
[root@localhost wxx]# mkdir /root/hadoop/dfs/data
5.4 修改配置文件
修改/usr/hadoop/hadoop-2.6.5/etc/hadoop目录下部分文件
5.4.1 修改core-site.xml,在节点内加入配置
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
5.4.2 修改hadoop-env.sh,将export JAVA_HOME=${JAVA_HOME}改成已安装的jdk路径
export JAVA_HOME=/usr/java/jdk1.8.0_221
5.4.3 修改hdfs-site.xml,在节点内加入配置
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
<description>need not permissions</description>
</property>
5.4.4 新建并且修改mapred-site.xml(默认没有这个文件,只有mapred-site.xml.template),在节点内加入配置
[root@localhost hadoop]# cp /usr/hadoop/hadoop-2.6.5/etc/hadoop/mapred-site.xml.template /usr/hadoop/hadoop-2.6.5/etc/hadoop/mapred-site.xml
[root@localhost hadoop]# vim mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>hadoop1:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/root/hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.4.5 修改slaves文件,将里面的localhost删除,添加如下内容
hadoop1
hadoop2
hadoop3
5.4.5 修改yarn-site.xml文件,在节点内加入配置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
6、启动hadoop
6.1 初始化
进入到master(即hadoop1)这台机器的/usr/hadoop/hadoop-2.6.5/bin目录,执行初始化。(初始化只需要进行一次,不要多次初始化)
[root@localhost hadoop]# cd /usr/hadoop/hadoop-2.6.5/bin
[root@localhost bin]# ./hadoop namenode -format
格式化成功后,可以在看到在/root/hadoop/dfs/name/目录多了一个current目录,而且该目录内有一系列文件。
6.2 启动集群
进入到master这台机器的/usr/hadoop/hadoop-2.6.5/sbin目录,执行启动命令
[root@localhost bin]# cd /usr/hadoop/hadoop-2.6.5/bin
[root@localhost bin]# ./start-all.sh
7、测试hadoop
7.1 关闭虚拟机上的防火墙
[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# systemctl disable firewalld.service
7.2 验证
方式一:通过jps验证
方式二:通过浏览器验证
在浏览器上输入:http://192.168.168.130:50070
7.3 关闭集群
进入到master这台机器的/usr/hadoop/hadoop-2.6.5/sbin目录,执行关闭命令
[root@localhost bin]# ./stop-all.sh