网站首页 > 技术文章 正文
环境
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
点赞和转发是最大的支持~
- 上一篇: HIVE常用函数大全 hive用法
- 下一篇: Hive架构及Hive SQL的执行流程解读
猜你喜欢
- 2024-10-17 hive中json字符串解析之get_json_object与json_tuple
- 2024-10-17 hive学习笔记之三:内部表和外部表
- 2024-10-17 精选Hive高频面试题11道,附答案详细解析
- 2024-10-17 分享7个Flutter开发库,让你成为高效开发者
- 2024-10-17 看完这一篇数据仓库干货,终于搞懂什么是hive了
- 2024-10-17 Hive架构及Hive SQL的执行流程解读
- 2024-10-17 HIVE常用函数大全 hive用法
- 2024-10-17 求求你别再手动部署jar包了,太low了
- 2024-10-17 hive 多字段分隔符使用 hive分隔符\001
- 2024-10-17 Hive 函数 + Shell编程的具体实践与运用
你 发表评论:
欢迎- 11-19零基础学习!数据分析分类模型「支持向量机」
- 11-19机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 11-19我以前一直没有真正理解支持向量机,直到我画了一张图
- 11-19研一小姑娘分享机器学习之SVM支持向量机
- 11-19[机器学习] sklearn支持向量机
- 11-19支持向量机
- 11-19初探支持向量机:用大白话解释、原理详解、Python实现
- 11-19支持向量机的核函数
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)