美文网首页大数据大数据,机器学习,人工智能大数据 爬虫Python AI Sql
一次完整的大数据环境搭建——构建数据仓库Hive

一次完整的大数据环境搭建——构建数据仓库Hive

作者: lg的精神食粮 | 来源:发表于2018-12-19 16:32 被阅读5次

    所用软件                                    版本号

    Mysql-Server                           mysql-community-server

    Mysql 服务器连接依赖包         mysql-connector-java-5.1.5-bin.jar

    hive                                          apache-hive-2.1.1-bin.tar.gz


    master 作为 client 客户端

    slave1 作为 hive server 服务器端

    slave2 安装mysql server

    1、slave2上安装mysql server

    (1)安装 EPEL 源

    yum -y install epel-release

    (2)安装 MySQL server 包,下载源安装包:

    yum -y install wget #centos精简版是没有wget功能滴,所以需要安装

    wget  http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

    (3)安装源:

    rpm -ivh  mysql57-community-release-el7-8.noarch.rpm 

    安装完成,查看是否有包mysql-community.repo和mysql-community-source.repo:

    cd /etc/yum.repos.d

    图1.1 查看是否有源包

    安装 MySQL:

    yum -y install mysql-community-server

    (4)启动服务,重载所有修改过的配置文件:

    systemctl daemon-reload 

    开启服务:

    systemctl start mysqld

    开机自启:

    systemctl enable mysqld

    (5)安装完毕后,/var/log/mysqld.log文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:

    获取初密码:

    grep ‘temporarypassword’/var/log/mysqld.log

    登陆 MySQL:

    mysql -uroot -p 

    (6)MySQL 密码安全策略:

    设置密码强度为低级:

    set global validate_password_policy=0; 设置密码长度:set global validate_password_length=4;

    修改本地密码:

    alter user 'root'@'localhost' identified by '123456';

    退出:\q

    密码强度分级如下:

    0 为 low 级别,只检查长度;

    1为 medium 级别(默认),符合长度为 8,且必须含有数字,大小写,特殊字符;

    2 为 strong 级别,密码难度更大一些,需要包括字典文件。

    密码长度最低长为 4,当设置长度为 1、2、3 时,其长度依然为 4。

    (7)设置远程登录

    以新密码登陆 MySQL:

    mysql -uroot -p123456

    创建用户:

    create user 'root'@'%' identified by '123456';

    允许远程连接:

    grant all privileges on *.* to 'root'@'%' withgrant option;

    刷新权限:

    flush privileges;

    图1.2 允许MySQL远程连接

    2、slave1 上安装 hive

    (1)首先我们需要创建工作路径,并将 hive 解压。环境中 master 作为客户端,slave1 作为服务器端,因此都需要使用到 hive。

    slave1 中操作如下:

    cd /opt/soft

    mkdir -p /usr/hive

    tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/

    因为master作为客户端,所以同样在master上建立文件夹/usr/hive,然后 slave1 中将安装包远程复制到master。

    scp -r /usr/hive/apache-hive-2.1.1-bin root@slave1:/usr/hive/

    (2)修改/etc/profile 文件设置 hive 环境变量。(master 和 slave1 都执行)。

    vi /etc/profile

    #set hive

    export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin export PATH=$PATH:$HIVE_HOME/bin

    生效环境变量:

    source /etc/profile

    (3)因为服务端需要和 Mysql 通信,所以服务端需要 Mysql 的 lib 安装包到 Hive_Home/conf 目录下。(此处需要自己将下载的mysql.jar包放在slave2的/lib目录下)mysql.jar 放在 slave2 中的/lib 目录下,需要将其远程复制到 slave1 的 hive 的 lib 中。

    slave2 中进行如下操作:

    ls /lib

    scp /lib/mysql-connector-java-5.1.5-bin.jar root@slave1:/usr/hive/apache-hive-2.1.1-bin/lib

    图2.1 jar包的远程复制

    (4)回到 slave1,cd conf/修改 hive-env.sh 中 HADOOP_HOME 环境变量。

    cp hive-env.sh.template hive-env.sh

    HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

    (5)修改 slave1  hive-site.xml 文件(切记,此处千万不要复制hive-site.xml.template包,直接vi编辑一个新的hive-site.xml文件就ok,下面的master同样不能复制)  

    <configuration>

      <!-- Hive产生的元数据存放位置-->

    <property>

        <name>hive.metastore.warehouse.dir</name>

        <value>/user/hive_remote/warehouse</value>

    </property>

        <!-- 数据库连接JDBC的URL地址-->

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

            <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value>        #连接MySQL所在的ip(主机名)及端口

    </property>

        <!-- 数据库连接driver,即MySQL驱动-->

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

    </property>

        <!-- MySQL数据库用户名-->

    <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>root</value>

    </property>

        <!-- MySQL数据库密码-->

    <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>123456</value>

    </property>

    <property>

        <name>hive.metastore.schema.verification</name>

        <value>false</value>

    </property>

    <property>

        <name>datanucleus.schema.autoCreateAll</name>

        <value>true</value>

    </property>

    </configuration>

    3、Master 作为客户端

    (1)解决版本冲突和 jar 包依赖问题。

    由于客户端需要和 Hadoop 通信,所以需要更改 Hadoop 中 jline 的版本。即保留一个高版本的 jline jar 包,从 hive 的 lib 包中拷贝到 Hadoop 中 lib 位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。

    cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar  /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/

    图3.1 jline版本替换

    (2)修改 master hive-env.sh

    cp hive-env.sh.template hive-env.sh

    HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

    (3)修改 hive-site.xml(不要复制hive-site.xml.template文件。)

    <configuration>

    <!-- Hive产生的元数据存放位置-->

    <property>

        <name>hive.metastore.warehouse.dir</name>

        <value>/user/hive_remote/warehouse</value>

    </property>

    <!--- 使用本地服务连接Hive,默认为true-->

    <property>

        <name>hive.metastore.local</name>

        <value>false</value>

    </property>

    <!-- 连接服务器-->

    <property>

        <name>hive.metastore.uris</name>

    <value>thrift://slave1:9083</value>          #hive客户端通过thrift服务器服务连接MySQL数据库,这里的thrift服务器就是slave1的ip(主机名)

    </property>

    </configuration>

    4、启动 Hive

    (1) 启动 hive server(slave1 上)

     bin/hive --service metastore

    图4.1 slave1中成功启动hive server

    (2)启动 hive client(master 上)

    bin/hive

    测试 hive 是否启动成功:

    hive>show databases;

    图4.2 master中成功启动hive client

    (3)最后 master 的进程如下:

    图4.3 master中进程

    一次完整的大数据环境搭建目录:

    一、zookeeper安装及基础环境配置

    二、Hadoop安装

    三、Hbase安装及配置

    四、构建数据仓库Hive

    说明:此系列文章是为了记录本人学习过程,以此来加深理解,希望各位大神路过!!

    相关文章

      网友评论

        本文标题:一次完整的大数据环境搭建——构建数据仓库Hive

        本文链接:https://www.haomeiwen.com/subject/waujkqtx.html