Spark摘说

Spark的环境搭建涉及三个部分,一是linux系统基础环境搭建,二是Hadoop集群安装,三是Spark集群安装。在这里,主要介绍Spark在Centos系统上的准备工作——linux系统基础环境搭建。这个主要包括:

  • 运行环境说明:硬软件环境、集群网络环境、Linux使用工具(xshell和xftp)
  • 样板机环境搭建:安装操作系统及创建hadoop用户、设置系统环境(机器名,IP地址,Host映射文件,关闭防火墙、SElinux)、配置运行环境(更新OpenSSL-—可选,修改SSH配置文件,JDK安装及配置,Scala安装及配置)
  • 集群环境配置:复制样板机, 设置集群机机器名和IP地址,配置SSH无密码登录,设置CentOS7启动模式(主要针对有X-Windows界面的版本,本最小化版本不需要)

1.运行环境说明

1.1 硬软件环境要求

  • 主机操作系统:Windows 64位,8G内存
  • 虚拟软件:VMware-workstation-full-14.0.0-6661328
  • 虚拟机操作系统:CentOS-7-x86_64-Minimal-1708最小化系统(纯命令行界面),单核,1G内存
  • 虚拟机运行环境:

JDK : jdk-8u151-linux-x64

Scala : scala-2.10.4

        Hadoop : hadoop-2.9.0 (不需要编译,可以直接在官网下载完整版)

Spark :  spark-2.2.0-bin-hadoop2.7(不需要编译,可以直接在官网下载完整版)

1.2 集群网络环境要求

所有节点均是Centos7 64系统,防火墙/SELinux均禁用,所有节点上均创建了一个hadoop用户;

集群包含三个节点,节点之间可以免密码SSH访问;

所有节点上均创建一个目录/opt/app用于存放安装程序,并且拥有者是hadoop用户。注意:要求hadoop用户对目录/opt/app必须有rwx权限(一般做法是root用户在根目录下创建/opt/app目录,并使用chown命令修改该目录拥有着为hadoop),否则hadoop用户使用SSH往其他机器分发文件会出现权限不足的提示。

所有节点上均创建一个目录/opt/uploads用于存放安装包tar.gz,并且拥有者是hadoop用户,要求同上。

上述的hadoop用户或者目录/opt/app都是不唯一的,可以是其他用户,或者其他目录,但是得保证创建的用户对创建的目录拥有rws权限。

1.3安装使用的工具

1.3.1 Linux命令行工具xshell 5

XShell5可用于连接远程服务器或者VMware创建的centos虚拟机机,如图:

1.3.2 Linux文件传输工具Xftp5

Xftp5用于在windows和Linux两个系统之间进行文件的传输,如图:

两个文件的下载地址为:https://www.portablesoft.org/xshell-xftp-integrated/

2、搭建样板机环境

本次安装集群分三个节点,本节为搭建样板机环境搭建,搭建分为安装操作系统及创建hadoop用户、设置系统环境(机器名,IP地址,Host映射文件,关闭防火墙、SElinux)和配置运行环境(更新OpenSSL-—可选,修改SSH配置文件,JDK和Scala的安装及配置)三个步骤

2.1 安装操作系统及创建hadoop用户

第一步,使用VMware14创建新的虚拟机,处理器和内核选择数量为1,内存为1G,网络连接为NAT模式,其他选择为推荐,虚拟磁盘大小选择20G并选择将虚拟磁盘存储为单个文件,如图:

第二步 开始安装CentOS 7,直接选择第一个Install CentOS7

第三步 按Enter键启动安装程序,然后到语言选择界面,直接选择英文English吧,因为是命令行界面,哈哈哈哈........

第四步 转到INSTALLAION SUMMARY界面,根据提示,选择系统安装磁盘,然后点Done;

         

第五步 返回INSTALLAION SUMMARY界面,点Begin Installation,开始安装,转到配置CONFIGURATION界面,配置root用户密码和创建hadoop用户及其密码,如图:

设置root密码

创建hadoop用户及其密码,并将其设置为administrator管理者用户

第六步 完成配置,CentOS安装完成。

第七步 给hadoop用户赋予root权限,以root用户使用如下命令:

