[关闭]
@evilking 2018-05-15T14:39:26.000000Z 字数 6711 阅读 2304

大数据平台篇

安装虚拟机环境

由于笔者本身的机器性能限制,这里先以搭建伪分布式平台为例来详细讲解大数据平台的搭建步骤

安装虚拟机

Hadoop平台是搭建在linux系统上的(也可以是mac系统,这里以linux系统为例),所以在搭建Hadoop集群之前,得先安装linux系统,这里我们使用最新的CentOs系统,虚拟机使用VirtualBox虚拟化软件工具

Vbox的下载地址为: https://www.virtualbox.org/wiki/Downloads

CentOs的下载地址为: http://101.110.118.47/isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso

关于如何安装虚拟机,这是一个非常常见的问题了,这里不细说,读者可安装 http://www.linuxidc.com/Linux/2016-09/135593.htm 这篇博客来安装即可

若在安装CentOs 7的时候出现license information(license not accepted)提示而无法进入系统,即说明需要同意许可信息,输入1-回车-2-回车-c-回车-c-回车,即可解决


安装SecureCRT绿色版

SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件

SecureFX是一款由VanDyke Software, Inc.(中文译为:范戴克软件公司)研发生产的支持普通FTP标准和安全数据传输标准(SFTP 或者 在SSH2 上的FTP)的FTP客户端软件,有着易用的、类似于资源管理器的用户界面

由于国内的开发环境一般都是Windows系统,所以为方便的连接服务器,用SecureCRT软件比较方便,避免了直接在虚拟机界面中操作,就比较麻烦。同时SecureFX文件传输功能也非常强大,解决了物理机与虚拟机之间文件传输的麻烦

这里提供了一个绿色版的压缩包,包含了32位和64位的SecureCRT和SecureFX,读者只需要解压,根据自己的需要使用对应的版本即可

下载地址:

SecureCRT的使用

双击SecureCRTPortable.exe程序即可打开应用.

双击SecureCRTPortable

菜单上选择 文件 --> 快速连接,弹出快速连接的对话框,分别输入虚拟机的IP地址,登录的用户名,然后连接.

设置ip和用户名

输入登录的用户名对应的登录密码,最好勾选保存密码,然后登录.

输入密码

如果能显示下面的绿色对勾,就说明登录成功了.

登录成功

SecureFX的使用

使用SecureFX比较简单,直接点击SecureCRT右上角的图标即可,或者直接打开SecureFXProable.exe应用程序.

点击右上角

输入用户名和密码登录到linux虚拟机.

SecureFX登录到linux虚拟机

登录成功后就可以传文件了:

我们以后的操作都是用SecureCRT来连接虚拟机操作,而不是直接在虚拟机的Terminal上操作命令


配置虚拟机

为了加入权限管理,需要以普通用户登入系统,假设我这里以 evilking 这个用户登入

有的公司对权限管理这块没有严格的要求,通常都是以 root 用户登入系统进行配置,这可避免配置过程中涉及到很多文件的权限要求的问题;虽然这样方便配置,但是并不安全,笔者并不推荐以 root用户 登录


提升普通用户权限设置

在后面配置过程中,通常需要有 root 权限的账户才能操作,所以这里为了方便,我们修改/etc/sudoer文件,提升指定普通用户的权限;而/etc/sudoer文件只能由具有管理员权限的用户来修改,所以先要切换到root用户进行操作

[evilking@localhost ~]$ su
Password: 
ABRT has detected 1 problem(s). For more info run: abrt-cli list
[root@localhost evilking]# vim /etc/sudoers

[root@localhost evilking]# exit
exit
[evilking@localhost ~]$ 

其中su命令是切换用户的意思,这里直接输入su是切换到root用户,要求输入root用户的密码;正确切换之后可看到用户已由"evilking"变为了"root";

vim /etc/sudoers是修改"/etc/sudoers"文件,找到"root ALL=(ALL) ALL"这行,并在下面将"evilking"用户加上,表示给evilking用户赋所有权限;修改完后在vim的命令行模式用x!强制保存并退出vim,这样就修改好了

exit最后用这个命令退出root用户,回到evilking用户

修改用户所有权限
vim修改用户权限


关闭防火墙

由于我们的集群直接的网络传输都是在一个局域网内,集群总体对外的一般只有一个网络出口,所以我们一般会关闭linux的防火墙,避免配置的过程中出现问题

CentOs7的防火墙与以前版本有很大区别,CentOs7版本的防火墙默认使用的是firewall.service服务,与之前的版本使用iptables不一样;读者需要注意区分!

#关闭防火墙
[evilking@localhost ~]$ sudo systemctl stop firewalld.service

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for evilking: 

#关闭开机启动
[evilking@localhost ~]$ sudo systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.

#查看防火墙的状态
[evilking@localhost ~]$ systemctl status firewalld
鈼firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

[evilking@localhost ~]$

最后查看防火墙的状态,可以看到Active: inactive (dead),说明防火墙已经关闭了

关于防火墙更多命令,可参考: https://xiaoguo.net/wiki/centos-7-firewalld.html


关闭SELinux

#查看SELinux的状态
[evilking@localhost ~]$ /usr/sbin/getenforce 
Enforcing

