1:MySQL server + hive metastore service (hadoop2)
安装MySQL
[root@hadoop9 hadoop]# mysql -uroot -p
mysql> grant all on *.* to mysql@'%' identified by 'mysql' with grant option;
mysql> create user 'hadoop' identified by 'hadoop';
mysql> grant all on *.* to hadoop@'%' with grant option;
mysql> quit;
[root@hadoop9 hadoop]# mysql -uhadoop -p
mysql> create database hive;
mysql> quit;
2、配置hive
在hive的conf目录下创建文件hive-site.xml配置文件(数据库连接等信息自定义):
<?xml version="1.0"?>
<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<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>hadoop</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hadoop321</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
</configuration>
3、设置环境变量
复制hive-env.sh
HADOOP_HOME=/home/lck/study_softare/hadoop/hadoop-2.7.2
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/lck/study_softare/hive/apache-hive-2.1.0-bin/conf
#无特殊需求,HIVE_CONF_DIR 可以不配置
4、执行命令
Soooooo the answer is:
-
Before you run hive for the first time, run
schematool -initSchema -dbType mysql
-
If you already ran hive and then tried to initSchema and it's failing:
mv metastore_db metastore_db.tmp
-
Re run
schematool -initSchema -dbType derby
-
Run hive again
5、执行hive
启动hadoop
[hadoop@hadoop1 hadoop220]$ sbin/start-dfs.sh
[hadoop@hadoop1 hadoop220]$ sbin/start-yarn.sh
单用户使用hive
[hadoop@hadoop3 hive013]$ bin/hive
多用户使用hive
[hadoop@hadoop3 hive013]$ bin/hive --service metastore
[hadoop@hadoop2 hive013]$ bin/hive
再增加一个用户
hadoop@wyy:/app/hadoop/hive013$ scp -r hadoop@hadoop2:/app/hadoop/hive013 .
hadoop@wyy:/app/hadoop/hive013$ bin/hive
后台运行
前台退出ctrl+c
nohup bin/hive --service metastore > metastore.log 2>&1 &
后台退出
[hadoop@hadoop3 hive013]$ jobs
[hadoop@hadoop3 hive013]$ kill %num