Hadoop生态hive(二)安装

一、安装模式

内嵌模式:元数据保持在内嵌的Derby模式,只允许一个会话连接 
本地独立模式:在本地安装Mysql,把元数据放到Mysql内 
远程模式:元数据放置在远程的Mysql数据库 

官方文档:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted

 

二、内嵌模式

(1)下载hive包

wget http://mirrors.cnnic.cn/apache/hive/hive-1.1.0/apache-hive-1.1.0-bin.tar.gz

(2) 解压到工作目录

tar -xzvf hive-1.1.0.tar.gz

(3)移动到特定目录

sudo mv  apache-hive-1.1.0-bin  /home/mk/software/hive-1.1.0
#创建快捷方式方便使用
ln -s /home/mk/hive-1.1.0 /home/mk/software/hive-1.1.0

(5)创建工作目录

hdfs dfs -mkdir /tmp
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod g+w /tmp

(5)构建工作环境

在 /etc/profile.d/hive.sh中增加以下内容:

 export JAVA_HOME=/home/mk/jdk-1.8export Hadoop_HOME=/home/mk/hadoop-2.6.0export HIVE_HOME=/home/mk/hive-1.1.0export PATH=$PATH:$HIVE_HOME/bin
# hive中jline已升级到jline2,而hadoop lib中的 jline还是jline0.9,需要配置如下export HADOOP_USER_CLASSPATH_FIRST=true

当前shell窗口生效source  /etc/profile或者重启系统

(6)配置Hive

cp $HIVE_HOME/conf/hive-default.xml $HIVE_HOME/conf/hive-site.xml

配置hive-site.xml 

hive.metastore.warehouse.dir:(HDFS上的)数据目录

hive.exec.scratchdir:(HDFS上的)临时文件目录

hive.metastore.warehouse.dir默认值是/user/hive/warehouse

 hive.exec.scratchdir默认值是/tmp/hive-${user.name} 

(7)改变 $HIVE_HOME的目录所有者

chown -R mk:mk $HIVE_HOME

(8)初始化元数据

$HIVE_HOME/bin/hive --service metastore 

(9)运行hive

hive
hive>

(10)测试hive

hive> create TABLE pokes( id INT, name string); 
hive> SHOW TABLES;
hive> select * from pokes; 
hive> drop table pokes;

 

三、独立模式

(1)安装Mysql并启动服务

1)安装mysql服务端和客户端

Hive需要管理一些数据,一般我们使用MySQL来存放

在线安装执行命令

sudo apt-get install mysql-server mysql-client

启动停止mysql服务

sudo start mysql  
sudo stop mysql  

修改了配置文件后需要重启 mysqld 才能使这些修改生效。
 
检查 mysqld 进程是否已经开启: 

pgrep mysqld

如果进程开启,这个命令将会返回该进程的 id 

2)mysql账号赋权

在Mysql中为hive建立账号,并授予足够的权限,例如hive账号,授予all privileges

mysql -u root -p
password:****
mysql>
use mysql;
create database if not exists hive_metadata;
grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'mk' with grant option;
flush privileges;

用上述账号登陆mysql,然后创建数据库,比如名叫hive_metadata,用于存放hive的元数据

3)设置MySQL远程访问(可选)

1.取消本地监听
 正常情况下,mysql占用的3306端口只是在IP 127.0.0.1上监听,拒绝了其他IP的访问(通过netstat可以查看到)。
取消本地监听需要修改 my.cnf 文件: 

sudo vim /etc/mysql/my.cnf

//找到如下内容,并注释
bind-address = 127.0.0.1
 2.重启 mysql

(2)安装Hive

下载安装包
http://apache.fayea.com/apache-mirror/hive/stable/apache-hive-1.1.0-bin.tar.gz
安装
1、上传包
上传hive包到/home/hadoop上
2、解压
  tar–zxvf apache-hive-1.1.0-bin.tar.gz
3、重命名包
mv apache-hive-1.1.0-bin hive-1.1.0

(3)配置hive

1、  配置环境变量
执行命令

sudo gedit /etc/profile.d/hive.sh

注意CLASSPATH,PATH在原有上增加hive包路径

#set hive environment
HIVE_HOME=/home/mk/hive-1.1.0
PATH=$HIVE_HOME/bin:$PATH
CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export HIVE_HOME
export PATH
export CLASSPATH

使配置生效:

source /etc/profile

2、  配置hive-env.sh
进入配置目录

cd $HIVE_HOME/conf

打开配置文件hive-env.sh,

gedit hive-env.sh

进行配置

# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/mk/hadoop-2.6.0
# Hive Configuration Directory can be controlled by:export HIVE_CONF_DIR=/home/mk/hive-1.1.0/conf

3、配置hive-site.xml
配置hive-site.xml文件,指出使用本地Mysql数据库,已经连接协议,账号、口令等

