hive的环境搭建

5 篇文章 0 订阅

hive的环境搭建

hive有三种模式内嵌模式,本地模式,远程连接

内嵌模式的配置

1. 简介:

使用hive自带数据库derby来进行存储元数据,通常用于测试  
优点:使用简单,不用进行配置  
缺点:只支持单session。  
1. 将hive安装包上传到/opt/software/,进行解压
		$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/apps/
2. 创建一个软连接
$ ln -s apache-hive-1.2.1-bin/ hive
3. 配置环境变量
		$ vi ~/.bash_profile  
		  #hive environment  
		HIVE_HOME=/opt/apps/hive  
		PATH=$HIVE_HOME/bin:$PATH  
	    export HIVE_HOME PATH
	4. 使.bash_profile生效
		]$ source ~/.bash_profile
	注意:在使用hive命令的位置会生成一个derby文件和元数据的目录。
		1.1.2版本有依赖冲突:jline版本冲突,1.2.1之后版本无此冲突 		
		/opt/apps/hive-1.2.1/lib和/usr/local/hadoop-2.6.4/share/hadoop/yarn/lib中都包
		含jline的jar包,导致版本冲突
		解决方案:
		1、cp /usr/local/hive-1.2.1/lib/jline-2.12.jar /usr/local/hadoop-2.6.4/share/hadoop/yarn/lib/
		2、rm -rf jline-0.9.94.jar
		特点:元数据库文件会在启动hive命令的目录下生成

本地模式

使用mysql替换自带的元数据库
hive的相关进程都是在同一台机器上,即本地模式。mysql可以在不同机器上因为mysql是一个相对独立的进程。

  1. 安装mysql请参考 https://blog.csdn.net/e3hhhh/article/details/100176640

  2. 上传hive,解压 tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/apps/在-C后是自己的安装目录,如果hive不在当前目录请在-zxvf后写上hive的目录

  3. 将mysql的驱动包mysql-connecter-5.1.37.jar,放入hive的lib中 别的版本的hive对应的jar不太清楚,hive1.2.1最好对应这个jar否则可能会无法删除表。

  4. 修改hive的conf目录下的hive-env.sh因为并没有hive-env.sh我们要使用

    cp hive-env.sh.template hive-env.sh
    	 HADOOP_HOME=/opt/apps/hadoop  #hadoop的安装目录
    	JAVA_HOME=/opt/apps/jdk#jdk的安装目录最好不要有空格在等号前				后
    
  5. cp hive-default.xml.template hive-site.xml 先将文件导出windows下用文本编辑器修改下面的属性

<!--配置mysql的连接字符串-->
			<property>
				<name>javax.jdo.option.ConnectionURL</name>
				<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
			<description>JDBC connect string for a JDBC metastore</description>
			</property>
			<!--配置mysql的连接驱动-->
			<property>
				<name>javax.jdo.option.ConnectionDriverName</name>
				<value>com.mysql.jdbc.Driver</value>
			<description>Driver class name for a JDBC metastore</description>
			</property>
			<!--配置登录mysql的用户-->
			<property>
				<name>javax.jdo.option.ConnectionUserName</name>
				<value>root</value>
			<description>username to use against metastore database</description>
			</property>
			<!--配置登录mysql的密码-->
			<property>
				<name>javax.jdo.option.ConnectionPassword</name>
				<value>123456</value>
			<description>password to use against metastore database</description>
			</property>

集群和mysql都要先启动
输入hive连接
本地模式就配好了

远程连接模式

将hive作为一个server进程开启,客户端可以在任何机器上,只要连接到这个server,就可以进行操作。客户端可以不需要密码。
查找修改下面的属性上面为属性名下面为属性的值

           <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://slave2:3306/hive?useSSL=false&amp;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>
        <description>password to use against metastore database</description>
      </property>
      
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://slave2:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  </property>
  
   <property>
    <name>hive.querylog.location</name>
    <value>/opt/apps/hive/logData</value>
    <description>Location of Hive run time structured log file</description>
  </property>
  
    <property>
    <name>hive.exec.local.scratchdir</name>
    <value>/tmp/hive/local</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  
   <property>
    <name>hive.downloaded.resources.dir</name>
    <value>/tmp/hive/resources</value>
    </property>
    
  <property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
  </property>

再修改mysql的权限

grant all privileges on *.*  to root@'%' identified by '123456' with grant option;
  1. 确定集群是否正常:active和standby都要存在

  2. 杀死已经存在的所以Runjar

  3. 在mysql所在的机器上,开启元数据服务
    hive --service metastore 2>&1 >/dev/null & ----->后台启动

  4. 在客户端,输入hive进行连接

    说明:如果mysql所在的机器只开启了 hiveserver2。意图是使用10000端口。
    此时,可以在客户端使用beeline工具

    如果修改了配置文件,需要重启hive相关服务,而元数据库的元数据失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值