# vi /etc/sudoers 

hadoop ALL=(ALL)   ALL

2.2 设置系统环境

系统环境设置,包括机器名,IP地址,Host映射文件,关闭防火墙、SElinux。该部分对服务器的配置需要在服务器本地进行配置,配置完毕后需要重启服务器确认配置是否生效,特别是远程访问服务器需要设置固定IP地址。

2.2.1 设置机器名

以root用户登录,使用# vi /etc/sysconfig/network打开配置文件,设置机器名,以样板机为第一台,设置内容为HOSTNAME=hadoop1,集群配置时再分别设为hadoop2、hadoop3等,新机器名在重启后生效

2.2.2 设置IP地址

1.使用命令ip addr查看本机是否分配IP,可以发现系统的网卡没有分配IP地址,在此我们需要记住本机网卡的名称,本篇中网卡为ens33:

2.查找网卡ens33,使用# cd /etc/sysconfig/network-scripts/ && ll 进入network-scripts文件夹查看,ifcfg-ens33为本机网卡配置文件:

3. 系统刚装好时,会缺少很多包,例如由于缺net-tools包,ifconfig命令无效;而ifcfg-ens33里面有个现成的配置,能通过宿主机连接WWW万维网,需要开启自动连接网络,步骤如下:使用# vi ifcfg-ens33打开ifcfg-ens33配置文件,把 ONBOOT=no 改为 ONBOOT=yes 保存,使用命令service network restart重启网络,如图:

   

再使用ping www.baidu.com,可以ping通:

再使用命令ip addr,可以看到系统已经自动随机分配IP地址啦:

使用命令yum install net-tools,安装net-tools包:

输入命令ifconfig查看网卡地址IP、网关、mac地址等等配置信息:

4.修改或重建网络连接,设置该连接为手工方式,第三步配置系统分配的IP地址是随机,而我们需要固定的IP的地址,在此前先把ifcfg-ens33原本的配置全部加#注释,在下方重新写,设置如下网络信息:

   左为原配置注释,右为在重新配置:

5. 在命令行中,使用 # service network restart 重启网络,使修改IP信息生效,是否生效,可以使用ifconfig命令查看:

哈哈哈哈,至此IP地址修改完毕。

注意:

虚拟机的IP地址、网关及网络掩码设置与VMware虚拟网络设置有关:

第一步   在VMware14菜单栏目,点击编辑,再选虚拟网络编辑器,如图:

第二步 查看GATEWAY网关值

第三步 查看IP设置范围和NETMASK网络掩码值:

2.2.3 设置Host映射文件

1. 使用root身份编辑/etc/hosts映射文件,设置IP地址与机器名的映射,设置信息如下:

# vi /etc/hosts

  • 192.168.187.201  hadoop1
  • 192.168.187.202  hadoop2
  • 192.168.187.203  hadoop3

2. 使用如下命令对网络设置进行重启,以下命令都要以root身份运行

# sudo  /etc/init.d/network restart

或者 # sudo service network restart

3. 验证设置是否成功,ping通则成功

2.2.4 关闭防火墙

在hadoop安装过程中需要关闭防火墙和SELinux,否则会出现异常

1. systemctl status firewalld 或是 firewall-cmd --state 查看防火墙状态,从CentOS7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。如果是CentOS7版本以下的或是其他Ubuntu系统,可通过service iptables status查看防火墙状态。

# systemctl status firewalld

# firewall-cmd --state

2.以root用户或是hadoop用户root权限sudo去停止firewalld服务即可。如果是CentOS7版本以下的或是其他Ubuntu系统,使用#chkconfig iptables off命令关闭防火墙。

root用户  :  # systemctl stop firewalld.service && systemctl disable firewalld.service   

或是   

hadoop用户 : # sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

3. systemctl status firewalld 或是 firewall-cmd --state 查看防火墙状态,可以看出,防火墙已关闭

2.2.5 关闭SElinux

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

1. 使用getenforce命令查看是否关闭

2. 修改/etc/selinux/config文件

将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效

root 用户:# vi /etc/selinux/config    或是    hadoop用户:  # sudo vi /etc/selinux/config

3.使用getenforce查看是否关闭

2.3 配置运行环境