创建配置文件
$cp hive-default.xml.template hive-site.xml
在同上的目录下
修改hive-site.xml

<property><name>hive.metastore.warehouse.dir</name><value>/home/mk/hive/warehouse</value><description>location of default database for the warehouse</description>
</property>
<property><name>hive.exec.scratchdir</name><value>/home/mk/hive/scratchdir</value><description>Scratch space for Hive jobs</description>
</property>
<property><name>hive.querylog.location</name><value>/home/mk/hive-1.1.0/logs</value><description>Location of Hive run time structured log file</description>
</property>
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://haddop01:3306/hive_metadata?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>root123</value><description>password to use against metastore database</description>
</property>
<property><name>hive.exec.local.scratchdir</name>  <!--拼凑目录--> <value>/home/mk/hive-1.1.0/local/${system:user.name}</value><description>Local scratch space for Hive jobs</description></property>
<property><name>hive.downloaded.resources.dir</name><value>/home/mk/hive-1.1.0/local/${hive.session.id}_resources</value><description>Temporary local directory for added resources in theremote file system.</description></property>
<property><name>hive.server2.logging.operation.log.location</name><value>/home/mk/hive-1.1.0/logs/operation_logs</value><description>Top leveldirectory where operation logs are stored if logging functionality isenabled</description></property>

在hive-1.1.0目录下创建local目录

执行命令

mkdir local

4、  配置log4j
在同上目录下
创建配置文件:
cp hive-exec-log4j.properties.template  hive-exec-log4j.properties
cp hive-log4j.properties.template  hive-log4j.properties
修改上面两个文件中的配置

hive.log.dir=/home/mk/hive-1.1.0/logs
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

注意如果没有logs目录就建立一个 执行命令

mkdir /home/mk/hive-1.1.0/logs

(4)添加Mysql驱动包
1、下载驱动包
本实验使用的mysql是mysql 5.6 版本,配套的jdbc是mysql-connector-java-5.1.9-bin.jar
这个jar在网上下载就可以了,一定要根据mysql版本选择配套的版本

2、添加驱动包
   把驱动包放到 $HIVE_HOME/lib 目录下

3、修改hadoop的库文件
在$HADOOP_HOME/share/hadoop/yarn/lib下备份jline-0.9.94.jar
执行命令

mv jline-0.9.94.jar jline-0.9.94.jar.bak

Copy高版本的jline

cp $HIVE_HOME/lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib

(5)启动hive

初始化元数据

$HIVE_HOME/bin/hive --service metastore &

执行命令启动hive 

hive

启动hive能进入shell表示安装成功

(6)测试hive

hive> create TABLE pokes( id INT, name string); 
hive> SHOW TABLES;
hive> select * from pokes; 
hive> drop table pokes;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core多平台项目模板eShopOnContainers编译手记

之前写了一个功能性的文件上传asp.net core的小程序&#xff0c;加上点七七八八的东西&#xff0c;勉强能够应付了&#xff0c;打算学习一下微软的官方.NET CORE微服务示例https://github.com/dotnet-architecture/eShopOnContainers。这个例子很全面地展现了微服务、docker以及…

欢乐纪中某B组赛【2019.1.25】

前言 还算OKOKOK 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC4442017myself2017myself2017myself1801801801001001008080800005552017zyc2017zyc2017zyc1601601606060601001001000001111112017hzb2017hzb2017hzb14014014060606080…

如何改变Idea的背景

进入Idea 按下ctrlshifta 点击set background 选择自己准备好的图片地址&#xff0c;就可以更改背景了 更改后效果 关于接口的插件 GsonFormat插件 安装还是和别的插件一样&#xff0c;在plugin里搜索GsonFormat&#xff0c;下载并重启 然后在model里的类 按下alts 出现 将…

jzoj1252,P5194-天平【dfs,set】

正题 题目大意 nnn个砝码&#xff0c;选择若干个要求重量不超过ccc的情况下最重。 解题思路 拆成两部分来dfsdfsdfs&#xff0c;第一部分将答案加入setsetset。 第二部分对于每个答案在setsetset中查询。 时间复杂度O(2n2logn)O(2^{\frac{n}{2}}\ log\ n)O(22n​ log n) cod…

包依赖

thymeleaf <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

TFS在项目中Devops落地进程(上)

作为一名开发,经过近2年折腾,基于TFS的Devops主线工程大体落地完毕。 在此大体回忆下中间的各种历程。 开始之前简单说下什么是TFS(Team Foundation Server)。 TFS是微软推出的一款ALM&#xff08;Application Lifecycle Management)管理工具。 透过TFS你将能获取到从代码版本管…

Hadoop生态hive(三)Hive QL介绍

一、表 创建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name CREATE TABLE 创建一个指定名字的表。Hive 创建内部表时&#xff0c;会将数据移动到数据仓库指向的路径&#xff1b; EXTERNAL 关键字可以让用户创建一个外部表&#xff0c;在建表的同时指定一个指向实…

