zoukankan      html  css  js  c++  java
  • hadoop之Hive部署

    Hive概述

    Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。

    其在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,

    解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce任务提交给Hadoop集群处理,

    获取最终的结果。元数据——如表模式——存储在名为metastore的数据库中。

    Metastore

    metastore是Hive元数据集中存放地。它包括两部分:服务和后台数据存储。

    有三种方式配置metastore:内嵌metastore、本地metastore以及远程metastore。 
    本次搭建中采用MySQL作为远程仓库,部署在master节点上,hive服务端也安装在master上,hive客户端即slave访问hive服务器。

    安装要求

    10.0.0.200  master

    10.0.0.211  slave1

    10.0.0.212  slave2

    1)mysql安装在master上

    2)Hive三个节点都安装

    Hive 下载

    官网:http://hive.apache.org/

    这里我们使用国内的清华镜像站点下载比较快

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz

    环境变量配置(三个节点都配置)

    [hadoop@master ~]$ tail -3 /etc/profile
    HIVE_HOME=/home/hadoop/apache-hive-1.2.2-bin   #hive的解压路径
    PATH=$PATH:$HIVE_HOME/bin
    export HIVE_NAME PATH

    mysql安装,这里选择源码编译安装(不推荐)

    (可以选择rpm或yum安装,源码编译安装,注意至少要选择5.5版本以上的)

    1)安装依赖包

    yum install gcc gcc-c++ ncurses-devel  -y

    2)安装cmake

     wget http://www.cmake.org/files/v2.8/cmake-2.8.12.tar.gz
     tar zxvf cmake-2.8.12.tar.gz
     cd cmake-2.8.12
     ./bootstrap 
     make && make instal

    3)创建用户及修改目录

    groupadd mysql
    useradd -g mysql mysql
    mkdir -p /data/mysql/data/
    mkdir -p /data/mysql/log

    4)获取mysql包并且安装

    复制代码
    wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.6/mysql-5.6.40.tar.gz
    tar zxvf mysql-5.6.40.tar.gz
    cd mysql-5.6.40
    
     cmake 
    -DCMAKE_INSTALL_PREFIX=/data/mysql 
    -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DMYSQL_DATADIR=/data/mysql/data 
    -DMYSQL_TCP_PORT=3306 
    -DENABLE_DOWNLOADS=1
    
    make&&make install
    #这部分需要很长时间
    复制代码

    5)修改目录权限

     chmod +w /data/mysql/
     chown -R mysql:mysql /data/mysql/
     ln -s /data/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
     ln -s /data/mysql/mysql.sock /tmp/mysql.sock
    cp /data/mysql/support-files/my-default.cnf /etc/my.cnf
    cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld

    6)初始化数据库

    /data/mysql/scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/data/mysql --datadir=/data/mysql/data

    7)启动数据库

    chmod +x /etc/init.d/mysqld
    /etc/init.d/mysqld start
    ln –s /data/mysql/bin/mysql /usr/bin/

    8) 创建Hive用户并授予权限

    mysql>CREATE USER 'hive' IDENTIFIED BY 'hive';
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master' WITH GRANT OPTION;
    mysql>flush privileges;

    9)创建Hive数据库

    create database hive;
    #修改数据库编码
    alter database hive character set latin1;  (#防止进入数据库无法创建表)

    配置Hive

    修改配置文件 
    进入到hive的配置文件目录下,找到hive-default.xml.template,cp份为hive-default.xml 
    另创建hive-site.xml并添加下面内容

    复制代码
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
            <description>JDBC connect string for a JDBC metastore</description>    
        </property>   
        <property> 
            <name>javax.jdo.option.ConnectionDriverName</name> 
            <value>com.mysql.jdbc.Driver</value> 
            <description>Driver class name for a JDBC metastore</description>     
        </property>               
        <property> 
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>hive</value>
            <description>username to use against metastore database</description>
        </property>
        <property>  
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>hive</value>
            <description>password to use against metastore database</description>  
        </property>          
    </configuration>
    复制代码

    拷贝一份hive-env.sh.template为hive-env.sh 并指定加载的hadoop路径

    # HADOOP_HOME=${bin}/../../hadoop
    HADOOP_HOME=/usr/local/hadoop

    JDBC下载(mysql的jar连接工具)

    mysql官网下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html

    其他:https://pan.baidu.com/s/1eUQb5dzhTp6MGfnXfM1gDw

    #解压
    [hadoop@master ~]$ tar xf mysql-connector-java-5.1.47
    [hadoop@master ~]$ cp mysql-connector-java-5.1.47/*  apache-hive-1.2.2-bin/lib/

    配置hive客户端

    复制代码
    scp -r apache-hive-1.2.2-bin/ hadoop@slave1:/hoem/hadoop
    scp -r apache-hive-1.2.2-bin/ hadoop@slave2:/home/hadoop

    [hadoop@slave1 ~]$ cat apache-hive-1.2.2-bin/conf/hive-site.xml
    <configuration>
    <property>
    <name>hive.metastore.uris</name>
    <value>thrift://master:9083</value>
    </property>
    </configuration>

    复制代码

    Hive启动

    复制代码
    [hadoop@master ~]$  hive --service metastore &
    [hadoop@master ~]$ jps
    29010 NameNode
    33810 Jps
    29358 ResourceManager
    29181 SecondaryNameNode
    31597 RunJar     ===》#出现RunJar代表启动成功
    复制代码

    访问测试

    复制代码
    [hadoop@master ~]$ hive
    
    Logging initialized using configuration in jar:file:/home/hadoop/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.properties
    hive> show databases;
    OK
    default
    test
    Time taken: 2.009 seconds, Fetched: 2 row(s)
    hive> create database src;
    OK
    Time taken: 0.458 seconds
    hive> show databases;
    OK
    default
    src
    test
    Time taken: 0.034 seconds, Fetched: 3 row(s)
    hive> use src;
    OK
    Time taken: 0.033 seconds
    hive> create table srctest(id int);
    OK
    Time taken: 0.57 seconds
    hive> show tables;
    OK
    srctest
    Time taken: 0.046 seconds, Fetched: 1 row(s)
    hive> 
    复制代码

    slave访问

    复制代码
     [hadoop@slave2 ~]$ hive
    
    Logging initialized using configuration in jar:file:/home/hadoop/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.properties
    hive> show databases;
    OK
    default
    src
    test
    Time taken: 1.598 seconds, Fetched: 3 row(s)
    hive> use src;
    OK
    Time taken: 0.232 seconds
    hive> show tables;
    OK
    srctest
    Time taken: 0.159 seconds, Fetched: 1 row(s)
     转自:https://www.cnblogs.com/sykblogs/articles/10078545.html
  • 相关阅读:
    react-当前的时:分:秒-每秒更新
    一键回顶部按钮 HTML+CSS+JS+jQuery完成
    JavaScript-浏览器的三种弹窗方式
    网页计算器简单实现加减乘除功能
    Oracle -- 记一次ADG库迁移过程小结 -- 上篇(ADG建库)
    expression解决IE6下固定定位的兼容
    Css攻克Selectors 一
    昨天开通了博客,希望自己争取早点写出东西
    Static关键字的用法
    XSHELL使用教程
  • 原文地址:https://www.cnblogs.com/javalinux/p/14911361.html
Copyright © 2011-2022 走看看