【Hive】Hive2.x.x超详细安装教程(Hadoop平台上的数据仓库)

Hive2.x.x超详细安装教程(Hadoop平台上的数据仓库)




环境: Centos7 Hadoop-2.10.0 MySQL-8.0.20
安装: Hive-2.3.7

零、开始


  Hive简而言之就是一个Hadoop平台上数据仓库的管理软件,这个软件将类SQL语句方便的转换成MapReduce操作HDFS(MySQL中存储元数据(如表结构),所以在master上安装就够了)。
  并使用HQL(类SQL语句)作为查询接口,使用HDFS作为底层存储, 使用MapReduce作为执行层,即将HQL语句转译成M/R Job然后在Hadoop执行。
  本篇上接Linux下的MySQL8.0安装
  所有操作都在Hadoop集群master机器下完成。

本文所有输出都是在作者虚拟机上的输入得到的,输出因人而异,结果没问题就好。


一、下载Hive


1、点击下载地址

2、点击Download a release now!(如下图)
1.2

3、点击https://mirrors.tuna.tsinghua.edu.cn/apache/hive/(如下图)
1.3

4、点击hive-2.3.7/(如下图)
1.4

5、点击apache-hive-2.3.7-bin.tar.gz(如下图,bin代表二进制文件,不用编译)
1.5

6、下载到Windows本地,使用telnet/ssh客户端(作者为SecureCRT)连接master机器
输入1:cd /root/coding/hive(进入自定目录)
输入2:rz,然后选择Windows下的压缩文件,上传到该目录下

如果提示不存在该命令,则输入yum install -y lrzsz安装lrzsz
上传成功可以输入ls查看存在
1.6


7、解压到当前目录
输入:tar -zxvf apache-hive-2.3.7-bin.tar.gz
输出:略

8、配置环境变量
输入1:vi /etc/profile
输入2:在文件末尾追加下列代码(按i进入编辑模式,自行替换第一行路径):

export HIVE_HOME=/root/coding/hive/apache-hive-2.3.7-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin

输入3:按Esc进入命令模式后按:wq保存退出文件
输入4(使修改生效):source /etc/profile

配置成功后可以输入hive --version验证,会输出hive版本信息


二、配置Hive


1、开启Hadoop集群(输入因安装位置不同而不同)
输入:/root/coding/hadoop/hadoop-2.10.0/sbin/start-all.sh


2、在集群上建立目录,并赋予权限

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/warehouse
hdfs dfs -mkdir -p /tmp/hive
hdfs dfs -chmod -R 777 /tmp/hive


3、在Linux下建立tmp文件夹
输入1:cd /root/coding/hive/apache-hive-2.3.7-bin
输入2:mkdir tmpchmod -R 777 tmp/


4、修改配置文件1
输入1:cd /root/coding/hive/apache-hive-2.3.7-bin/conf(进入文件夹)
输入2:(copy配置文件)

cp hive-default.xml.template hive-site.xml
cp hive-env.sh.template hive-env.sh

输入3:sed -i 's#\${system:user.name}#root#g; s#\${system:java.io.tmpdir}#/root/coding/hive/apache-hive-2.3.7-bin/tmp#g' /root/coding/hive/apache-hive-2.3.7-bin/conf/hive-site.xml

1.修改用户名,将文件中所有${system:user.name}替换为root

2.修改临时目录,将文件中所有${system:java.io.tmpdir}替换为/root/coding/hive/apache-hive-2.3.7-bin/tmp

输入grep '${system:user.name}' hive-site.xml验证,如果无输出,着替换成功


5、修改配置文件2(/root/coding/hive/apache-hive-2.3.7-bin/conf/目录下)
(大家可以直接到 第6步 对应行号找就可以了,位置不会差太多,不需要再找一遍)

输入1:grep -n 'hive.metastore.uris' hive-site.xml(查找元数据服务)
输出1:370: <name>hive.metastore.uris</name>(370是我们需要的行号)

