1. 模板虚拟机环境准备
说明
模板虚拟机的目的是,以后要搭建集群还需要安装服务器,这样直接克隆此模板虚拟机,稍作修改即可!避免重复操作
学习阶段电脑配置建议
16G内存
Linux的安装参考
安装VMware和centOS7
注意:内存4G,硬盘50G,最小化安装
在安装好了centOS7之后,接下来需要做如下工作
1.1 yum安装一些工具
(1)使用yum安装需要虚拟机可以正常上网,yum安装前可以先测试下虚拟机联网情况
[root@hadoop100 ~]# ping www.baidu.com
PING www.baidu.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=8.60 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=7.72 ms
(2)安装额外软件仓库
Extra Packages for Enterprise Linux 是为红帽系操作系统提供的额外软件包,适用于RHEL,CentOS等,相当于一个软件仓库,大多数rpm包在官网repository中找不到,相当于一个补丁
[root@hadoop100 ~]# yum install -y epel-release
(3)如果Linux是最小化安装,还需要安装下面的工具
[root@hadoop100 ~]# yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
1.2 关闭防火墙,关闭防火墙开机自启
一般企业中,内部服务器之间不做防火墙,但是对外是做防火墙的,如下图所示:
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld
1.3 创建用户,并修改用户密码
[root@hadoop100 ~]# useradd atguigu
[root@hadoop100 ~]# passwd atguigu
123456
1.4 配置用户具有root权限
方便后期加sudo执行root权限的命令
[root@hadoop100 ~]# vim /etc/sudoers
修改/etc/sudoers文件,找到下面一行(100行左右),在root下面添加一行,如下所示:
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
atguigu ALL=(ALL) NOPASSWD:ALL
NOPASSWD:ALL指的是atguigu用户切换到root用户的时候,不需要输入root用户的密码;
1.5 在/opt目录下创建文件夹,并修改所属主和所属组
(1)在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
module目录装软件
software目录装软件安装包
(2)修改module、software文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module
[root@hadoop100 ~]# chown atguigu:atguigu /opt/software
(3)查看module、software文件夹的所有者和所属组
[root@hadoop100 ~]# cd /opt/
[root@hadoop100 opt]# ll
总用量 12
drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 module
drwxr-xr-x. 2 root root 4096 9月 7 2017 rh
drwxr-xr-x. 2 atguigu atguigu 4096 5月 28 17:18 software
(4)卸载虚拟机自带的open JDK
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
语法解释
rpm -qa 查询所有安装软件
grep -i java 筛选出带java关键字的,忽略大小写
xargs -n1 将前面的执行结果一个一个的作为参数传过来
rpm -e nodeps 删除软件
(5)重启虚拟机
[root@hadoop100 ~]# reboot
可以不重启,在配置完ip后重启
1.6 配置IP地址
1)vm的ip
然后点击NET设置
2) windows 的ip
3) 模板机器的IP
(1)修改克隆虚拟机的静态IP
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
#IP地址 网段192.168.10 和 前面的保持一致
IPADDR=192.168.10.100
PREFIX=24
#网关
GATEWAY=192.168.10.2
#域名解析器
DNS1=192.168.10.2
保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址、Windows系统VM8网络IP地址相同
7.修改模板机主机名
(1)修改主机名称,两种方法二选一
[root@hadoop100 ~]# hostnamectl --static set-hostname hadoop102
或者修改/etc/hostname文件
[root@hadoop100 ~]# vim /etc/hostname
hadoop102
(2)配置linux克隆机主机名称映射hosts文件,打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts
添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
重启克隆机hadoop100
[root@hadoop100 ~]# reboot
重启后检查ip和网络是否通
1.ifconfig查看ip
2.ping www.baidu.com
8.修改windows的主机映射文件(hosts文件)
修改这个文件是为了远程访问直接提供名字即可
(1)如果操作系统是window7,可以直接修改
(a)进入C:\Windows\System32\drivers\etc路径
(b)打开hosts文件并添加如下内容,然后保存
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
(2)如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
(a)进入C:\Windows\System32\drivers\etc路径
(b)拷贝hosts文件到桌面
(c)打开桌面hosts文件并添加如下内容
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
(d)将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件
到此模板机的Linux环境就搭建好了
2.模板机安装JDK和Hadoop
(1)上传软件压缩包
通过xftp文件传输软件将压缩包上传到/opt/software目录下
建议使用MobaXterm,既能远程链接,又能文件传输
(2)解压到/opt/module目录下
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
(3)配置环境变量
环境变量可以配置在/etc/profile.d/下的一个自定义的.sh的文件中
因为在/etc/profile文件中 会遍历此目录下的.sh文件,从而获取环境变量
- 新建/etc/profile.d/my_env.sh文件
[atguigu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
- 添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export相当于将变量提升到全局shell对象中
保存后退出
- source一下/etc/profile文件,让新的环境变量PATH生效
source /etc/profile
(4)验证JDK和hadoop是否安装成功
[atguigu@hadoop100 ~]$ java -version
[atguigu@hadoop100 hadoop-3.1.3]$ hadoop version
如果能看到版本号,就不用重启了;如果看不到,重启试试
3.Hadoop本地运行
现在我们在样板机上安装好了JDK和Hadoop,已经可以在当前机器运行一些hadoop样例代码了;
如果只在一个机器上运行的模式叫做本地模式
本地模式:
- 存储在本地磁盘
- 资源调度由操作系统
- 计算单干
没有分布式,此模式用于测试,不做生产。
1)创建在hadoop-3.1.3文件下面创建一个wcinput文件夹
[atguigu@hadoop102 hadoop-3.1.3]$ mkdir wcinput
2)在wcinput文件下创建一个word.txt文件
[atguigu@hadoop102 hadoop-3.1.3]$ cd wcinput
3)编辑word.txt文件
[atguigu@hadoop102 wcinput]$ vim word.txt
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
atguigu
atguigu
保存退出::wq
4)回到Hadoop目录/opt/module/hadoop-3.1.3
5)执行程序
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput
6)查看结果
[atguigu@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000
看到如下结果:
atguigu 2
hadoop 2
mapreduce 1
yarn 1