标签:with default data 原因 tool from 外置 jdb site
从这里下载,这里以apache-hive-2.3.5为例。 https://hive.apache.org/downloads.html
tar -xzvf hive-2.3.5.tar.gz
export HIVE_HOME=/home/xxx/hive-2.3.5
export PATH=$HIVE_HOME/bin:$PATH
cd HIVE_HOME/conf
cp hive-default.xml.template hive-default.xml
cp hive-log4j2.properties.template hive-log4j2.properties
hive的日志默认在/tmp/<user.name>/下,可以通过修改配置文件来改变:
<property>
<name>hive.querylog.location</name>
<value>other_location</value>
</property>
在hdfs中创建如下目录:
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
/user/hive/warehouse 是在$HIVE_HOME/conf/hive-default.xml 中指定的(hive.metastore.warehouse.dir), 如3.2所述,如果要修改该路径,可以在hive-site.xml中修改。
hive默认使用内嵌的derby数据库来存储元数据,这样有个缺点:
原因就是在hive-default.xml的默认配置下,metastore_db是生成在当前目录:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>
所以我们可以配置下内置的derby,让其metastore_db只生成在一个目录下: 在hive-site.xml中添加如下配置,来覆盖默认配置:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:/home/xxx/metastore_db;create=true</value>
</property>
运行命令
$HIVE_HOME/bin/schematool -dbType derby -initSchema
运行结果最后是 schemaTool completed,则表示成功,这个时候可以看到在/home/xxx/下有metastore_db存在。
如果出现类似Error: FUNCTION ‘NUCLEUS_ASCII‘ already exists的错误,则说明在/home/xxx/下存在有metastore_db,则删除掉metastore_db,重新运行以上命令即可。
配置好外置的derby后,我们就可以启动hive了。运行show tables 验证安装。
标签:with default data 原因 tool from 外置 jdb site
原文地址:https://www.cnblogs.com/set-cookie/p/11183076.html