Hadoop生态组件之Hive环境搭建--第九讲(本地模式mysql)

hadoop2.4.1 + apache-hive-1.2.1-bin.tar.gz

1. 内嵌模式

将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

2. 本地模式

这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

3. 远程模式

此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。

本文配置的是本地模式

前提条件

hadoop已经安装完成  参考博客: https://blog.csdn.net/a639735331/article/details/79008179

mysql已经安装完成  参考博客: https://blog.csdn.net/a639735331/article/details/79073783

扫描二维码关注公众号,回复: 2560611 查看本文章

1.将hive上传到 /root/training 目录下,并解压到当前文件夹

2.环境变量配置 (编辑~/.bash_profile)

export JAVA_HOME=/jdk/jdk1.7.0_55  
export HADOOP_HOME=/root/training/hadoop-2.4.1  
export HIVE_HOME=/root/training/apache-hive-1.2.1-bin  

3.环境变量生效

source ~/.bash_profile

4.配置hive-site.xml(默认是不存在的,需要通过copy模板)

cp hive-default.xml.template hive-site.xml
删除里面内容,只留<configuration></configuration> 节点 

5.向configuration中加入如下配置

<!-- 在configuration中加入配置 -->
	<property>
		<!--该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下-->
		<name>hive.metastore.warehouse.dir</name>
		<value>/user/hive/warehouse</value>
	</property>
	<property>  
		<!--该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下-->
		<name>hive.exec.scratchdir</name>  
		<value>/tmp/hive</value>  
	</property>
	<property>
		<name>hive.metastore.local</name>
		<value>true</value>
	</property>
	 <!-- 如果是远程mysql数据库的话需要在这里写入远程的IP或hosts -->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://localhost:3306/hive?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>root</value>
	</property>

6.以上配置的2个目录默认是不存在的,需要手动创建

hadoop fs -mkdir -p /user/hive/warehouse    
hadoop fs -mkdir -p /tmp/hive/    
hadoop fs -chmod 777 /user/hive/warehouse    
hadoop fs -chmod 777 /tmp/hive

检查是否新建成功 hadoop fs -ls / 以及 hadoop fs -ls /user/hive/

7.修改/conf/hive-env.sh 文件,该文件默认不存在,拷贝它的模版来修改

cp hive-env.sh.template  hive-env.sh

# Set HADOOP_HOME to point to a specific hadoop install directory  
HADOOP_HOME=/root/training/hadoop-2.4.1  
  
# Hive Configuration Directory can be controlled by:  
export HIVE_CONF_DIR=/root/training/apache-hive-1.2.1-bin/conf  
  
# Folder containing extra ibraries required for hive compilation/execution can be controlled by:  
export HIVE_AUX_JARS_PATH=/root/training/apache-hive-1.2.1-bin/lib 

8.配置hive的log4j:  conf下   cp hive-log4j.properties.template  hive-log4j.properties

#log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter  
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter  

hive.log.dir=/root/training/apache-hive-1.2.1-bin/log 

9.把apache-hive-1.2.1-bin/lib 里面的jline2.12替换了hadoop 中hadoop-2.4.1/share/hadoop/yarn/lib的jline0.0.94 

10.启动mysql  建立hive数据库 并进行相关字符集设置

create database hive;
alter database hive /*!40100 DEFAULT CHARACTER SET utf8 */;
alter database hive  character set latin1;

11.启动hive

    11.1 shell模式

            切换到bin下    ./hive启动   

    11.2 hive JDBC服务

            ./hive --service hiveserver2 &


配置过程中出现问题 参考如下文章:

解决表不能创建的问题
https://blog.csdn.net/qq_35732963/article/details/54291970

解决服务无法启动问题
https://blog.csdn.net/mchdba/article/details/42677431

hive配置mysql
https://www.cnblogs.com/raphael5200/p/5175973.html





猜你喜欢

转载自blog.csdn.net/a639735331/article/details/79827975
今日推荐