美文网首页大数据程序员大数据,机器学习,人工智能
基于Hadoop集群的Hive安装配置(Derby数据库)

基于Hadoop集群的Hive安装配置(Derby数据库)

作者: 大数据首席数据师 | 来源:发表于2018-08-06 09:55 被阅读13次

      Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据,提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行(具体的Hive架构大家自行搜索)。接下来主要讲下Hadoop集群下Hive的安装配置,并搭载Derby数据库(一款小巧的数据库,用于测试,不推荐开发使用,具体大家自行百度),进行一些基本的数据库操作,好了,让我们开始吧。

        一、环境:同样的启用三个节点,分别是虚拟机slave01,slave02,slave03,基于之前已经搭建好的环境,包括JDK、Zookeeper、Hadoop

        二、Hive、Derby配置(自行解压)

    这里推荐下载版本较低的Hive,本人经验教训告诉大家:高版本易出现问题,比如说我的Hadoop 2.7.6,下载Hive 2.2.0 安装配置后就出现了很多问题,体验极差,像 报错为:

    Unabletoinstantiateorg.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

     就属于版本过高导致的,所以,大家尽量下载低版本的。

        (1)设置Hive、Derby环境变量    

    vim/etc/profile

        添加HIVE_HOME、DERBY_HOME,如下:

    JAVA_HOME=/usr/java/jdk1.8.0_161

    JRE_HOME=/usr/java/jdk1.8.0_161/jre

    SCALA_HOME=/usr/local/scala

    HADOOP_HOME=/usr/local/hadoop

     SPARK_HOME=/usr/local/spark 

    ZOOKEEPER_HOME=/usr/local/zookeeper 

    HBASE_HOME=/usr/local/hbase

    KAFKA_HOME=/usr/local/kafka

    HIVE_HOME=/usr/local/hive

    DERBY_HOME=/usr/local/derby

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$KAFKA_HOME/bin:$HIVE_HOME/bin:$DERBY_HOME/binCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbyclient.jar:$DERBY_HOME/lib/derbytools.jar:$DERBY_HOME/lib/derbynet.jarexportJAVA_HOME JRE_HOME SCALA_HOME HADOOP_HOME SPARK_HOME ZOOKEEPER_HOME HBASE_HOME KAFKA_HOME HIVE_HOME DERBY_HOME PATH CLASSPATH

        使文件生效,运行命令:

    source/etc/profile

        (2)修改Hive文件夹conf目录下配置文件 hive-env.sh 

        复制一份 hive-env.sh.template 重命名为 hive-env.sh:

    cphive-env.sh.templatehive-env.sh

        修改 hive-env.sh 内容:

    exportHIVE_CONF_DIR=/usr/local/hive/confexportHADOOP_HOME=/usr/local/hadoop

        (3)配置Hive的Metastore

        配置Metastore意味着,指定要Hive的数据库存储,同样,Hive/conf目录下,复制一份 hive-default.xml.template重命名为 hive-site.xml:

    cphive-default.xml.templatehive-site.xml

        修改 hive-site.xml 内容,由于里面原内容较多,可通过命令gedit以编辑器模式打开:

    gedithive-site.xml

        删除所有的配置,替换为:

    javax.jdo.option.ConnectionURLjdbc:derby:;databaseName=metastore_db;create=truejavax.jdo.option.ConnectionDriverNameorg.apache.derby.jdbc.EmbeddedDriverhive.metastore.warehouse.dir/usr/local/hive/warehouse

        其中,jdbc:derby:;databaseName=metastore_db;create=true 表示使用嵌入式的derby,create为true表示自动创建数据库,数据库名为metastore_db,另一种客服模式大家感兴趣的可以自己看下;org.apache.derby.jdbc.EmbeddedDriver 表示使用嵌入式的derby;warehouse文件夹手动创建。

        三、验证Hive

        运行Hive之前,需要创建/tmp文件夹在HDFS独立的Hive文件夹,并给这些新创建的文件夹写权限:

    [hadoop@slave01 bin]$ hadoop fs -mkdir /tmp

    [hadoop@slave01 bin]$ hadoop fs -chmod g+w /tmp

        启动Hive前,先启动Hadoop集群,注意关闭防火墙,再然后启动Hive,首次启动可能会出现一个报错提示:

    无法访问/usr/local/spark/lib/spark-assembly-*.jar: 没有那个文件或目录

        虽然过了几秒后Hive仍然成功启动,但这个报错信息是怎么回事呢?

        原因:spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包。

        解决办法:进入hive安装路径下的bin目录下,编辑hive,如通过编辑器打开:gedit hive,找到下面的Shell脚本命令:

    sparkAssemblyPath=`ls${SPARK_HOME}/lib/spark-assembly-*.jar`

        修改为:

    sparkAssemblyPath=`ls${SPARK_HOME}/jars/*.jar`

        好了,让我们再次启动Hive,成功启动如下:

    [hadoop@slave01 bin]$ hiveLogging initializedusingconfigurationinjar:file:/usr/local/hive/lib/hive-common-1.2.2.jar!/hive-log4j.propertieshive>

        以上就是基于Hadoop集群Hive+derby的安装配置过程,当然对于数据库的选择比如mysql配置过程类似,大家自行参考资料。                                                                                                                                                                                                                                                                                          要了解学习大数据的可以加群,群号: 834325294,群里有免费的学习资料和视频。希望可以帮助到大家哦。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            

    相关文章

      网友评论

        本文标题:基于Hadoop集群的Hive安装配置(Derby数据库)

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