本节为第三节配置运行环境(更新OpenSSL——可选,修改SSH配置文件,JDK安装及配置,Scala安装及配置)

2.3.1 更新OpenSSL——可选

CentOS7不需要更新OpenSSL,CentOS6及以下版本可能需要更新OpenSSL。看下图,可以看到CentOS7无包可更新。

hadoop用户 :# sudo yum install openssl

2.3.2 修改SSH配置文件

1. 以root用户或是hadoop用户用root权限sudo使用如下命令打开sshd_config配置文件。修改ssh配置文件,主要是为了后面集群机之间可以免密码登录。

 root用户: # vi /etc/ssh/sshd_config     或是   hadoop用户:  # sudo vi /etc/ssh/sshd_config

开放三个配置,如下图所示:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

2. 配置后重启服务。CentOS7 重启sshd服务,其他低版本系统重启服务命令为# service sshd restart。service sshd restart命令在CentOS7下不起作用。

# systemctl restart sshd.service

2.3.3 JDK安装及配置

1. 下载jdk-8u151-linux-x64安装包

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

打开界面之后,先选中Accept License Agreement,然后下载jdk-8u151-linux-x64.tar.gz,如下图所示:

2. 赋予hadoop用户/usr/lib/java目录可读写权限,使用命令如下:

# sudo chmod -R 777 /usr/lib/java     -R 为对文件夹里面所有的文件递归修改权限

3. 把下载的安装包,使用Xftp工具上传到/usr/lib/java目录下,使用如下命令进行解压

# tar -zxvf  jdk-8u151-linux-x64.tar.gz

解压后目录如下图所示:

4. 使用root用户或是hadoop用户用root权限sudo配置/etc/profile文件,并生效该配置

root用户 : # vi /etc/profile      或是     hadoop用户: # sudo vi /etc/profile

添加如下内容:

export JAVA_HOME=/usr/lib/java/jdk1.8.0_151

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5.使用命令使配置生效并校验:

# source /etc/profile

# java -version

2.3.4 Scala安装及配置

1. 下载Scala安装包

http://www.scala-lang.org/download/2.10.4.html

2.  以root用户或是 hadoop用户以root权限sudo,创建/opt/uploads存放安装包tar.gz、/opt/app目录存放安装程序,并把它们的拥有者与用户组修改为hadoop用户和hadoop组,使用命令如下:

root 用户: # mkdir app && mkdir uploads

或是

hadoop用户; # sudo mkdir app  &&  sudo  mkdir uploads

root用户:略,只是少sudo     

或是         

hadoop用户:# sudo  chown -R hadoop:hadoop  /opt/app && sudo chown -R hadoop:hadoop /opt/hadoop  修改文件拥有者以及所属用户组

【注意】:把文件拥有者和用户组修改为hadoop是为了方便集群机传递文件以及集群系统创建文件方便,避免因权限问题出现错误。

3. 上传Scala安装文件

把下载的scala安装包使用Xftp工具上传到/opt/uploads上

4. 解压缩

到上传目录下,用如下命令解压缩:

# cd /opt/upload

  # tar -zxvf scala-2.10.4.tgz

迁移到/opt/app目录下

# sudo mv  ./scala-2.10.4   /opt/app

5. 使用root用户或是hadoop用户以root权限sudo配置/etc/profile文件,并生效该配置

export  SCALA_HOME=/opt/app/scala-2.10.4

export PATH=$PATH:$SCALA_HOME/bin

在配置java环境的基础上配置scala环境

6. 使用如下命令刷新profile配置文件

# source /etc/profile

# scala -version

3. 配置集群环境

复制样板机生成其他两个节点,按照规划设置及其命名和IP地址,最后设置SSH无密码登录。

3.1 复制样板机

复制样板机两份,分别为hadoop2和hadoop3

3.2 设置集群机机器名和IP地址

以root用户或是 hadoop用户以root权限sudo ,使用# vi /etc/sysconfig/network打开配置文件,根据1.2规划修改其余两台机器名,修改机器名后需要重新启动机器,新机器名在重启后生效

   