输入2:grep -n ' ConnectionURL' hive-site.xml(查找与数据库连接的URL)
输出2:544: <name>javax.jdo.option.ConnectionURL</name>(544是我们需要的行号)

输入3:grep -n 'ConnectionDriverName' hive-site.xml(查找jdbc驱动)
输出3:1019: <name>javax.jdo.option.ConnectionDriverName</name>(1019是我们需要的行号)

输入4:grep -n 'ConnectionUserName' hive-site.xml(查找登录数据库的用户)
输出4:1044: <name>javax.jdo.option.ConnectionUserName</name>(1044是我们需要的行号)

输入5:grep -n 'ConnectionPassword' hive-site.xml(查找对应用户的密码)
输出5:529: <name>javax.jdo.option.ConnectionPassword</name>(529是我们需要的行号)


6、修改配置文件3(value值因配置的不同而不同,/root/coding/hive/apache-hive-2.3.7-bin/conf/目录下)

文本输入模式:在命令行模式下按i(最常用)
命令行模式:按Esc
末行模式:在命令模式下输入加命令

输入1(显示行号编辑):vi -n hive-site.xml

输入2::370(命令行模式,设置元数据服务)

<property>
    <name>hive.metastore.uris</name>  ##370
    <value>thrift://master:9083</value>
</property>


输入3::544(命令行模式,修改与数据库连接的URL,ip地址改为数据库所在ip,/后跟数据库名,如不存在则会在后面初始化hive时进行创建)

<property>
    <name>javax.jdo.option.ConnectionURL</name>  ##544
    <value>jdbc:mysql://192.168.150.100:3306/hive?createDatabaseIfNotExist=true</value>
</property>


输入4(命令行模式,修改jdbc驱动)::1019

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>  ##1019
    <value>com.mysql.cj.jdbc.Driver</value>  ##这是mysql8.0的驱动,mysql5的驱动为com.mysql.jdbc.Driver
</property>


输入5(命令行模式,修改登录数据库的用户)::1044

<property>
    <name>javax.jdo.option.ConnectionUserName</name>  #1044
    <value>root</value>  ##对应用户名称
</property>


输入6(命令行模式,修改对应用户的密码)::529

<property>
    <name>javax.jdo.option.ConnectionPassword</name>  #529
    <value>对应用户的密码</value>
</property>



7、设置jdbc驱动点击下载网址,选择适合自己的版本下载
2.7.1
下载完毕后在Windows下解压,并在Linux中使用rz命令把里面的mysql-connector-java-8.0.20.jar文件上传到/root/coding/hive/apache-hive-2.3.7-bin/lib目录下



8、配置hive-env.sh
输入1:cd /root/coding/hive/apache-hive-2.3.7-bin/conf
输入2:vi hive-env.sh
输入3:(文件末尾加入)

export JAVA_HOME=/root/coding/java/jdk-11.0.6
export HADOOP_HOME=/root/coding/hadoop/hadoop-2.10.0
export HIVE_HOME=/root/coding/hive/apache-hive-2.3.7-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib



9、在HA(高可用)集群上还需要配置如下参数
文件路径:/root/coding/hive/apache-hive-2.3.7-bin/conf/hive-site.xml

<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://user/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>hdfs://tmp/hive</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/root/coding/hive/apache-hive-2.3.7-bin/logs</value>
</property>


三、启动Hive


1、初始化Hive(只一次)
输入1:cd /root/coding/hive/apache-hive-2.3.7-bin/bin
输入2:schematool -dbType mysql -initSchema


2、在该目录下输入hive,输入提示如下图则启动成功
3.2

退出输入exitquit


四、常见错误


1、FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

解决方法1:Hive的服务端没有打开
代码:hive --service metastore &(Linux下,输入后按ctrl+c退出,回到hive即可)

解决方法2:hive-site.xml中的数据库用户和密码配置错误,重新检查

解决方法3:用户权限不足(root账户不会出现这种情况)
代码:

格式:
grant all privileges on 'databasename.tablename' to 'user'@'host' identified by 'password';
授予user用户全局全部权限:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;



(全文完)

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值