Hive常用命令及其环境搭建【持续更新......】

Hive

官网 http://hive.apache.org/

基本概念

  • 数据仓库(历史数据,用于计算分析)
  • 解释器、编译器、优化器等(将sql转换为MR,提交给Hadoop集群)。
  • hive运行时,元数据(表、库、字段、属性)存储在关系型数据库(在线数据,交互式)里面,数据存储在HDFS里面

架构图

hive架构图
在这里插入图片描述

HIVE 搭建模式

  • local (测试/但不推荐)Derby数据库(自带)
  • 单用户模式 Mysql
  • 多用户/远程服务器模式(MetaStore Server)

单用户模式

  1. 安装mysql
    yum install mysql-server -y
  2. 启动服务
    service mysqld start
  3. 设置开机启动
    chkconfig mysql on
    查看开机启动列表
    chkconfig mysql --list
  4. 通过mysql命令连接数据库
    mysql 连接成功
  5. 登录权限控制
    show databases;
    use mysql;
    show tables;
    desc user;
    select host, user, password from user;
    GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123’ WITH GRANT OPTION;
    delete from user where host != ‘%’;
    flush privileges;
    quit;
  6. mysql -u root -p 123 登录验证
1.上传安装包
	sz -e 
2.解压
	tzr -zxvf apache-hive-2.1.1-bin.tar.gz /usr/local/software/
3.配置环境变量
	vim /etc/profile
	export HIVE_HOME=/usr/local/software/apache-hive-2.1.1
	PATH=$HIVE_HOME/bin
	:wq
	source /etc/profile
4.配置文件修改
	cp hive-default.xml.template hive-site.xml
	vim hive-site.xml
	//删除默认的配置
	:.,$-1d
	
	//更改配置hive-site.xml
	<property>
		<name>hive.metastore.warehouse.dir</name>
		<value>/user/hive_remote/warehouse</value>
	</property>
		<property>
		<name>hive.metastore.local</name>
		<value>true</value>
	</property>
	<property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://node1/hive</value>
	</property>
	<property>
	  <name>javax.jdo.option.ConnectionDriverName</name>
	  <value>com.mysql.jdbc.Driver</value>
	</property>
	<property>
	  <name>javax.jdo.option.ConnectionUserName</name>
	  <value>username</value>
	</property>
	<property>
	  <name>javax.jdo.option.ConnectionPassword</name>
	  <value>pwd</value>
	</property>

	//上传jar包 mysql-connector-java-5.1.6.jar
	/usr/local/software/apache-hive-2.1.1/lib

	//jline 需要更改hadoop 中jline 低版本为高版本
	//路径
	/usr/local/software/hadoop-2.6.0/share/hadoop/yarn/lib
	

	//启动验证
	hive


多用户模式

	1.分发服务端到其他节点,然后更改配置
	<property>
	    <name>hive.metastore.local</name>
	    <value>false</value>
	</property>
	<property>
	    <name>hive.metastore.warehouse.dir</name>
	    <value>/user/hive_remote/warehouse</value>
	</property>
	<property>
	    <name>hive.metastore.uris</name>
	    <value>thrift://node1:9083</value>
	</property>

	2. 启动服务端
		hive --service metasore
		后台启动
		hive --service metasore & > hive.log
		客户端直接
		hive
		
		ss -nal 
		查看9083

Hive SQL

DDL

官方文档 http://hive.apache.org/

1. DESC  TBNAME;
2. DESC FORMATTED + TBNAME;
3. SHOW CREATE TABLE + TBNAME ;
4. hive 建表外部指定 Location(EXTERNAL TABLE,删除表 (DROP TABLE + TBNAME) 只是删除了元数据,但数据并不删除。
5. 分区:PARTITIONED BY (col_name data_type [COMMENT col_comment], ...) 根据col_name 建不通的子目录进行管理。
	- 分区字段不能在建表的字段里面;
	- 分区字段太多、粒度太细不易维护;
6. ALTER PARTITION/TABLE
	


DML

1.LOAD DATA LOCAL INPATH 'filepath' INTO TABLE tab1 partition(month='10',....);





猜你喜欢

转载自blog.csdn.net/yswhfd/article/details/84863111
今日推荐