按照2.2.2里面的第四步配置方法修改机器IP地址,以root用户或是hadoop用户root权限sudo,使用命令 # sudo vi /etc/sysconfig/network-script/ifcfg-ens33 打开网卡ens33配置文件。ifcfg-ens33文件名不唯一,可能为ifcfg-xxx其他命名,可以参照2.2.2里面的第一,二步查找网卡文件。

hadoop2的配置:                                                                         hadoop3的配置:

                   

3.3 配置SSH无密码登录

1. 使用hadoop用户登录在三个节点中使用如下命令生成私钥和公钥:

# ssh-keygen -t rsa       命令解析:-t 用于指定密钥类型  rsa 为指定的密钥类型

2. 进入/home/hadoop/.ssh目录在三个节点中分别对应把公钥命名为authorized_keys_hadoop1、authorized_keys_hadoop2和authorized_keys_hadoop3,使用命令如下:

# cd /home/hadoop/.ssh

# cp id_rsa.pub authorized_keys_hadoop1

3. 把两个从节点(hadoop2、hadoop3)的公钥使用scp命令传送到hadoop1节点的/home/hadoop/.ssh文件夹中,或者通过Xftp工具直接复制也行:

# scp authorized_keys_hadoop2 hadoop@hadoop1:/home/hadoop/.ssh

# scp authorized_keys_hadoop3 hadoop@hadoop1:/home/hadoop/.ssh

hadoop1上 /home/hadoop/.ssh目录:

4. 把三个节点的公钥信息保存到authorized_keys文件中,使用如下命令:

# cat authorized_keys_hadoop1 >> authorized_keys 

# cat authorized_keys_hadoop2 >> authorized_keys

# cat authorized_keys_hadoop3 >> authorized_keys

5. 把该密码文件分发到其他两个从节点上,使用如下命令

# scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh

# scp authorized_keys hadoop@hadoop3:/home/hadoop/.ssh

6. 在三台机器中使用如下设置authorized_keys读写权限,读写权限为600,而400会报错

# chmod 600 authorized_keys

7. 测试ssh免密码登录是否生效

3.4 设置CentOS 7 启动模式(主要针对有X-Windows界面的版本,本最小化版本不需要)

因为此系统CentOS 7为最小化版本,没有X-Window桌面模式,只有命令行模式,所有不必要修改启动模式。

下面的说明,主要是针对CentOS 7 有X-Window桌面界面版本:

设置好集群环境后,可以让集群运行在命令行模式下,减少集群所耗费的资源。以root用户或是hadoop用户的root权限sudo,使用 # vi /etc/inittab,将id:5:initdefault: 改为id:3:initdefault:

Linux系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和所要达到的目的都不同。

CentOS设置了如下表所示的运行级,并且系统可以在这些运行级别之间进行切换,以完成不同的工作。运行级说明:

0 所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别

1 单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动

2 多用户模式。和运行级别3一样,只是网络文件系统(NFS)服务没被启动

3 多用户模式。运行多用户登录系统,是系统默认的启动级别

4 留给用户自定义的运行级别

5 多用户模式,并且在系统启动后运行X-Window,给出一个图形化的登录窗口

6 所有进程被终止,系统重新启动

参看资料:

http://www.cnblogs.com/shishanyuan/p/4701510.html石山园大神的讲解

http://blog.csdn.net/lina791211/article/details/11818825 authorized_keys 权限为600原因

https://zhidao.baidu.com/question/139006065.html 权限修改

https://jingyan.baidu.com/article/ca2d939d2cf1aceb6c31ce0a.html IP地址修改

https://jingyan.baidu.com/article/4853e1e5641c771909f72617.html ifconfig找不到

http://blog.csdn.net/c233728461/article/details/52679558 CentOS7 firewalld防火墙关闭

