Hive3.1.3详细安装设置教程及安装时标题办理

打印 上一主题 下一主题

主题 1041|帖子 1041|积分 3127

目录
0.前置
安装mysql-server
下载wget下令sudo apt-get install wget
cd到你想要安装hive的文件夹,比方我这里是cd /usr/local
下载安装hive3.1.3
下载完成后看到如下界面:​编辑解压hive
将文件夹名改为hive
修改文件权限(留意这里的hadoop是当前用户名,格式应为用户名:用户名)
设置环境变量
在该文件最前面一行添加如下内容:
运行下令使其生效:
修改/usr/local/hive/conf下的hive-site.xml,将hive-default.xml.template重命名为hive-default.xml
使用vim编辑器新建一个设置文件hive-site.xml
下载mysql-connector-java-5.1.40到/usr/local
解压
将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下
启动并登岸MySQL Shell
新建Hive数据库
设置MySQL答应Hive接入(mysql用户hive,暗码hive)
升级元数据
启动Hive,留意启动Hive之前必要先启动集群


0.前置

安装mysql-server

  1. sudo apt-get install mysql-server
复制代码

输入Y,中途会要求输入数据库账户暗码等,如果没有要求设置数据库暗码,请实行以下下令
  1. service mysql start
  2. mysql -u root -p
复制代码
登录mysql后,修改暗码
  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
复制代码
刷新权限
  1. FLUSH PRIVILEGES;
复制代码
重新登岸
  1. exit;
