首页 > 代码库 > 【Hadoop大数据分析与挖掘实战】(一)----------P19~22

【Hadoop大数据分析与挖掘实战】(一)----------P19~22

  这是一本书的名字,叫做【Hadoop大数据分析与挖掘实战】,我从2017.1开始学习

  软件版本为Centos6.4 64bit,VMware,Hadoop2.6.0,JDK1.7.

  但是这本书的出版时间为2016.1,待到我2017.1使用时,一部分内容已经发生了翻天覆地的变化。

  于是我开始写这么一个博客,把这些记录下来。

  我使用的软件版本为:

软件 版本
操作系统 CentOS 7 64bit-1611
虚拟机 VMware 12.5.2
Hadoop 2.7.3
JDK 1.8.0

   本人大二学生,只是想记录一下,谢绝转载,谢谢。

=============================================

2.2安装与配置

1.配置VMware网络

  我使用了桥接模式(复制物理网络连接状态),和真实机使用了相同的网关,没有按照书中的进行查询。

2.准备机器

  通过VMware新建一台CentOS 7虚拟机,使用root用户登录,添加一个新用户hadoop。设置hadoop用户的密码并授予hadoop用户sudo权限。

[root@localhost ~]$ useradd hadoop
[root@localhost ~]$ passwd hadoop
[root@localhost ~]$ chmod u + w /etc/sudoers
[root@localhost ~]$ vim /etc/sudoers
#在root ALL=(ALL) ALL下添加hadoop ALL=(ALL) ALL
[root@localhost ~]$ chomd u - w /etc/sudoers

  其中chmod的用法和vim编辑器的用法可以自行百度。

3.设置静态IP

  VMware默认使用动态IP,但是由于Hadoop集群是使用机器名进行定位的,在/etc/hosts中配置了机器名和IP的映射,如果IP不断变化,则需要不断修改配置文件,所以这里需要把IP设置为静态,方便后面的操作。

  1)修改/etc/sysconfig/network-scripts/ifcfg-******。

  每个人需要修改的文件名不同,书中修改的文件为ifcfg-eth0,其中eth0是其网卡名。在我的虚拟机中修改的是ifcfg-ens33。可以自行使用ifconfig命令进行查看。

[root@localhost ~]$ vim /etc/sysconfig/network-scripts/ifcfg-ens33
#需要修改的内容如下(如果没有这一项就自己添加上):
DEVICE=ens33 #名称填自己网卡名称
BOOTPROTO=static #静态IP
ONBOOT=yes #设置开机自动启动
IPADDR=192.168.0.131 #IP地址
GATEWAY=192.168.0.1 #网关
DNS1=192.168.0.1 #DNS服务器
HWADDR=00:0C:29:B7:73:4F #MAC地址①注
NETMASK=255.255.255.0 #这么填就对了
TYPE=Ethernet #这一块我也不懂
IPV6INIT=no #禁用IPV6

  注①:mac地址查看方法:虚拟机——设置——网络适配器——高级——MAC地址

  2)修改/etc/sysconfig/network。设置主机名称和启动NETWORK与否。

[root@localhost ~]$ vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain
GATEWAY=192.168.0.1

  3)修改DNS信息。

  书中手工设置 /etc/resolv.conf 里的DNS,使用source(!)时会对nameserver和search报错,找不到命令。于是我找到了一篇博客文章:《CentOS 7 下,如何设置DNS服务器》

  以下为文中内容:

  在CentOS 7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了。和CentOS 6下的设置DNS方法不同,有几种方式:

   ①使用全新的命令行工具 nmcli 来设置

#显示当前网络连接
#nmcli connection show
NAME   UUID                                  TYPE            DEVICE
ens33   76d23444-4b71-498b-9a0b-fd2d2d9de735  802-3-ethernet  ens33  
virbr0 a1015131-ba11-4ecc-81a3-9c9e27eaba32  bridge virbr0 #修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识 #nmcli con mod ens33 ipv4.dns
"192.168.0.1" #将dns配置生效 #nmcli con up ens33

  ②使用传统方法,手工修改 /etc/resolv.conf

  • 修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:
[main]
plugins=ifcfg-rh
dns=none
  • NetworkManager重新装载上面修改的配置
# systemctl restart NetworkManager.service
  • 手工修改 /etc/resolv.conf
nameserver 192.168.0.1

  详细参见:

# man NetworkManager.conf
# man nmcli

  4)关闭防火墙并修改其启动策略为不开机启动。

  CentOS 6中使用service iptables stop 及 chkconfig iptables off进行设置。

  CentOS 7中使用systemctl工具管理这些服务。

  可以使用systemctl list-unit-files | grep enabled查看服务中enabled项,可以看到firewalld.service已启用。

#禁用防火墙
[root@localhost ~]$ systemctl stop firewalld.service
#禁止开机启动防火墙,如需启用,把disable改成enable
[root@localhost ~]$ systemctl disable firewalld.service
#显示一个服务状态
[root@localhost ~]$ systemctl status firewalld.service

4.安装JDK

  1)使用yum search jdk在线查找jdk列表,任意选择一个版本,我选择了最新版,即1.8.0。

[root@localhost ~]$ yum search jdk
[root@localhost ~]$ yum install java-1.8.0-openjdk-devel.x86_64 -y

  2)配置Java环境变量。

  注:我在配置的时候出错很多次,其中还加入了JRE_HOME,CLASSPATH等,后发现根本不需要。如果配置出错导致ls等命令都是用不了时,可以输export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin恢复重新来。我重新来了一个小时。

  其中还配置了maven的环境变量,但是maven没有安装过,不知道是为什么。我找了一下,maven的下载地址是:阿帕奇maven下载,下载完成后直接解压即可使用,我解压到了/home/hadoop/opt中,所以下文中配置环境变量添加了一条/home/hadoop/opt/apache-maven-3.3.9/bin

[root@localhost ~]$ whereis java
[root@localhost ~]$ ll /usr/bin/java
[root@localhost ~]$ ll /etc/alternatives/java #这时可以看到JDK路径了
#修改配置文件
[root@localhost ~]$ vim /etc/profile
#在末尾追加
export PATH=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64/bin:/home/hadoop/opt/apache-maven-3.3.9/bin:$PATH
#保存配置后使用source命令使配置立即生效
[root@localhost ~]$ source /etc/profile

  3)使用java -version命令查看环境变量配置是否成功。

[root@localhost ~]# java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)

  至此,完成JDK的安装和配置,接下来使用VMware克隆两台机器,并分别设置静态IP地址为192.168.0.132,192.168.0.133。(创建连接克隆)

注意:克隆完成,启动机器后,会出现没有网络设备信息,无法连接网络的情况,解决方案如下:

不知道博客能不能修改,我还没开那两个克隆的虚拟机,不能修改就下一篇再说。

【Hadoop大数据分析与挖掘实战】(一)----------P19~22