💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### Hive集成mysql数据库 默认情况下,Hive元数据保存在内嵌的Derby数据库中,只能允许一个会话连接。 实际生产环境不适用,为了支持多会话,需要一个独立的元数据库,使用MySQL。 > Hive内部对MySQL提供很好的支持。 先安装mysql,使用docker环境即可。 - 新建库,用来保存hive的元数据 ```mysql create database hive; CREATE USER 'hadoop'@'%' IDENTIFIED BY 'mysql'; GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' WITH GRANT OPTION; flush privileges; ``` ### 修改hive-env.sh ```shell export JAVA_HOME=/opt/tools/jdk1.8.0_131 ##Java路径 export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0-cdh5.4.0 ##Hadoop安装路径 export HIVE_HOME=/opt/hadoop/apache-hive-2.1.1-bin ##Hive安装路径 export HIVE_CONF_DIR=/opt/hadoop/apache-hive-2.1.1-bin/conf ##Hive配置文件路径 ``` ### 在hdfs中创建下面的目录,并授权 ```sh hdfs dfs -mkdir -p /user/hive/warehouse hdfs dfs -mkdir -p /user/hive/tmp hdfs dfs -mkdir -p /user/hive/log hdfs dfs -chmod -R 777 /user/hive/warehouse hdfs dfs -chmod -R 777 /user/hive/tmp hdfs dfs -chmod -R 777 /user/hive/log ``` ### 修改hive-site.xml - 将 hive-site.xml 文件中以下几个配置项的值设置成上一步中创建的几个路径。 ``` <property> <name>hive.exec.scratchdir</name> <value>/user/hive/tmp</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <name>hive.querylog.location</name> <value>/user/hive/log</value> </property> ``` - 需要在 hive-site.xml 文件中配置 MySQL 数据库连接信息 ```sh <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hadoop</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql</value> </property> ``` - 创建tmp文件 ```sh mkdir /home/hadoop/hive-2.1.1/tmp ``` ### 初始化hive schematool -dbType mysql -initSchema ### 参考 [hive2.1.1 部署安装](https://blog.csdn.net/u013310025/article/details/70306421) [Hive安装与配置](http://www.cnblogs.com/kinginme/p/7233315.html) ### 创建表并导入数据 ```sql create table dep(id int, name string) row format delimited fields terminated by '\t' load data local inpath '/home/hadoop/hivetestdata/people.txt' into table hive_test.dep; ``` [彻底弄清Hive安装过程中的几个疑问点](http://www.aboutyun.com/thread-10937-1-1.html)