IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    hive的安装

    sma发表于 2020-04-12 16:59:00
    love 0

    《美国往事》里有句台词说:"当我对世事厌倦的时候,我就会想到你。想到你在世界的某个地方生活着,存在着,我就愿意忍受一切。你的存在对我来说,很重要。

    安装hive之前,请完成: [post cid="3" /] [post cid="7" /]

    hdfs的启动

    不推荐mysql8,因为hive版本较旧

    在大多数的文章中,都是用cp hive-default.xml.template hive-site.xml的方式来配置hive-site.xml 我认为很不科学,因为这个文件有上万行,改动起来很麻烦,所以换了一种赋值方式

    下载、配置Hive

    下载

    wget https://mirrors.aliyun.com/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz

    安装Hive,并设置环境变量

    # 解压Hive 到安装目录/usr/local/
    
    tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /usr/local/
    
    # 编辑profile文件 配置Hive环境变量
    
    vim /etc/profile
    
    # 配置的内容
    # Hive
    export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin
    export HIVE_CONF_DIR=$HIVE_HOME/conf
    export PATH=$HIVE_HOME/bin:$PATH
    # 记得source一下,使其生效
    source /etc/profile
    cd /usr/local/apache-hive-1.2.2-bin/conf
    mv hive-default.xml.template hive-default.xml
    # 基于模板创建hive-env.sh
    cp hive-env.sh.template hive-env.sh
    cd /usr/local/apache-hive-1.2.2-bin/conf
    vim hive-site.xml

    添加如下内容

    <configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
        <description>location of default database for the warehouse</description>
      </property>
      <property>
        <name>hive.exec.scratchdir</name>
        <value>/tmp/hive</value>
        <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
      </property>
    </configuration>

    根据 hive-site.xml 中的上述的两条配置内容,我们需要在hadoop中建立两个目录:

    # 在hdfs中建立/user/hive/warehouse并设置权限
    hadoop fs -mkdir -p /user/hive/warehouse
    hadoop fs -chmod -R 777 /user/hive/warehouse
    # 在hdfs中建立/tmp/hive/并设置权限
    hadoop fs -mkdir -p /tmp/hive/
    hadoop fs -chmod -R 777 /tmp/hive

    通过浏览器查看公网ip:50070端口(Hadoop3.x.y端口为9870),查看HDFS是否存在新建的目录

    JAVA.IO的临时目录,我将其设定为hive路径下的tmp目录中,因为tmp不存在所以需要新建tmp

    # 进入到hive的安装目录
    cd /usr/local/apache-hive-1.2.2-bin
    mkdir tmp
    chmod -R 777 tmp/

    设置system:java.io.tmpdir

    在hive-site.xml继续添加如下:

    <property>
        <name>java.io.tmpdir</name>
        <value>/usr/local/apache-hive-1.2.2-bin/tmp</value>
    </property>
    <property>
        <name>user.name</name>
        <value>root</value>
    </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.ConnectionURL</name>
        <value>jdbc:mysql://换成你的mysql主机IP地址:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
      </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>上面的root为MySQL数据库登录名</description>
      </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
        <description>上面的123456为MySQL数据库密码</description>
      </property>
    

    javax.jdo.option.ConnectionDriverName 对应的value修改为MySQL驱动类路径 注:此处使用的jdbc版本是mysql-connector-java-5.1.39-bin.jar,如果你的版本是8或者更高,请加入预处理。 即,将com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver

    hive-env.sh配置文件

    在hive的conf目录下,打开配置文件

    vim hive-env.sh

    配置HIVE_AUX_JARS_PATH, HIVE_CONF_DIR, HADOOP_HOME 在已有的基础上修改如下:

    #Folder containing extra libraries required for hive compilation/execution can be controlled by:
    #export HIVE_AUX_JARS_PATH=
    export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-1.2.2-bin/lib
    
    #Hive Configuration Directory can be controlled by:
    #export HIVE_CONF_DIR=
    export HIVE_CONF_DIR=/usr/local/apache-hive-1.2.2-bin/conf
    
    #Set HADOOP_HOME to point to a specific hadoop install directory
    #HADOOP_HOME=${bin}/../../hadoop
    export HADOOP_HOME=/usr/local/hadoop

    下载jdbc驱动

    wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
    
    tar -zxvf mysql-connector-java-5.1.48.tar.gz   #解压
    cp mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar  /usr/local/hive/lib 
    #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

    初始化mysql的hive数据库

    #对数据库进行初始化
    schematool -initSchema -dbType mysql
    #启动
    hive

    建库

    hive>create database test;

    web查看

    Hive 通过 SQL 查询语句实现 wordcount



沪ICP备19023445号-2号
友情链接