Spark环境搭建(上)——基础环境搭建的更多相关文章

  1. 搭建Istio基础环境

    需求 搭建istio基础环境(基于1.5.1版本) 安装步骤 在安装 Istio 之前,需要一个运行着 Kubernetes 的环境,安装步骤可以参考前面的文章 下载istio,然后解压,然后将 is ...

  2. 搭建SSM基础环境>基于idea

    目录 搭建SSM基础环境 创建一个Web项目 导入所需要的jar包 在项目目录下创建一个Resources文件夹并设置为类路径 在src目录下创建项目的初始文件夹目录 在resources文件夹下创建 ...

  3. centos7搭建Fabric基础环境

    一.首先升级centos最新内核 参考https://www.cnblogs.com/sky-cheng/p/12146054.html 二.卸载旧版本docker [root@localhost ~ ...

  4. 2-10 就业课(2.0)-oozie:12、cm环境搭建的基础环境准备

    8.clouderaManager5.14.0环境安装搭建 Cloudera Manager是cloudera公司提供的一种大数据的解决方案,可以通过ClouderaManager管理界面来对我们的集 ...

  5. 20190228 搭建Hadoop基础环境

    下载VMware 12 版本以上 下载CentOS 7以上版本 安装虚拟机,安装系统时,注意设置root 账号和密码 虚拟机配置网络,命令ip addr 查看IP 地址,(配置网络网上有很多办法,百度 ...

  6. shell搭建CentOS_7基础环境

    #!/bin/bash#Auth:Darius#CentOS_7配置实验环境eno=`ifconfig|awk '{print $1}'|head -1|awk -F ":" '{ ...

  7. Oracle RAC集群搭建(二)-基础环境配置

    01,创建用户,用户组 [root@rac1 ~]# groupadd -g 501 oinstall [root@rac1 ~]# groupadd -g 502 dba [root@rac1 ~] ...

  8. MyBatis操作指南-搭建项目基础环境(基于Java API)含log4j2配置

  9. MyBatis操作指南-搭建项目基础环境(基于XML)含log4j配置

  10. 虚拟机console基础环境部署——系统基础环境

    1. 概述2. 工具类安装2.1 安装vim2.2 安装tree2.3 安装expect2.4 安装lsof3. 编译环境类安装 1. 概述 本系列博客是在最小化安装CentOS6.5的基础上,通过配 ...

随机推荐

  1. BGP网络学习总结

    1.前言     云计算在中国发展越来越快,企业逐步开始将业务迁移到公有云中,方便运维,节省成本.公有云最复杂的地方是网络,客户对网络的需求千奇百怪,造成网络环境极其复杂,稍有不慎,就会出现网络连通性 ...

  2. 基于Vue的SPA动态修改页面title的方法

    最近基于VUE做个SPA手机端web发现动态修改页面标题通过document.title=xxxx 来修改着实蛋疼,而且在IOS的微信端据说没效果.百度发现要针对IOS的微信做点额外的操作,即:创建一 ...

  3. Who's in the Middle

    FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median' ...

  4. NOI2001 炮兵阵地

    一道非常有意思的题目 很久之前考过 但那时候好像只会打裸搜索(捂脸跑 后来看题解的时候也是没有学状压的所以算是闲置了很久没动的题 昨天看到的时候第一反应是m<=10所以压m然后跑1-n枚举每一行 ...

  5. rabbitMQ教程(三) spring整合rabbitMQ代码实例

    一.开启rabbitMQ服务,导入MQ jar包和gson jar包(MQ默认的是jackson,但是效率不如Gson,所以我们用gson) 二.发送端配置,在spring配置文件中配置 <?x ...

  6. Web API系列之三 基本功能实现

    Web API系列之二讲解了如何搭建一个WebApi的基架,本文主要在其基础之上实现基本的功能.下面开始逐步操作: 一.配置WebApi的路由-用于配置外部如何访问内部资源的url的规则 1.添加Gl ...

  7. centos7 编译ntopng源码

    先安装编译所需的开发工具 yum groupinstall 'Development Tools' yum install tcl yum install libpcap libpcap-devel ...

  8. h5拖拽上传图片

    h5实现拖拽上传图片 本文将为大家介绍如何通过js实现拖拽上传图片. 首先我们要禁用调浏览器默认的拖拽事件: window.onload = function(){ //拖离 document.add ...

  9. python模块:shelve

    shelve 1)模块功能:以 key - value 的方式存储数据. 2)写数据 >>> import shelve >>> db = shelve.open( ...

  10. Java学习笔记-嵌套类

    嵌套类 嵌套类有两种类别:static and non-static,分别对应为静态嵌套类和内部类. class OuterClass { ... static class StaticNestedC ...