Hive 环境搭建

199 阅读1分钟

hive 官网

镜像源

解压放在相应目录(随意)后

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