解压放在相应目录(随意)后
1.修改配置文件
cd /data/soft/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh
mv hive-defalut.xml.template hive-site.xml
在Hive的hive-env.sh配置文件中增加下面几行
vi hive-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HIVE_HOME=/data/soft/apache-hive-3.1.2-bin
export HADOOP_HOME=/data/soft/hadoop-3.2.0
修改Hive中的hive-site.xml配置文件
vi hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mysqlIp:3306/hive?serverTimezone=Asia/Shanghai</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>admin</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/data/hive_repo/querylog</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/data/hive_repo/scratchdir</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/data/hive_repo/resources</value>
</property>
在Hadoop的core-site.xml文件中增加下面配置
vi core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
发送到集群其他节点
scp -rq core-site.xml bigdata02:/data/soft/hadoop-3.2.0/etc/hadoop
sbin/stop-all.sh
sbin/start-all.sh
2.初始化条件
cd /data/soft/apache-hive-3.1.2-bin
bin/schematool -dbType mysql -initSchema
# 查看 mysql 中是否有大量的表,有的化就初始化成功
# hive 表真实数据信息存储在 HDFS 上
# hive 表元数据信息存储在 mysql 的 hive(自定义表名) 表中
报错1
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Exception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8
at [row,col,system-id]: [3215,96,"file:/data/soft/apache-hive-3.1.2-bin/conf/hive-site.xml"]
解决
vi /data/soft/apache-hive-3.1.2-bin/conf/hive-site.xml
: set nu
: 3215
dd
# 删除3215行,这是官网的自带错误,由于描述文件过长,并使用了换行符导致,删除即可
:wq
报错2
Underlying cause: java.sql.SQLSyntaxErrorException : Unknown database 'hive'
解决
mysql 创建表 hive 即可
报错3
Underlying cause: java.sql.SQLException : null, message from server: "Host 'bigdata01' is not allowed to connect to this MySQL server"
SQL Error code: 1130
解决
原因是:远程服务器不允许你的java程序访问它的数据库。所以,我们要对远程服务器进行设置,使它允许你进行连接。
方案一:
管理员运行 cmd
use mysql
update user set host = '%' where user='root';
net stop mysql
net start mysql