#修改/etc/selinux/config文件
[evilking@localhost ~]$ sudo vim /etc/selinux/config 
[sudo] password for evilking: 

#重启系统使修改生效
[evilking@localhost ~]$ reboot
==== AUTHENTICATING FOR org.freedesktop.login1.reboot ===
Authentication is required for rebooting the system.
Authenticating as: root
Password:

需要说明的是,以后凡是需要有管理员权限才能进行的操作,都要在操作前加上sudo,这样修改后的文件的用户和用户组才是普通用户的,如果用su切换到root用户后去进行操作的话,操作后的文件的用户和用户组就变成了root,这样后面配置过程中就有文件权限的问题了,就比较麻烦

修改selinux
关闭selinux

如果只是想临时关闭SELinux,可以用setenforece 0设置SELinux成为permissive模式,用setenforce 1设置SELinux成为enforcing模式


设置静态IP

一般集群位置是不会随便移动的,集群的IP不应该经常变,所以集群的IP需要设置为静态static,而不是动态dhcp

#修改网卡信息
[evilking@localhost ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 

#重启网络服务
[evilking@localhost ~]$ service network restart
Restarting network (via systemctl):  ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===
[  OK  ]

#查看改动后的ip信息
[evilking@localhost ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:1f:8d:db brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.102/24 brd 192.168.56.255 scope global enp0s3
       valid_lft forever preferred_lft forever

[evilking@localhost ~]$

修改网卡的信息,主要设置以下几个参数:
BOOTPROTO="static" #将dhcp改为static
ONBOOT="yes" #开机启用本设置
IPADDR=192.168.56.102 #静态ip地址
GATEWAY=192.168.56.1 #默认网关
NETMASK=255.255.255.0 #子网掩码

修改静态IP


修改主机名

#修改主机名
[evilking@localhost ~]$ sudo vim /etc/hostname

#修改hosts,DNS映射
[evilking@localhost ~]$ sudo vim /etc/hosts

#重启机器使修改生效
[evilking@localhost ~]$ reboot
==== AUTHENTICATING FOR org.freedesktop.login1.reboot ===
Authentication is required for rebooting the system.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===

这个主机名在后面搭分布式集群的时候,可以用来区分是主节点还是附属节点

重启系统后,可看到[evilking@master ~]$中主机名不再是"localhost",而是"master",就说明修改成功了

修改主机名
修改hosts


免密码登录SSH

为了避免需要多次重复输入各种密码,可以通过ssh来设置密钥认证

#如果用户家目录下没有.ssh目录就新建一个
[evilking@master ~]$ mkdir .ssh

#进入.ssh目录下
[evilking@master ~]$ cd .ssh

[evilking@master .ssh]$

#使用ssh-keygen生成公钥
[evilking@master .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/evilking/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/evilking/.ssh/id_rsa.
Your public key has been saved in /home/evilking/.ssh/id_rsa.pub.
The key fingerprint is:
80:10:24:e4:4f:7e:bc:ca:2e:57:df:e1:b2:89:a3:f9 evilking@master
The key's randomart image is:
+--[ RSA 2048]----+
|oo+.             |
|.. . .           |
| . .. .          |
|  + .  .         |
|   o o  S        |
|    ...  .       |
|    ... o .      |
| ...o..o.o       |
|  +*oE.oo        |
+-----------------+

#查看生成的一对公钥和私钥
[evilking@master .ssh]$ ll
total 8
-rw------- 1 evilking evilking 1675 May  6 15:49 id_rsa
-rw-r--r-- 1 evilking evilking  397 May  6 15:49 id_rsa.pub

#将公钥拷贝到目的机器.ssh目录下的authorized_keys文件中
[evilking@master .ssh]$ cat id_rsa.pub >> authorized_keys

#切换出.ssh目录
[evilking@master .ssh]$ cd ..

#修改文件夹用户
[evilking@master ~]$ chown evilking: ~/.ssh

[evilking@master ~]$ chown evilking: ~/.ssh/*

#修改文件夹权限
[evilking@master ~]$ chmod 700 ~/.ssh

[evilking@master ~]$ chmod 600 ~/.ssh/*

#ssh登录
[evilking@master ~]$ ssh evilking@master
Last failed login: Sat May  6 15:56:42 CST 2017 from master on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Sat May  6 15:41:25 2017 from gateway

[evilking@master ~]$

可以看到最后通过ssh登录本机,直接登录成功,并没有要求输入密码,这就说明我们免密码登录配置成功

其中ssh-keygen -t rsa这一步,输入后一路直接回车就好了,如果中间你输入了一些东西,那么ssh登录就需要密码了,这点非常重要

这一步在分布式集群搭建过程中会稍微有一些不一样,具体可参考 http://www.360doc.com/content/16/0831/21/19351147_587364587.shtml


小结

到这里搭建伪分布式所需要的Linux虚拟机环境就搭好了,如果读者按照上面的步骤操作,应该是能顺利配置好的

当然,由于是在linux系统上操作,而很多用户对linux命令不熟悉,特别是vim的命令,可参考 http://www.cnblogs.com/laov/p/3541414.html 进行快速的了解学习

希望能对读者有所帮助,谢谢!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注