• 超详细!搭建本地大数据研发环境(16G内存+CDH)


    工欲善其事必先利其器,在经过大量的理论学习以后,需要有一个本地的研发环境来进行练手。已经工作的可以不依赖于公司的环境,在家也可以随意的练习。而自学大数据的同学,也可以进行本地练习,大数据是一门偏实践的学科,在找工作之前进行一些实践操作,也更利于对大数据知识的理解。

    本文将从头开始详细的记录整个大数据环境的搭建过程,本文所使用的笔记本电脑内存为16G,将使用CDH6.3.2管理整个大数据集群。

    由于cloudera官网从2021年2月1日起全面移除的非订阅用户的下载链接,所以本文所有的安装包都已经备份,可以关注 大数据流动 回复 CDH16G 获取。

    本文共四个部分,一定要保证每一个部分都安装成功以后再向下进行。

    首先要安装好VMwareWorkstation软件,随后新建三台centos系统的虚拟机,在三台虚拟机中搭建CDH大数据管理工具,最后使用CDH搭建大数据集群。

    一、安装VMwareWorkstation虚拟化软件

    首先我们使用VMwareWorkstation来快速的进行虚拟机的新建。VMwareWorkstation是一款功能强大的桌面虚拟计算机软件,我们使用的版本为VMwareWorkstation 16.1.2。

    1、打开安装程序,点击下一步。

    2、选择接受条款,点击下一步。

    3、修改安装路径,增强型虚拟键盘主要作用是提高安全性,这里不勾选。点击下一步。

    4、将检查更新和体验提升都去掉,点击下一步。

    5、快捷方式看自己的情况选择吧,点击下一步。

    6、点击安装,开始进行虚拟机安装。

    7、安装完成后点击 许可证 用注册机生成的密钥进行产品激活。

    8、点击完成,大功告成。VMwareWorkstation就成功安装并激活了。

    这样,第一部分VMwareWorkstation软件已经搭建完成。

    二、新建三台Centos虚拟机

    首先准备Centos7的镜像文件,CentOS-7-x86_64-DVD-1908.iso。

    请注意三台虚拟机的CPU初次设置为1核,内存设置为4G(这样虚拟机占用12G,留出一些空间),硬盘为20G,这些以后也是可以修改的。

    新建虚拟机

    1、打开VMwareWorkstation,选择新建虚拟机

    2、选择自定义安装,点击下一步。

    3、这里不用修改,是VMware的版本和一些限制说明,点击下一步。

    4、这里先选择稍后安装操作系统,点击下一步。

    5、选择系统为Linux,版本为Centos7 64位,点击下一步。

    6、修改虚拟机名称,位置,点击下一步。

    7、CPU默认为1核,点击下一步。

    8、内存设置为4GB,点击下一步。

    9、网络使用默认的NAT,点击下一步。

    10、I/O 使用默认

    11、磁盘类型默认

    12、创建新的虚拟磁盘

    13、设置磁盘大小为20GB

    14、默认文件名

    15、最后可以看到这些设置,点击完成。

    16、虚拟机新建完成,可以继续编辑虚拟机,将安装镜像挂载。

    安装Centos系统

    1、开启此虚拟机

    注意:点击进入虚拟机操作,要退出来的话使用 Ctrl + Alt

    2、选择安装centos7

    选择语言

    进行基本设置

    设置密码 Bigdataflowing

    提示重启电脑

    等待安装完成,完成后重启。进入操作系统

    设置虚拟机网络

    此时的虚拟机是无法上网的,需要对网络进行设置。

    首先设置主机的网络共享,再看一下vnet8的网络ip,我的是192.168.137.0

    在vmvare的虚拟网络编辑器中,设置ip

    进入虚拟机进行网卡设置

    进入网卡设置目录
    cd /etc/sysconfig/network-scripts/
    设置网卡
    vi ifcfg-ens33
    设置如下(重点是下面几个设置,固定IP)
    BOOTPROTO=static
    IPADDR=192.168.137.101
    NETMASK=255.255.255.0
    GATEWAY=192.168.137.1
    ONBOOT=yes
    
    设置完成后重启网卡
    service network restart
    重启后验证上网情况
    ping www.baidu.com
    

    xshell远程连接机器

    一直在虚拟机里操作是不方便的,所以我们通过xshell进行远程连接。网络已通,所以我们用用户名密码连接即可。

    上面操作完成后,我们可以使用vmvare的克隆功能,快速的复制出其他两台虚拟机。不过要记得复制完以后。进入系统把ip修改为不同的地址。

    克隆虚拟机

    克隆自 虚拟机中的当前状态

    完整克隆

    克隆完成后,修改node02和node03的网络设置。

    进入网卡设置目录
    cd /etc/sysconfig/network-scripts/
    设置网卡
    vi ifcfg-ens33
    设置如下(node02改成192.168.137.102   node03改成192.168.137.103 )
    IPADDR=192.168.137.101
    

    此时将三台虚拟机开启,最终的效果三台虚拟机正常运行,xshell可以远程同时操作这三台机器。

    这样第二部分,三台centos虚拟机新建完成,下面我们可以进行CDH环境的安装了。

    三、使用CDH搭建Hadoop集群环境

    CDH(Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。

    我们使用CDH6.3.2的版本进行安装。

    CDH分为Cloudera Manager管理平台和CDH parcel(parcel包含各种组件的安装包),需要先安装CM,再安装parcel。

    CM 6.3.1,CDH 6.3.2 (6.3.3版本及以上的要收费了)

    组件版本支持情况

    https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_63_packaging.html#cdh_630_packaging

    准备工作

    1、修改文件打开限制

    vi /etc/security/limits.conf
    
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072
    * soft nproc 131072
    

    2、关闭防火墙

    systemctl disable firewalld
    systemctl stop firewalld
    

    3、修改主机名及hosts

    依次修改主机名
    vi /etc/hostname
    修改hosts文件
    
    vi /etc/hosts
    192.168.137.101 node01
    192.168.137.102 node02
    192.168.137.103 node03
    生效
    source /etc/hosts
    

    4、免密设置

    node01 设置

    ssh-keygen -t rsa
    一路回车
    ssh-copy-id node02
    ssh-copy-id node03
    输入密码
    

    5、安装jdk

    scp jdk-8u221-linux-x64.rpm node02:/opt/
    scp jdk-8u221-linux-x64.rpm node03:/opt/
    
    rpm -ivh jdk-8u221-linux-x64.rpm
    
    java -version
    
    vim /etc/profile
    
    # 末尾追加以下内容
    export JAVA_HOME=/usr/java/default
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    source /etc/profile
    
    echo $JAVA_HOME
    

    6、关闭selinux

    //临时生效selinux设置
    setenforce 0
    //修改配置文件
    vi /etc/selinux/config
    把SELINUX=enforcing修改为SELINUX=disabled
    

    7、安装ntp服务

    // 安装 ntp 服务
    yum install -y ntp
     
    // 开启并设置开机自启ntp服务
    systemctl start ntpd
    systemctl enable ntpd
     
    // 查看ntp服务状态
    systemctl status ntpd
    

    8、node01安装Mysql

    移除mariadb  
    yum remove mariadb-libs.x86_64
    
    wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
    
    yum localinstall ./mysql80-community-release-el7-1.noarch.rpm
    
    yum install mysql-community-server
    
    service mysqld start 
    
    # 查看临时密码
    grep 'temporary password' /var/log/mysqld.log
    
    
    # 登录
    mysql -uroot -p
    # 输入刚才的密码
    
    
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Bigdataflowing@123';
    # 新建scm用户
    CREATE USER 'scm'@'%' IDENTIFIED BY 'Bigdataflowing@123';
    grant all privileges on *.* to 'scm'@'%' with grant option;
    flush privileges;
    

    新建CDH所需的数据库:

    CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    CREATE DATABASE reports DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    
    create user 'root'@'localhost' identified by  'Bigdataflowing@123';
    grant all privileges on *.* to 'root'@'%' with grant option;
    
    flush privileges; 
    

    9、各节点准备mysql8的驱动

    wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
    
    tar -zxf mysql-connector-java-5.1.46.tar.gz
    
    mkdir /usr/share/java/
    
    cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
    

    安装CDH

    1、配置本地yum源

    node01 安装httpd createrepo并设置开机自启动:
    yum -y install httpd createrepo
    systemctl start httpd
    systemctl enable httpd
    
    将包放在目录下
    mkdir -p /var/www/html/cloudera-repos/cm6
    将文件传入此目录下
    createrepo .
    
    
    配置本地yum源
    备份  cp -r /etc/yum.repos.d  /etc/yum.repos.d.bak
    cd /etc/yum.repos.d/
    vim cloudera-manager.repo
    
    [cloudera-manager]
    name=Cloudera Manager 6.3.1
    baseurl=http://node01/cloudera-repos/cm6
    gpgcheck=0
    enabled=1
    
    yum clean all && yum makecache
    

    验证成功,浏览器访问 http://192.168.127.101/cloudera-repos/cm6/

    分发包
    scp -r cloudera-manager.repo root@node02:$PWD
    scp -r cloudera-manager.repo root@node03:$PWD
    其他节点
    yum clean all && yum makecache
    

    node01安装cloudera manager server

    yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
    
    安装完CM后/opt/ 下会出现cloudera目录,上传cdh parcel 文件到/opt/cloudera/parcel-repo/
    
    
    chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
    
    

    初始化数据库

    cd /opt/cloudera/cm/schema/   
    ./scm_prepare_database.sh -h localhost -P 3306 mysql scm scm Bigdataflowing@123
    
    成功消息
    [main] DbCommandExecutor              INFO  Successfully connected to database.
    All done, your SCM database is configured correctly!
    

    3、node02 node03安装agent

    yum install -y cloudera-manager-daemons cloudera-manager-agent
    
    配置Agent文件:vim /etc/cloudera-scm-agent/config.ini
    
    将 server_host=localhost
    
    更改为: server_host=node01
    

    启动

    server 和agent 一起启动,报错看log /var/log/cloudera-scm-server

    node01

    systemctl start cloudera-scm-server
    systemctl enable cloudera-scm-server
    

    node02 node03

    systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
    

    访问网址 http://192.168.137.101:7180/cmf/login成功!

    账号密码 admin/admin

    那么CDH管理工具已经安装完成,下面我们使用CDH安装Hadoop集群环境。

    四、安装部署HADOOP大数据集群

    开始安装

    同意条款

    选择安装版本,可以选择试用或者免费版

    开始安装,输入集群名称

    选择主机

    这里有坑,直接选择后边没法改存储库

    这里可以点上方按钮进入主页,先删除主机,再加回来

    按下面设置好,大部分已经默认

    JDK已经安装 不用选

    机器账号密码

    这里会做一些检测,基本是一些警告,选择 i understand 继续。

    下面进入到组件的安装,由于内存有限,我们选择自定义服务,先只安装hdfs和hive,zookeeper,其他的组件后续也可以增加。

    要设置节点的分配,尽量平均就可以。

    这里全部连node01的mysql库

    一些hdfs设置,可以默认

    等待安装中。。

    安装基本完成。

    安装完成!可以愉快的玩耍了。

    再提醒一下

    由于cloudera官网从2021年2月1日起全面移除的非订阅用户的下载链接,所以本文所有的安装包都已经备份,可以关注 大数据流动 回复 CDH16G 获取。

    踩坑大全

    1、客户机操作系统已禁用 CPU,请关闭或重置虚拟机。

    大部分是Vmvare版本及镜像问题,使用Vmvare16.1.2版本

    2、mysql版本:'for the right syntax to use near 'identified by 'password' with grant option'

    问题分析:mysql版本8.0.13,在给新用户授权时,发生了变化:

    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'password' with grant option' at line 5, Time: 0.000000s

    出错的语句:

    grant all privileges on . to 'root'@'172.16.10.203' identified by 'password' with grant option

    修正后的语句:分开三次执行

    创建账户

    create user 'root'@'172.16.10.203' identified by 'password'

    赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人

    grant all privileges on . to 'root'@'172.16.10.203' with grant option

    改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里

    flush privileges;

    3、missing requires of libmysqlclient.so.18()(64bit)

    错误提示安装依赖的库文件没有找到: libmysqlclient.so.18()(64bit)

    解决:
    缺少Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm这个包

    wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

    rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

    4、cm启动后无法访问

    centos7会开启ipv6,需要禁用掉

    vi /etc/default/grub

    GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

    grub2-mkconfig -o /boot/grub2/grub.cfg

    5、Parcel hash file missing: CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

    缺少CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha文件,添加到指定目录

    6、Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was

    14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

    yum源有问题,修改 /etc/yum.repos.d下yum配置文件

    7、无法安装 cloudera-manager-agent 包

    查看log看具体报错信息

    大数据流动 专注于大数据实时计算,数据治理,数据可视化等技术分享与实践。 请在后台回复关键字下载相关资料。相关学习交流群已经成立,欢迎加入~
  • 相关阅读:
    探索javascript----事件对象下的各种X和Y
    css2----兼容----ie67的3像素bug
    探索javascript----拖拽
    一、Rabbitmq安装与配置信息
    四、RABBITMQ特点
    一,activemq安装和配置相关信息
    三,activemq持久化消息到mysql数据库中
    三、RABBITMQ的几个基本概念
    二、JMS和AMQP的对比
    hibernate的工作原理
  • 原文地址:https://www.cnblogs.com/tree1123/p/15064792.html
Copyright © 2020-2023  润新知