Hive的安装
下载
http://mirror.bit.edu.cn/apache/hive/
wget http://mirror.bit.edu.cn/apache/hive/hive-3.1.1/apache-hive-3.1.1-bin.tar.gz
安装+配置
-
安装
tar -zxvf apache-hive-3.1.1-bin.tar.gz mv apache-hive-3.1.1-bin hive rm apache-hive-3.1.1-bin.tar.gz
-
配置
vim /etc/profile 添加 #hive的env export HIVE_HOME=/root/hive export PATH=$PATH:$HIVE_HOME/bin source /etc/profile
hive配置
-
生成配置文件
cd hive/conf cp hive-default.xml.template hive-site.xml cp hive-env.sh.template hive-env.sh
-
配置文件
vim hive-env.sh HADOOP_HOME=${HADOOP_HOME} vim hive-site.xml 添加 <!-- 插入一下代码 (文末添加)--> <property> <name>javax.jdo.option.ConnectionUserName</name>用户名(这4是新添加的,记住删除配置文件原有的哦!) <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name>密码 <value>LLTllt19970518</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name>mysql <value>jdbc:mysql://maoerfei.cn:3306/hive</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name>mysql驱动程序 <value>com.mysql.jdbc.Driver</value> </property> <!-- 到此结束代码 -->
下载mysql.driver驱动+创建相应mysql的database
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.zip
把mysql-connector-java-5.1.18-bin.jar移动到hive/lib目录下
mysql创建对应的database :hive (没用到)
启动hadoop(或者启动hdfs)+hive
hadoop的sbin路径下
start-all.sh
启动hive
hive
尝试命令
show databases;
错误处理
错误:3210行未知字符
- 解决
注释掉3210行
错误:{system:java.io.tmpdir}的URISyntax解析不了
-
显示
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D at org.apache.hadoop.fs.Path.initialize(Path.java:254) at org.apache.hadoop.fs.Path.<init>(Path.java:212) at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:644) at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:563) at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:531) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:705) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.util.RunJar.run(RunJar.java:234) at org.apache.hadoop.util.RunJar.main(RunJar.java:148) Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D at java.net.URI.checkPath(URI.java:1823) at java.net.URI.<init>(URI.java:745) at org.apache.hadoop.fs.Path.initialize(Path.java:251) ... 12 more
-
解决
vim /conf/hive-site.xml
修改配置 <property> <name>Hive.exec.local.scratchdir</name> <value>/root/hive/tmp//${system:user.name}</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/root/hive/tmp/${hive.session.id}_resources</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> <property> <name>hive.server2.logging.operation.log.location</name> <value>/root/hive/tmp/root/operation_logs</value> <description>Top level directory where operation logs are stored if logging functionality is enabled</description> </property>
-
博客
https://blog.csdn.net/wodedipang_/article/details/72718138
错误:无法加载mysql元数据,只能使用默认的数据库(schematool -initSchema -dbType mysql)
-
显示
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/root/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/root/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Metastore connection URL: jdbc:derby:;databaseName=metastore_db;create=true Metastore Connection Driver : org.apache.derby.jdbc.EmbeddedDriver Metastore connection User: APP Starting metastore schema initialization to 3.1.0 Initialization script hive-schema-3.1.0.mysql.sql Error: Syntax error: Encountered "<EOF>" at line 1, column 64. (state=42X01,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! Underlying cause: java.io.IOException : Schema script failed, errorcode 2 Use --verbose for detailed
-
解决
在hive-site.xml配置末尾添加以下配置(因为上边写了默认的配置,需要覆盖) <property> <name>javax.jdo.option.ConnectionUserName</name> <value>mysql用户</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql密码</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name>mysql <value>jdbc:mysql://localhost:3306/hive</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- 到此结束代码 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> 然后初始化 schematool -initSchema -dbType mysql
${system:java.io.tmpdir}表示查找不到
-
描述
hive> show databases; OK Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D
-
解决
将hive-site.xml相应的引路径 -> /root/hive/tmp的绝对路径
博客引用
https://www.cnblogs.com/dxxblog/p/8193967.html
对其作了相应的完善