复制代码


  • 下载wget下令sudo apt-get install wget

    1. sudo apt-get install wget
    复制代码
  • cd到你想要安装hive的文件夹,比方我这里是cd /usr/local

    1. cd /usr/local
    复制代码
  • 下载安装hive3.1.3

    1. sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
    复制代码
    下载完成后看到如下界面
    解压hive


    1. sudo tar -zxvf apache-hive-3.1.3-bin.tar.gz
    复制代码
    将文件夹名改为hive

    1. sudo mv apache-hive-3.1.3-bin hive
    复制代码
    修改文件权限(留意这里的hadoop是当前用户名,格式应为用户名:用户名)

    1. sudo chown -R hadoop:hadoop hive
    复制代码
  • 设置环境变量

    1. vim ~/.bashrc
    复制代码
    在该文件最前面一行添加如下内容:

    1. export HIVE_HOME=/usr/local/hive #hive文件夹的路径
    2. export PATH=$PATH:$HIVE_HOME/bin
    3. export HADOOP_HOME=/usr/local/hadoop #hadoop文件夹的路径
    复制代码
    运行下令使其生效:

    1. source ~/.bashrc
    复制代码
  • 修改/usr/local/hive/conf下的hive-site.xml,将hive-default.xml.template重命名为hive-default.xml

    1. cd /usr/local/hive/conf #进入/hive/conf文件夹
    2. mv hive-default.xml.template hive-default.xml
    复制代码
    使用vim编辑器新建一个设置文件hive-site.xml

    1. vim hive-site.xml
    复制代码
    在hive-site.xml中添加如下设置信息:
    hive三种设置方式区别

    Hive中metastore(元数据存储)的三种方式
    a)内嵌Derby方式
    b)Local方式
    c)Remote方式
    1.本地模式derby

    这种方式是最简朴的存储方式,只必要在hive-site.xml做如下设置便可
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.   
    4. <configuration>  
    5.   
    6. <property>  
    7.   <name>javax.jdo.option.ConnectionURL</name>  
    8.   <value>jdbc:derby:;databaseName=metastore_db;create=true</value>  
    9. </property>  
    10.    
    11. <property>  
    12.   <name>javax.jdo.option.ConnectionDriverName</name>  
    13.   <value>org.apache.derby.jdbc.EmbeddedDriver</value>  
    14. </property>  
    15.    
    16. <property>  
    17.   <name>hive.metastore.local</name>  
    18.   <value>true</value>  
    19. </property>  
    20.    
    21. <property>  
    22.   <name>hive.metastore.warehouse.dir</name>  
    23.   <value>/usr/local/hive/warehouse</value>  
    24. </property>  
    25.    
    26.   
    27. </configuration>  
    复制代码

    注:使用derby存储方式时,运行hive会在当前目录天生一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,否则会提示如下错误
    [html] view plaincopyprint?
    hive> show tables;  
    FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details.  
    NestedThrowables:  
    java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.  
    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask  
    hive> show tables;
    FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details.
    NestedThrowables:
    java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.
    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
    2.单用户模式mysql

    这种存储方式必要在本地运行一个mysql服务器,并作如下设置(下面两种使用mysql的方式,必要将mysql的jar包拷贝到$HIVE_HOME/lib目录下(前面已安装mysql))。
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.   
    4. <configuration>  
    5. <property>  
    6.   <name>hive.metastore.warehouse.dir</name>  
    7.   <value>/usr/local/hive_remote/warehouse</value>  
    8. </property>  
    9.    
    10. <property>  
    11.   <name>hive.metastore.local</name>  
    12.   <value>true</value>  
    13. </property>  
    14.    
    15. <property>  
    16.   <name>javax.jdo.option.ConnectionURL</name>  
    17.   <value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value>  
    18. </property>  
    19.    
    20. <property>  
    21.   <name>javax.jdo.option.ConnectionDriverName</name>  
    22.   <value>com.mysql.jdbc.Driver</value>  
    23. </property>  
    24.    
    25. <property>  
    26.   <name>javax.jdo.option.ConnectionUserName</name>  
    27.   <value>hive</value>  
    28. </property>  
    29.    
    30. <property>  
    31.   <name>javax.jdo.option.ConnectionPassword</name>  
    32.   <value>password</value>  
    33. </property>  
    34. </configuration>  
    复制代码

    [ERROR] Terminal initialization failed; falling back to unsupported
    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
    at jline.TerminalFactory.create(TerminalFactory.java:101)
    错误的缘故因由: Hadoop jline版本和hive的jline不同等


    3.多用户模式

    1.Remote一体

    这种存储方式必要在远端服务器运行一个mysql服务器,并且必要在Hive服务器启动meta服务。
    这里用mysql的测试服务器,ip位192.168.1.214,新建hive_remote数据库,字符集位latine1
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.    
    4. <configuration>  
    5.   
    6. <property>  
    7.   <name>hive.metastore.warehouse.dir</name>  
    8.   <value>/usr/local/hive/warehouse</value>  
    9. </property>  
    10.    
    11. <property>  
    12.   <name>javax.jdo.option.ConnectionURL</name>  
    13.   <value>jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true</value>  
    14. </property>  
    15.    
    16. <property>  
    17.   <name>javax.jdo.option.ConnectionDriverName</name>  
    18.   <value>com.mysql.jdbc.Driver</value>  
    19. </property>  
    20.    
    21. <property>  
    22.   <name>javax.jdo.option.ConnectionUserName</name>  
    23.   <value>hive</value>  
    24. </property>  
    25.    
    26. <property>  
    27.   <name>javax.jdo.option.ConnectionPassword</name>  
    28.   <value>password</value>  
    29. </property>  
    30.   
    31. <property>  
    32.   <name>hive.metastore.local</name>  
    33.   <value>false</value>  
    34. </property>  
    35.   
    36. <property>  
    37.   <name>hive.metastore.uris</name>  
    38.   <value>thrift://192.168.1.188:9083</value>  
    39. </property>  
    40.   
    41. </configuration>
    复制代码
      
    注:这里把hive的服务端和客户端都放在同一台服务器上了。服务端和客户端可以拆开,
    2.Remote分开

    将hive-site.xml设置文件拆为如下两部分
             1)、服务端设置文件
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.    
    4. <configuration>  
    5.   
    6. <property>  
    7.   <name>hive.metastore.warehouse.dir</name>  
    8.   <value>/usr/local/hive/warehouse</value>  
    9. </property>  
    10.    
    11. <property>  
    12.   <name>javax.jdo.option.ConnectionURL</name>  
    13.   <value>jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true</value>  
    14. </property>  
    15.    
    16. <property>  
    17.   <name>javax.jdo.option.ConnectionDriverName</name>  
    18.   <value>com.mysql.jdbc.Driver</value>  
    19. </property>  
    20.    
    21. <property>  
    22.   <name>javax.jdo.option.ConnectionUserName</name>  
    23.   <value>root</value>  
    24. </property>  
    25.    
    26. <property>  
    27.   <name>javax.jdo.option.ConnectionPassword</name>  
    28.   <value>123456</value>  
    29. </property>  
    30. </configuration>  
    复制代码

             2)、客户端设置文件
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.    
    4. <configuration>  
    5.   
    6. <property>  
    7.   <name>hive.metastore.warehouse.dir</name>  
    8.   <value>/usr/local/hive/warehouse</value>  
    9. </property>  
    10.    
    11. <property>  
    12.   <name>hive.metastore.local</name>  
    13.   <value>false</value>  
    14. </property>  
    15.   
    16. <property>  
    17.   <name>hive.metastore.uris</name>  
    18.   <value>thrift://192.168.57.5:9083</value>  
    19. </property>  
    20.   
    21. </configuration>  
    复制代码
    客户端启动的时候要留意:
    [ERROR] Terminal initialization failed; falling back to unsupported
    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
    at jline.TerminalFactory.create(TerminalFactory.java:101)
    错误的缘故因由: Hadoop jline版本和hive的jline不同等
  • 下载mysql-connector-java-5.1.40到/usr/local

    1. cd /usr/local
    2. sudo wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.40.tar.gz
    复制代码
    解压

    1. sudo tar -zxvf mysql-connector-java-5.1.40.tar.gz
    复制代码
    将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

    1. cp /usr/local/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib
    复制代码

  • 启动并登岸MySQL Shell

    1. service mysql start
    2. mysql -u root -p
    复制代码
  • 新建Hive数据库

    1. create database hive;
    复制代码
  • 设置MySQL答应Hive接入(mysql用户hive,暗码hive)

    1. grant all on *.* to hive@localhost identified by 'hive';
    2. flush privileges;
    3. exit;
    复制代码
  • 升级元数据

    1. cd /usr/local/hive
    2. ./bin/schematool -initSchema -dbType mysql
    复制代码
    可能会出现错误 Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
    缘故因由是hive/lib中的guava包版本与/hadoop/share/hadoop/common/lib中的guava包版本不匹配,将hadoop中的guava包更换到hive中,实行以下下令 
    1. cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/lib
    2. rm -rf /usr/local/hive/lib/guava-19.0.jar
    复制代码
    重新实行下令升级元数据
    1. cd /usr/local/hive
    2. ./bin/schematool -initSchema -dbType mysql
    复制代码
    输出一段笔墨的最后出现如下字样即升级完成

  • 启动Hive,留意启动Hive之前必要先启动集群

    1. hive
    复制代码
    如果有过多告诫信息,如图
    可在hive/conf下新建log4j.properties日志的设置文件

    1. cd /usr/local/hive/conf
    2. vim /usr/local/hive/conf/log4j.properties
    复制代码
    添加以下内容
    1. log4j.rootLogger=ERROR, CA           
    2. log4j.appender.CA=org.apache.log4j.ConsoleAppender
    3. log4j.appender.CA.layout=org.apache.log4j.PatternLayout
    4. log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    复制代码
     重启hive即可



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表