hadoop上搭建hive

5万人关注的大数据成神之路,不来了解一下吗?

5万人关注的大数据成神之路,真的不来了解一下吗?

5万人关注的大数据成神之路,确定真的不来了解一下吗?

欢迎您关注《大数据成神之路》

环境

hadoop2.7.1+ubuntu 14.04 hive 2.0.1 集群环境 namenode节点:master (hive服务端) datanode 节点:slave1,slave2(hive客户端) hive建立在hadoop的HDFS上,搭建hive前,先需搭建hadoop 远程模式: 101.201.81.34(Mysql server meta server安装位置)

一、101.201.81.43

该主机上安装好mysql,并且建立一个hive数据库 (要开启远程访问)

二、在master上安装hive

1.安装hive

1)在apache官网上下载hive-2.1.0包 2)sudo tar -zxvf apache-hive-2.1.0-bin.tar.gz 3)sudo cp -R apache-hive-2.1.0-bin /home/cms/hive 4)chmod -R 775 /home/cms/hive 5)sudo chown -R cms /home/cms/hive

2.修改/etc/profile加入HIVE_HOME的变量

HIVE_HOME/PATH/CLASSPATH 我粘贴的是我所有的配置

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_HOME=$HOME/hadoop-2.7.1
export HIVE_HOME=$HOME/hive
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$HIVE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH
export HADOOP_MAPARED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

source /etc/profile

3.修改hive/conf下的几个template模板并重命名为其他

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

cp hive-default.xml.template hive-site.xml

配置hive-env.sh文件,指定HADOOP_HOME安装位置 HADOOP_HOME=$HADOOP_HOME/hadoop-2.7.1

4.修改hive-site.xml文件,指定MySQL数据库驱动、数据库名、用户名及密码,修改的内容如下所示

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://101.201.81.34: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>root</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>admin</value>
  <description>password to use against metastore database</description>
</property>
<property>

其中:javax.jdo.option.ConnectionURL参数指定的是Hive连接数据库的连接字符串;

javax.jdo.option.ConnectionDriverName参数指定的是驱动的类入口名称;

javax.jdo.option.ConnectionUserName参数指定了数据库的用户名;javax.jdo.option.ConnectionPassword参数指定了数据库的密码。

5.缓存目录的问题,如果不配置也会出错的

<property>
<name>hive.exec.local.scratchdir</name>
<value>/opt/hivetmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/opt/hivetmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>

并且需要对目录进行权限设定mkdir -p /opt/hivetmp chmod -R 775 /opt/hivetmp

6.下载mysql-connector-java-5.1.30-bin.jar文件,并放到$HIVE_HOME/lib目录下

可以从Mysql的官方网站下载,但是记得一定要解压呀,下载的是一个tar.gz文件,解压后为jar文件

7.hive表存储在在HDFS中的/user/hive/warehouse中

三、slave2建立hive客户端

1.将master上的整个hive目录移至slave2上 scp -r hive slave2:/home/cms 注意要关闭防火墙 sudo ufw disable 2.修改slave2下的hive-site配置文件,内容如下:

<configuration>
         <!-- thrift://<host_name>:<port> 默认端口是9083 -->
<property>
 <name>hive.metastore.uris</name>
 <value>thrift://master:9083</value>
 <description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
 
<!-- hive表的默认存储路径 -->
<property>
 <name>hive.metastore.warehouse.dir</name>
 <value>hdfs://hive/warehouse</value>
</property>
</configuration>

修改/etc/profile,与master配置一致

四、启动

1.进入之前要初始化数据库(master节点)

schematool -initSchema -dbType mysql

2.hive启动

cms@master:~$ schematool -initSchema -dbType mysql
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in 1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Metastore connection URL: jdbc:mysql://101.201.81.34:3306/hive?createDatabaseIfNotExist=true
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 2.1.0
Initialization script hive-schema-2.1.0.mysql.sql
Initialization script completed
schemaTool completed```
2.hive启动
要启动metastore服务
在master上执行
hive --service metastore &
[cms@master ~]$ jps
10288 RunJar  #多了一个进程
9365 NameNode
9670 SecondaryNameNode
11096 Jps
9944 NodeManager
9838 ResourceManager
9471 DataNod

3.测试hive shell(服务端,客户端都可)

hive
show databases;
show tables;
查看hive表
dfs -ls /user/hive/warehouse

点赞和转发是最大的支持~

本文分享自微信公众号 - 大数据技术与架构(import_bigdata)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spark on Hive & Hive on Spark,傻傻分不清楚

    Spark通过Spark-SQL使用hive 语句,操作hive,底层运行的还是 spark rdd。

    王知无
  • HDFS读写数据过程原理分析

    在学习hadoop hdfs的过程中,有很多人在编程实践这块不知道该其实现的原理是什么,为什么通过几十行小小的代码就可以实现对hdfs的数据的读写。

    王知无
  • Spark将Dataframe数据写入Hive分区表的方案

    DataFrame 将数据写入hive中时,默认的是hive默认数据库,insert into没有指定数据库的参数,数据写入hive表或者hive表分区中:

    王知无
  • 单机搭建hadoop+hive+spark环境

    下载文件mysql-connector-java-5.1.43.jar放到hive/lib下

    dandelion1990
  • hive基本概念

    1.hive是一个基于hadoop之上的一个数据仓库。可以处理的数据是关系型数据 库(结构性)、本地数据、hdfs数据(非结构化的数据); 2.hive是对...

    用户1171305
  • Hive知识归纳——详解 hive 各个知识点

    CREATE FUNCTION [db_name.] function_name AS class_name [USING JAR|FILE|ARCHIVE...

    solve
  • Hadoop数据分析平台实战——110Hive介绍和Hive环境搭建离线数据分析平台实战——110Hive介绍和Hive环境搭建

    离线数据分析平台实战——110Hive介绍和Hive环境搭建 Hive介绍 Hive是构建在Hadoop之上的数据仓库平台,设计目标就是将hadoop上的数据操...

    Albert陈凯
  • 通俗易懂理解hive是什么

    找到工作到正式上班之间的这段时间总是惬意的,小史决定利用这段时间把一些经典电影重温一下。

    Java3y
  • 让Hive支持行级insert、update、delete

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/...

    用户1148526
  • 《Hive使用教程》--- 大数据系列

    1. Hive起源于Facebook,它使得针对Hadoop进行SQL查询成为可能,从而非程序员也可以方便地使用。Hive是基于Hadoop的一...

    用户3467126

扫码关注云+社区

领取腾讯云代金券