centos7.6下安装Hive-3.1.1安装部署手册

说明:hive-1版本和hive-3版本的搭建不一样,hive-3*增加了账户密码验证功能。此文是hive-3.1.1版本,需要账号密码来验证。

安装包清单

软件本身需提供版本,配置文件或者安装说明等等无需提供版本。

文件名称版本号使用简述说明
apache-hive-3.1.1-bin.tar.gz3.1.1解压缩hive软件安装包
mysql-connector-java-8.0.13.jar8.0.13直接放入指定目录mysql连接jar包
软件安装步骤
  1. 将apache-hive-3.1.1-bin.tar.gz上传至安装目录
  2. 使用tar -zxvf apache-hive-3.1.1-bin.tar.gz 对安装包解压    
  3. 切换到apache-hive-3.1.1-bin/conf目录下创建配置文件hive-site.xml
  4. 将下面xml配置(最底部)复制到hive-site.xml下并且对{}包含的内容如实填写(填写后不再需要{}包裹)
  5. 切换到apache-hive-3.1.1-bin/conf目录下使用cp hive-env.sh.template hive-env.sh 命令创建hive-env.sh文件,编辑hive-site.xml文件加入下面配置
  6. 将mysql-connector-java-8.0.13.jar文件上传至apache-hive-3.1.1-bin/lib目录下
  7. cd ${HIVE_HOME}/bin执行`./schematool -dbType mysql -initSchema`进行初始化操作,如果报错需要检查mysql连接的相关参数,并在mysql中确保没有hive库再进行初始化。
hive软件启动
1. 软件启动保证mysql正常使用并可连接,hadoop正常使用
2. 切换到 apache-hive-3.1.1-bin/bin 目录下,使用nohup ./hive --service hiveserver2 & 命令启动hiveserver2
hive启动验证及日志查看
1. jps -lvm | grep HiveServer2 能查看到hive进程运行
2. 查看日志,切换到 /tmp/${user.name}(当前用户名) 目录下,使用命令tail -F -n 100 hive.log 监控日志,如果jps进程存在但是日志报错,按照日志进行修改
3. 如果没有报错切换到apache-hive-3.1.1-bin/bin 目录下执行 ./beeline 命令后,输入!connect jdbc:hive2://{hive部署地址:10000} 连接hive 
!connect jdbc:hive2://192.168.7.14:10000
,用户名和密码是本机系统的用户名和密码
4. 连接成功后输入show databases; , 正常显示hive所有库名 ,输入!close 退出连接输入!exit退出beeline
5. 修改后使用kill -9 hiveserver2的进程ID 关闭进程后重新启动hiveserver2

hive-env.sh加入以下配置

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 设置hive任务关于小文件合并的问题  -->
    <property>
        <name>hive.merge.mapfiles</name>
        <value>true</value>
        <description>Whether to print the names of the columns in query output.</description>
    </property>

    <property>
        <name>hive.merge.mapredfiles</name>
        <value>true</value>
        <description>Whether to print the names of the columns in query output.</description>
    </property>

    <property>
        <name>hive.merge.size.per.task</name>
        <value>256000000</value>
        <description>Whether to print the names of the columns in query output.</description>
    </property>

    <property>
        <name>hive.merge.smallfiles.avgsize</name>
        <value>64000000</value>
        <description>Whether to print the names of the columns in query output.</description>
    </property>

    <!-- cli查询显示表头 -->
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
        <description>Whether to print the names of the columns in query output.</description>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
        <description>Whether to include the current database in the Hive prompt.</description>
    </property>

    <!-- 允许动态插入分区 -->
    <property>
        <name>hive.exec.dynamic.partition</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.exec.dynamic.partition.mode</name>
        <value>nonstrict</value>
    </property>

    <!-- 开启fetch抓取 -->
    <property>
        <name>hive.fetch.task.conversion</name>
        <value>more</value>
    </property>
    <property>
        <name>hive.exec.mode.local.auto</name>
        <value>true</value>
    </property>
    <!-- 配置HiveServer2服务 -->
    <!-- hive server2 端口配置 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    <!-- hive安装host地址 -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>{hive安装host地址}</value>
    </property>

    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/hive/warehouse</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://{mysql连接地址:端口}/hive?eUnicode=true&amp;characterEncoding=UTF-8&amp;createDatabaseIfNotExist=true&amp;useSSL=false</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
    <!-- hive连接mysql使用的用户名 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>{hive连接mysql使用的用户名}</value>
    </property>
    <!-- hive连接mysql使用的密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>{hive连接mysql使用的密码}</value>
    </property>


    <!--下面是hive3.1.1的新配置,mr如果不设置默认为tez,但是现在没有tez,doAs如果不为false那么用户名密码无法连接权限认证不通过-->
    <property>
        <name>hive.execution.engine</name>
        <value>mr</value>
    </property>
    <property>
        <name>hive.server2.enable.doAs</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
</configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值