hive的安装,啥是hive的metastore的远程与本地
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive的安装,啥是hive的metastore的远程与本地相关的知识,希望对你有一定的参考价值。
参考技术A Hive的远程Metastore指的是将Hive的元数据存储在远程的一个RDBMS(大多采用mysql)中,而本地Metastore指将Hive的元数据存储在本地的一个目录中,下次启动Hive-Cli,如果需要使用之前的元数据,需要在上次启动Hive-Cli的目录下再次启动,以便Hive能找到存放元数据的本地目录。更多关于Hive的技术文章,你可以搜索"lxw的大数据田地",里面有[一起学Hive]系列文章。大数据(Hive的MetaStore切换及其Hive的语法细节)
MetaStore
1. MetaStore在Hive中是非常重要的一个概念,通过MetaStoreHive存储HDFS与表的对应关系,MetaStore通过RDB进行数据的存储.
2. MetaStore默认是通过Derby数据库,进行元数据存储的.
3. 如果用Derby充当默认的MetaStore,Hive只能以一个Client进行访问
把默认的Derby切换成其他的RDB(MySQL)
-
切换的步骤
1. 安装MySQL数据库 yum install -y mysql-server service mysqld start #启动mysql服务 chkconfig mysqld on #自启动 修改root用户密码 /usr/bin/mysqladmin -u root password ‘new-password‘ 2. 打开mysql远端访问权限 use mysql grant all privileges on *.* to [email protected]‘%‘ identified by "1234456"; flush privileges; delete from user where host != ‘%‘ service mysqld restart 3. 修改hive的配置 hive-site.xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop4:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> 4. 上传mysql的驱动jar 到 hive_home/lib 5.测试 启动hive,建库:hive> create database if not exists mydb; hive> use mydb; mydb下建表: hive> create table if not exists t_user( > id int, > name string)row format delimited fields terminated by ‘ ‘; OK 本地导入数据 hive> load data local inpath ‘/root/test‘ into table t_user; 查询: hive> select * from t_user; OK 1 lhc 2 aaa 3 bbb 4 ccc Time taken: 10.678 seconds, Fetched: 4 row(s) 网页也可查看对应存储路径:http://hadoop1:50070/explorer.html#/user/hive/warehouse/mydb.db
Hive的语法细节
-
Hive相关的配置文件
hive-default.xml ? hive-site.xml <!--显示数据库名--> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <!--显示查询表的列名--> <property> <name>hive.cli.print.header</name> <value>true</value> </property> 也可以通过shell或者hive命令行修改 bin/hive --hiveconf hive.cli.print.header false ? hive>set hive.cli.print.header hive>set hive.cli.print.header=true
?
-
Hive的启动参数
#启动 1. bin/hive #启动hive时,修改hive的配置项 2. bin/hive --hiveconf hive.cli.print.header false #查看帮助文档 3. bin/hive -help 查看hive的帮助信息 #启动hive 同时指定数据库 4. bin/hive --database baizhi_140 #启动hive 同时执行命令 5. bin/hive -e ‘show databases‘ bin/hive --database baizhi_140 -e ‘show tables‘ >:覆盖原来文件 >>:追加到源文件 bin/hive --database baizhi_140 -e ‘select * from t_user‘ >> /root/result #启动hive,同时执行命令文件(sql命令放在sql文件里) 6. bin/hive -f /opt/datas/hive.sql bin/hive --database baizhi_140 -f /root/hive.sql >> /root/result
-
数据库
-
表
-
导入数据
-
导出数据
-
以上是关于hive的安装,啥是hive的metastore的远程与本地的主要内容,如果未能解决你的问题,请参考以下文章
Hive初步使用安装MySQL Hive配置MetaStore配置Hive日志《二》
hive-metastore 无法在 cloudera manager 安装过程中启动