zoukankan      html  css  js  c++  java
  • 1.基于HDP大数据环境的搭建

    版本规划

    安装VirtualBox

    然后直接一路下一步

    选择一下安装路径

    这时VirtualBox会自动运行,主界面如下 :

    安装VirtualBox Extension Pack 

    VirtualBox的一些高级特性依赖于VirtualBox Extension Pack,接下来我们安装它。
    VirtualBox的主界面点击"全局设定",会弹出全局设定窗口,如下图所示:

    在全局这顶窗口,切换到"扩展"选项卡,然后点击"添加"按钮,如下图所示:
    在弹出窗口中找到并选择Oracle_VM_VirtualBox_Extension_Pack,然后点击打开,如下图所示:

    在弹出窗口中找到并选择Oracle_VM_VirtualBox_Extension_Pack,然后点击打开

    等待一小会安装成功后会弹出确认窗口,点击"确定"即可

     

    至此扩展包就安装好了 。

    新建虚拟机

     

     文件夹要专门指定一个空间充足的目录,类型一定要选Linux,版本一定要选择Red Hat 64-bit(CentOS
    Red Hat的社区版,64位才可以支持大内存,32 位最多支持4G内存)

    我们先制定2G内存,后面可以改的

     VMDK类型可以分割为2G的小文件便于分享给别人,或者上传到网盘,如果你自己搭建可以
    选择VDI


    磁盘空间大小选择"动态分配",然后点击下一步,如下图所示
    这里关于两种分配方式特殊说明如下:

     

     注意:这里设置的是可以使用的最大空间,并不是真正的占用,所以可以设置大一些避免后面不够用。


    点击创建之后,一个叫node01的虚拟机就创建好了

     特别注意:没必要一次性创建一堆虚拟机,如果操作系统需求是一样的,可以采用虚拟机克隆,后
    面会详述,这样可以避免很多工作,这也是虚拟机的一大好处 。

    虚拟机高级设置
    有了一台虚拟机,接下来我们进行一些高级设置以便于后面使用。
    选择要设置的虚拟机,然后点击设置

    调节内存大小

     网络设置
    切换到网络选项卡,连接方式选择"桥接网卡",界面名称实际上是选择你要桥接的物理网卡

    四种网络连接模式:

     

    安装操作系统CentOS7

     

    点击选择一个虚拟光盘文件

    最后我们就能看到光盘插进光驱了,点击"OK"即可:

     

    启动虚拟机

     

     

    这个要默认的就好

    这个选择默认的

    禁用Kdump

     

    然后我们就看见 Kdump已经禁用了 :

     网络和主机名设置

     

    自定义分区

    用户设置


    修改root用户密码


    创建hadoop用户作为管理员

    等安装结束后

     

     

    配置网络

    测试网络连接情况

    #安装网络工具包
    yum -y install net-tools
    #Ambari用到的下载工具
    sudo yum -y install wget

    通过软件SecureCRT进行远程连接 

    首先需要在 SecureCRT设置默认路径:

     Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories

     

    赋予hadoop用户sudo权限

    在工作中一般不会让我们通过root用户来操作,因此我们给hadoop用于赋予sudo权限 :

    切换到root用户

    并输入命令 

    visudo


    这时会进入/etc/sudoers文件的编辑页面,增加如下配置即可

    hadoop ALL=(ALL) NOPASSWD: ALL
    #以下这行一定要注释掉以免被覆盖(hadoop用户属于wheel组)
    #%wheel ALL=(ALL) ALL

    配置固定IP
    前面我们已经设置为桥接网络,也就是说虚拟机会把宿主机的指定网卡当做交换机,首先我们再次看
    下当前IP

     sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

    作以下修改

     

    修改完重启下网络服务:

    sudo service network restart 

     这个时候需要把远程终端的地址修改一下

    再ping一下baidu,测试一下网络连接情况

     

    配置hosts文件 

     sudo vi /etc/hosts

    添加以下内容

     注意:最前面两行一定不要删除,避免出现各种奇怪的网络问题

    防火墙设置

    #禁止防火墙开机启动
    sudo systemctl disable firewalld
    #关闭防火墙
    sudo systemctl stop firewalld
    #查看防火墙状态
    sudo systemctl status firewalld

    禁用SELinux

    检查SELinux状态

    getenforce

    只要返回的不是disabled就说明SElinux打开着

    临时禁用(不需要重启,但必须操作一下 )

    sudo setenforce 0

    永久禁用

    sudo vi /etc/selinux/config

    SELINUX=enforcing改为 SELINUX=disabled


    umask设置
    umask用于设置在Linux上创建新文件或文件夹时授予的默认权限或基本权限。 大多数Linux发行版将
    022设置为默认umask值。 umask022授予新文件或文件夹的755权限。 umask027授予新文件或
    文件夹的750权限。
    AmbariHDPHDF支持的umask值为022( 等价于0022),027(等价于0027)。 这些值必须在所
    有主机上设置。

    sudo vim /etc/profile

     

    在最后一行添加

    使环境变量生效

    文件描述符配置

    Linux操作系统会对每个进程能打开的文件数进行限制(某用户下某进程)Hadoop生态系统的很多组件
    一般都会打开大量的文件,因此要调大相关参数(生产环境必须调大,学习环境稍微大点就可以)

    可以用如下命令检查当前用户下一个进程能打开的文件数:
    ulimit -Sn
    ulimit -Hn

    注意:上面的命令只能检查当前用户hadoop
    如果数字小于10000就需要加大

    sudo vi /etc/security/limits.conf

    添加以下内容

    * soft nofile 655350
    * hard nofile 655350

    重启使系统生效

    sudo systemctl reboot

    SSH优化

    CentOS7下,每次远程SSH连接都需要5秒左右,通过如下操作可以优化:

    sudo vi /etc/ssh/sshd_config

     

    查找GSSAPIAuthentication 赋值为no

    查找UseDNS,赋值为 no(该项默认不启用的,要把前面的#删除掉 )

    保存退出,并重启ssh服务

    sudo systemctl restart sshd

    SSH免密

    ssh-keygen
    cd .ssh
    cat id_rsa.pub >> authorized_keys
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    安装Java

     

    配置环境变量

    sudo vim /etc/profile

    添加以下内容

    export JAVA_HOME=/usr/local/jdk
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH

    使环境变量生效

    source /etc/profile

    克隆出一台新虚拟机
    到目前为止作为,一台标准的干净的大数据节点就完全创建被设置好了,为了便于后续扩展成多个节
    点,我们先基于node01克隆出一个标准虚拟机备用

    先将node01关闭

    sudo systemctl  poweroff

    然后

    给克隆出的虚拟机命名为node02,选择一个路径,Mac地址设定一定要选择为所有网卡重新生成mac
    地址,然后点击下一步


     

    复制过程需要持续几分钟

    可以看到复制好了。

    准备本地yum

    我们的思路是把HDP所需要的RPM安装包都下载到本地创建一个本地yum源,后续安装就直接使用本
    yum源,这样速度比较快,也可以在内网操作

    准备HDP相关文件
    需要从以下地址下载相关文件:


    Ambari相关安装包:
    http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/ambari-2.7.4.0-centos7.tar.gz

    HDP安装:
    http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-centos7-rpm.tar.gz

    HDP-UTIL安装包:
    http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz

    HDP-GPL文件:
    http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.4.0/HDP-GPL-3.1.4.0-centos7gpl.tar.gz 


    拿到这些包之后,使用FileZilla上传到node01hadoop用户主目录下即可

     安装Apache

    #安装Apache
    sudo yum -y install httpd
    #讲Apache设置为开机启动
    sudo systemctl enable httpd
    #启动Apache
    sudo systemctl start httpd

     

    修改本地的hosts文件

    添加以下内容

    打开浏览器访问地址: http://node01

    HDP安装包部署到Apache

    #移动所有包到/var/www/html/下:
    cd /var/www/html/
    sudo mv ~/ambari-2.7.4.0-centos7.tar.gz /var/www/html/
    sudo mv ~/HDP-3.1.4.0-centos7-rpm.tar.gz /var/www/html/
    sudo mv ~/HDP-GPL-3.1.4.0-centos7-gpl.tar.gz /var/www/html/
    sudo mv ~/HDP-UTILS-1.1.0.22-centos7.tar.gz /var/www/html/
    
    #解压缩 sudo tar
    -zxvf ambari-2.7.4.0-centos7.tar.gz sudo tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz sudo tar -zxvf HDP-GPL-3.1.4.0-centos7-gpl.tar.gz sudo tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
    #安装压缩包清理 sudo rm
    -r ambari-2.7.4.0-centos7.tar.gz sudo rm -r HDP-3.1.4.0-centos7-rpm.tar.gz sudo rm -r HDP-GPL-3.1.4.0-centos7-gpl.tar.gz sudo rm -r HDP-UTILS-1.1.0.22-centos7.tar.gz

    #更改目录权限
    sudo chmod -R ugo+rX /var/www/html/

    配置使用本地yum

    在node01上执行:
    cd /etc/yum.repos.d/
    sudo vi ambari.repo

     

    ambari.repo内容如下

    [ambari-repo]
    name=ambari
    baseurl=http://node01/ambari/centos7/2.7.4.0-118/
    gpgcheck=0
    enabled=1

     

    验证

    yum repolist

     安装MySQL 

    下载安装包
    sudo wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

    安装mysql源
    sudo yum -y install mysql57-community-release-el7-11.noarch.rpm

    安装mysql服务器
    sudo yum -y install mysql-community-server

    设置为开机启动
    sudo systemctl enable mysqld

    启动Mysql
    sudo systemctl start mysqld

    查看mysql状态
    sudo systemctl status mysqld



    查看临时root临时密码
    
     sudo grep 'temporary password' /var/log/mysqld.log

    利用临时密码登录mysql

    现在我们修改root用户密码:

    set global validate_password_policy=0;
    set global validate_password_mixed_case_count=0;
    set global validate_password_number_count=3;
    set global validate_password_special_char_count=0;
    set global validate_password_length=3;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
    exit

    安装MySQLJava驱动

    将MySQL的java驱动mysql-connector-java-8.0.18.jar上传到node01的用户主目录,并移动到一个目录下:
    
    sudo mkdir -p /usr/share/java
    sudo mv ~/mysql-connector-java-8.0.18.jar /usr/share/java

    部署AmbariServer

    在node01上执行

    sudo yum -y install ambari-server

    创建Ambari数据库资源

    Ambari在配置的时候需要MySQL来存储数据,因此我们来创建相关数据库资源,进入MySQL

    执行如下命令:

    set global validate_password_policy=0;
    set global validate_password_mixed_case_count=0;
    set global validate_password_number_count=3;
    set global validate_password_special_char_count=0;
    set global validate_password_length=3;
    create database ambari;
    CREATE USER 'ambari'@'%' IDENTIFIED BY 'bigdata';
    GRANT ALL ON ambari.* TO 'ambari'@'%';
    FLUSH PRIVILEGES;
    use ambari;
    source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
    exit

    配置AmbariServer

    执行如下命令开始设置Ambari-Server:

    sudo ambari-server setup

    是否自定义ambari-server的运行用户

    我们保持默认root用户即可,所以输入n并回车

     在上图中,我们选择2,代表自定义java,然后回车

     我们需要指定自己安装的java的路径/usr/local/jdk,然后回车

     上图提示是否下载并安装LZO的包,我们输入y并回车

     是否进入数据库高级设置,我们输入y然后回车

    在选择数据库的环节,我们选择3也就是MySQL,然后回车

    MySQL的相关配置我们均采用默认值,默认用户和db都是ambari,密码是bigdata,然后回车(它会自

    动创建) 

     

    我们需要指定MySQL的驱动包所在的路径/usr/share/java/mysql-connector-java-8.0.18.jar
    然后回车

    我们选择可以远程连接该数据库(y),然后回车就配置完毕了

    调大node01的内存


    先把node01关机

    sudo systemctl poweroff

    如果你准备一直单机运行可以把内存调整到12G,前提是你的物理宿主机器起码16G内存

    启动Ambari-Sever

     sudo ambari-server start

     

    如果出现错误,一定要查看日志

    vi /var/log/ambari-server/ambari-server.log

     然后访问以下地址;

    http://node01:8080

    用户名密码默认是admin/admin,如果看到如下界面就代表ambari真正启动好了

    部署Amabri集群
    点击Ambari主界面中的"Launch Install Wizard",启动安装向导
    接下来我们要给集群起个名字



    版本选择

     接着要把滚动条往下拉,把无用的其他操作系统的仓库删掉

     只保留redhat7,其他的都删除掉

    最终我们只保留"readhat7"的仓库,接下来要把直接部署yum本地仓库的地址填进去,同时不要勾选下
    面的两个高级选项

    HDP-3.1             http://node01/HDP/centos7/3.1.4.0-315/
    HDP-3.1-GPL         http://node01/HDP-GPL/centos7/3.1.4.0-315/
    HDP-UTILS-1.1.0.22  http://node01/HDP-UTILS/centos7/1.1.0.22/

     

    我们按照下图所示注册主机到Ambari

    把node01的私钥复制过来

     上面的私钥要拷贝完整,一点也不能少,最后一行也不要换行。
    点击右下角按钮开始注册,会弹出提示窗口,点击”CONTINUE“即可

    自动开始注册

    点击这里去查看一些警告

    它这里就警告chronyd没有在1个节点上运行也就是没在node01上运行,chronydCentOS7默认的时
    间同步服务(CentOS6NTP),因为我们暂时一个节点无需时钟同步,所以不用管,直接点ClOSE

    然后直接点击右下角的”NEXT“,这时会弹出窗口,问你有警告是否忽略(chronyd的警告),我们选择
    OK“会自动进入下一步

    选择要安装的服务
    Amabri管大数据的各个组件叫做 Service,在这异步要选择同时安装的服务,当然我们也可以先不选后
    面再选。
    在这里我们选择安装下Hadoop相关的服务,其余的服务就取消掉对话框的对勾(它默认选了一堆,一定
    要去掉,好多用不到)

    在这里要特别注意,在AmbariHadoop被当做多个服务例如HDFSYARN等,如果你选择的服务依赖
    于其他服务他会提示的,你点击确认后会自动勾选,然后下一步即可 。

    分配Mater服务安装到哪些主机
    接下来Ambari会让你选择Master服务要安装到哪些主机,所谓Master服务,是指的各个服务的Master
    服务,例如HDFSMaster服务就是namenode,因为我们就一个节点,所以保持不动直接下一步

    分配Slave服务和Client安装到哪些主机

     

    接下来是一些自定义Service的配置,首先会让你设置一些服务的密码 ,为了方便,这里统一用admin

    这里要注意,随着前面你选的Service的不同,这里也会不同,点击”next“会让你确认一些服务的目录,
    我们先保持默认,直接”next“

    然后是确认各个service运行在操作系统的哪个用户下,我们也保持默认

    点击下一步,会让我们确认其他的配置,我们保持默认直接点NEXT

    注意,这里随着你前面选择的service的不同会有很大差异,比如你要选择了了Hive,它一定会要你输入
    MySQL相关信息,所以不要死记硬背 。

    Review环节我们要仔细检查之前的配置,没有问题就点击”DEPLOY“正式开始部署了

    部署过程需要花较长时间,随时可以看到进度

    再部署完服务之后,Ambari会自动启动服务并进行冒烟测试,测试通过看到如下界面就代表成功安装
    好了,点击”NEXT“即可

    把这边的进程都每个手动启动一下,因为刚启动的时候有些警告

    部署HBase

    之前在不是Amabri集群的过程中安装了HDFSYARN,包括Zookeeper集群,接下来我们通过增加服
    务的方式安装下HBase 。

    接下来的步骤就跟我们前面部署Ambari集群的方式稍微有点类似,首先要选择服务,这里我们当然选
    HBase然后后"NEXT"(当然也可以一次性选择多个Service一起部署)

    这一步不用动,因为就一个节点 ,直接next,

    分配Slave服务和Client安装到哪些主机
    这一步就勾选RegionServerClient即可

    自定义服务
    这一步我们保持配置不变,点“next”

     

    Review环节直接点“DEPLOY

    部署启动与测试
    整个安装过程会持续一段时间,在部署完服务之后,Ambari会自动启动服务并进行冒烟测试,测试通
    过看到如下界面就代表成功安装好了,点击”NEXT“即可

    部署Hive

    Hive的部署过程跟HBase基本一样,其他服务亦如此,不过Hive的元数据一般选择存放在MySQL,所
    以我们要在MySQL里单独为Hive
    创建用户和库以便于管理

    node01上,进入MySQL

    set global validate_password_policy=0;
    set global validate_password_mixed_case_count=0;
    set global validate_password_number_count=3;
    set global validate_password_special_char_count=0;
    set global validate_password_length=3;
    create database hive;
    CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
    GRANT ALL ON hive.* TO 'hive'@'%';
    FLUSH PRIVILEGES;
    exit

    告诉Hive组件MySQL驱动在哪里

     sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-8.0.18.jar

    Ambari主界面按照下图操作启动安装向导

    这里我们选择Hive然后后"NEXT"

     

    这一步不用动,因为就一个节点

    这一步就勾选Client即可:


    自定义服务
    这一步我们保持配置不变,除了hive,我们能看到如下图的提示

     我们点击“HIVE”选项卡切换到Hive配置页

    Hive配置页,我们要切换到DATABASE子选项卡,然后往下滚动页面去配置数据库的信息,

    测试连接

    部署启动与测试
    整个安装过程会持续一段时间,在部署完服务之后,Ambari会自动启动服务并进行冒烟测试,测试通
    过看到如下界面就代表成功安装好了,点击”NEXT“即可

     Ambari界面我们发现因为安装Hive,后台自动更新了一些服务的配置,因此需要重启

    如果重启所有服务不行,可以一个个手动重启的,我就是遇到这样的问题,我自己一个个服务手动重启了

    Service自动启动
    有时候我们希望托管给Ambari的服务可以自动启动

     扩容到3个节点

     在node02的基础上我们再复制出一个节点node03

     注意:千万不要从node01复制,那样会特别大而且里面有Ambari

    节点网络配置

    配置node02的静态ip

    配置node03的静态ip

    修改完了分别重启node02和node03的网络

    sudo systemctl restart network

    配置node02和node03的主机名

    由于是克隆过来的,主机名还是node01,因此我们需要修改

    永久修改hostname执行如下命令:

     sudo vim /etc/hostname

    分别输入node02    node03

    配置hosts文件

    sudo vi /etc/hosts

    node02和node03防火墙设置

    分别进行以下操作

    #禁止防火墙开机启动
    sudo systemctl disable firewalld
    #关闭防火墙
    sudo systemctl stop firewalld
    #查看防火墙状态
    sudo systemctl status firewalld

    禁用node02和node03 SELinux

    分别操作

    临时禁用
    sudo setenforce 0

    sudo vi /etc/selinux/config

    SELINUX=enforcing改为 SELINUX=disabled

    分别重启node02和node03

    重启后,在三台机器都配置hosts文件

    配置三台机器的SSH免密

    先把node02node03用户主目录下的隐藏文件夹.ssh删掉,这个是复制虚拟机过来

    然后分别在node02和node03重新生成

    ssh-keygen
    cd .ssh
    cat id_rsa.pub >> authorized_keys
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    免密
    我们所谓的免密就是拿集群中的一台机器作为管理节点,让那后让他可以ssh免密码到其他节点执行命
    令,这对我们维护一个多节点的集群非常有意义。我们当然以node01为管理节点,所以要实现node01
    到其他节点的免密

    拿到node01的公钥

    cat ~/.ssh/id_rsa.pub

    node01的公钥添加到node02node03

     vi authorized_keys

    添加到node02的公钥

    添加到node03的公钥

    然后node01分别到node02和node03 ssh连接一次

    因为我们需要三个节点都能相互ssh通讯的,因此我们把每个节点的公钥都相互交换

    每个节点的公钥都赋值

    时钟同步

    在三个节点分别执行

    sudo ntpdate pool.ntp.org

    纳入Ambari管理

    这一步我们要先把新节点node02-node03纳入到Amabri进行管理

    接下来进开始在新加的节点上自动安装ambari-agent了,安装完毕之后点下一步

    配置保持默认

     

  • 相关阅读:
    [转]ExtJS3.0与KindEditor4.1.2整合
    [转]Ext.grid常用属性和方法
    Extjs gridpanel 合并单元格
    [转]Httrack工具与使用指南
    [转]Teleport Ultra/Teleport Pro的冗余代码批量清理方法
    [转]最全的用正则批量去除Teleport Pro整站下载文件冗余代码
    Teleport Pro使用教程
    如何通过Dreamweaver批量对整个站点或目录进行代码搜索或部分全部替换
    [转]使用DW正则表达式批量替换实例介绍
    [转]tppabs是什么?如何去除tppabs?
  • 原文地址:https://www.cnblogs.com/braveym/p/12716978.html
Copyright © 2011-2022 走看看