抖音上非常火的旋转图快速部署

本教程不需要你有服务器&#xff01; 本教程不需要你有服务器&#xff01; 本教程不需要你有服务器&#xff01; 点击我看旋转图 总共两步 1、注册一个码云账号 2、新建一个仓库&#xff0c;上传文件即可 1、注册账号的话&#xff0c;直接浏览器搜索码云&#xff0c;手机号…

hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI

转载自 hive命令出现问题Failed with exception Java.io.IOException:java.lang.IllegalArgumentException: java.NET.URI 一&#xff0c;问题描述&#xff1a;    登录到hive数据仓库后&#xff0c;输入一些命令&#xff0c;例如&#xff08;show databases &#xff0c…

Microsoft的现代数据管理

PASS 2017峰会是面向SQL Server及Microsoft相关数据技术用户的大会。在大会的第一天&#xff0c;Microsoft的Rohan Kumar先生到场做了开幕式的主题演讲&#xff0c;并借此机会展示了Microsoft在SQL Server和Azure数据库方面的最新进展。 Kumar的演讲涉及数据、人工智能和云这三…

jzoj1274-游历的路线【分层图,SPFA】

正题 题目大意 nnn个点每个点之间的边权是一个周期。 求从111出发经过mmm条边到nnn的最小权值 解题思路 分成mmm层表示天数&#xff0c;然后连边跑SPFASPFASPFA codecodecode #include<cstdio> #include<queue> #include<cstring> #define N 40100 using …

vue 3.4x以上如何改变项目运行端口号

我用3.4版本的vue-cli构建了一个vue项目&#xff0c;然后我想修改项目运行之后的访问端口 在网上查了一下&#xff0c;很多都是2.0的版本&#xff0c;查来查去都说是什么在 config目录下index.js文件中修改端口号。。。。。。。 都抄来抄去的 新的vue项目目录结构下并没有con…

Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

转载自 Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient hive初始化&#xff08;mysql为元数据库&#xff09;完成后&#xff0c;执行SQL语句报错 经过各种查询资料&#xff0c;找到了一种解决办法&#xff0c;大家可以参考。 首先进…

jzoj4224-食物【多重背包】

正题 题目大意 nnn个物品&#xff0c;用空间换价值。mmm个方式&#xff0c;用价钱换空间。 要求价值超过p的情况下价钱最低。 解题思路 先算出超过ppp至少要多少空间。然后在算出这个空间至少需要多少价钱。 codecodecode #include<cstdio> #include<cstring> #…

Asp.net core应用在 Kubernetes上内存使用率过高问题分析

原文&#xff1a;https://blog.markvincze.com/troubleshooting-high-memory-usage-with-asp-net-core-on-kubernetes/ ps&#xff1a;我不是死板翻译原文的&#xff0c;尽量的通俗一点&#xff0c;如有不对欢迎指出&#xff0c;谢谢哈。 在生产环境中&#xff0c;我们把asp.ne…

vue cli 4.x打包后如何部署到tomcat服务器上

使用npm run build打包好dist后&#xff0c;不能直接打开里面的index.html&#xff0c;否则页面是一片空白 这时候我们就需要用服务器来代理我们的页面&#xff0c;可以使用ningx&#xff0c;tomcat&#xff0c;或者apache&#xff0c;这里我们使用tomcat当作范例 找到tomcat的…

欢乐纪中某B组赛【2019.1.26】

前言 空间开小导致无法AKQVQAKQVQAKQVQ 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC6662017myself2017myself2017myself2102102101001001006060605050508882017zyc2017zyc2017zyc2002002001001001001001001000002323232017lw2017l…

依赖注入和控制反转

概念 IoC——Inversion of Control 控制反转 DI——Dependency Injection 依赖注入 要想理解上面两个概念&#xff0c;就必须搞清楚如下的问题&#xff1a; 参与者都有谁&#xff1f; 依赖&#xff1a;谁依赖于谁&#xff1f;为什么需要依赖&#xff1f; 注入&#xff1a;…

Hadoop生态Flume(一)介绍

一、概述 Apache Flume是一个分布式&#xff0c;可靠且可用的系统&#xff0c;用于有效地收集&#xff0c;聚合大量日志数据并将其从许多不同的源移动到集中式数据存储中。 Apache Flume的使用不仅限于日志数据聚合。由于数据源是可定制的&#xff0c;因此Flume可用于传输大量…

centos7安装最新版node

为了在linux服务端运行前端以及node后端项目&#xff0c;就必须在服务器上安装node了 但是想要运行前端项目版本就必须是8.x以上的&#xff0c;所以我们干脆安装最新的node 下载 进入下面的官方网站 https://nodejs.org/en/download/ 点击64位的Linux下载 复制该网址 这里以…