hive的环境部署

本文详细介绍了如何部署Hive,包括内嵌Derby版本和外置MySQL版本的配置步骤,如替换低版本jline.jar、修改log4j.properties、配置hive-site.xml、添加MySQL驱动包、初始化元数据库等。此外,还涉及了Linux环境下使用RPM方式安装MySQL的过程,以及Hive的三种使用方式:CLI、HiveServer2/beeline和Web UI的配置与启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1.1、内嵌 Derby 版本 
1、 上传安装包 apache-hive-2.3.3-bin.tar.gz 
 
2、 解压安装包 tar  -zxvf  apache-hive-2.3.3-bin.tar.gz  -C  /home/hadoop/apps/ 
 
3、 进入到 bin 目录,运行 hive 脚本:[hadoop@hadoop02 bin]$ ./hive 
 
注意: 1、这时候一般会报错:Terminal initialization failed; falling back to unsupported,是因为 hadoop($HADOOP_HOME/share/hadoop/yarn/lib)集群的 jline-0.9.94.jar 包版本过低, 替换成$HIVE_HOME/lib 中的 jline-2.12.jar 包即可。记住:所有 hdfs 节点都得替换 $HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.4.jar 替换成 jline-2.12.jar 
 
2、修改 log4j.properties(如果有关于日志报错,请照此修改)

cp hive-log4j.properties.template hive-log4j.properties 将 EventCounter 修改成 org.apache.hadoop.log.metrics.EventCounter #log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter 
如果报错就按照此方式解决,没有报错就不用管,在使用新的 hadoop-2.7.5 版本中已经不 存在这个问题。所以不用关注。 
 

 
2.1.2、外置 MySQL 版本 
1、 准备好 MySQL(请参考以下文档,或者自行安装 MySQL,或者一个可用的 MySQL) 
 
2、 上传安装包 apache-hive-2.3.3-bin.tar.gz 
 
3、 解压安装包 tar  -zxvf  apache-hive-2.3.3-bin.tar.gz  -c  ~/apps/ 
 
4、 修改配置文件 [hadoop@hadoop02 conf]# touch  hive-site.xml

                             [hadoop@hadoop02 conf]# vi  hive-site.xml

     在这个新创建的配置文件中加入如下截图中的内容即可: 
 


<configuration>

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://hadoop02:3306/hivedb?createDatabaseIfNotExist=true</value>

<description>JDBC connect string for a JDBC metastore</description>

<!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost  --> </property> 
 
<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

<description>Driver class name for a JDBC metastore</description> 
</property> 
 
<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

<description>username to use against metastore database</description>

</property> 
<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>root</value>

<description>password to use against metastore database</description>

</property>

</configuration>

可选配置,该配置信息用来指定 Hive 数据仓库的数据存储在 HDFS 上的目录 <property> <name>hive.metastore.warehouse.dir</name>

<value>/user/hive/warehouse</value>

<description>hive default warehouse, if nessecory, change it</description>

</property> 
 
5、 一定要记得加入 MySQL 驱动包(mysql-connector-java-5.1.40-bin.jar)该 jar 包放置在 hive 的根路径下的 lib 目录 
 
6、 安装完成,配置环境变量

     vi ~/.bashrc  添加以下两行内容:

       export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin

       export PATH=$PATH:$HIVE_HOME/bin

       保存退出。 最后不要忘记:[hadoop@hadoop02 bin]$ source  ~/.bashrc 
 
7、 验证 Hive 安装

       [hadoop@hadoop02 bin]$ hive --help 
 
 

8、 初始化元数据库 
注意:当使用的 hive 是 2.x 之前的版本,不做初始化也是 OK 的,当 hive 第一次启动的 时候会自动进行初始化,只不过会不会生成足够多的元数据库中的表。在使用过程中会 慢慢生成。但最后进行初始化。如果使用的 2.x 版本的 Hive,那么就必须手动初始化元 数据库。

使用命令: [hadoop@hadoop02 bin]$ schematool  -dbType  mysql  -initSchema 
 
 
9、 启动 Hive 客户端

[hadoop@hadoop02 bin]$ hive --service cli

   或者 [hadoop@hadoop02 bin]$ hive 
 
10、退出 Hive hive> quit; 或者 hive> exit; 
 
2.1.3、Linux RPM 方式安装 MySQL 


(记得使用 root 账户进行操作,若使用普通用户,那么请修改相应文件夹权限)

(如果已经有可以使用的 MySQL,不管安装在哪里,只要能远程连接上,都是可以的)

1、 检查以前是否装过 MySQL rpm -qa|grep -i mysql

        结果: 

      
2、 发现有的话就都卸载 
      
3、 删除老版本 mysql 的开发头文件和库

          rm -rf /usr/lib/mysql    数据库目录

          rm -rf /usr/include/mysql    

          rm -f /etc/my.cnf 

          rm -rf /var/lib/mysql 

 

注意:卸载后/var/lib/mysql 中的数据及/etc/my.cnf 不会删除,确定没用后就手工删除 
 
4、 准备安装包 MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar, 上传,解压 命令:tar -zxvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar 
 
5、 开始安装

 6、 安装 server rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm

开头: 
 
结尾: 
 
如上图所提示,即安装 server 成功

7、 安装客户端

rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm 
 
8、 登陆 MYSQL(登录之前千万记得一定要启动 mysql 服务)

启动命令:

[hadoop@hadoop01 ~]$ service mysql start 
 
然后登陆,初始密码在 /root/.mysql_secret 这个文件里 
 
9、 修改密码 

 
set PASSWORD=PASSWORD('root'); 
 
10、退出登陆验证,看是否改密码成功 
 
11、增加远程登陆权限,执行以下两个命令:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;  

mysql>FLUSH PRIVILEGES; 
 
命令释义:grant 权限 1,权限 2,…权限 n on 数据库名称.表名称 to 用户名@用户地址 identified by '密码'; 
 
PS:1,权限 2,…权限 n 代表 select,insert,update,delete,create,drop,index,alter,grant, references,reload,shutdown,process,file 等 14 个权限。 当权限 1,权限 2,…权限 n 被 all privileges 或者 all 代替,表示赋予用户全部权限。 当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。 用户地址可以是 localhost,也可以是 ip 地址、机器名字、域名。也可以用’%’地址连接。 
 
12、至此 MySQL 安装成功 
 
13、更改数据库的默认编码为 UTF-8 
2.2、Hive 使用方式,即三种连接方式 
2.2.1、CLI 
进入到 bin 目录下,直接输入命令:

[hadoop@hadoop02 ~]$ hive 
 
启动成功的话如上图所示,接下来便可以做 hive 相关操作 
 
补充: 1、上面的 hive 命令相当于在启动的时候执行:hive --service cli 

 

2、使用 hive --help,可以查看 hive 命令可以启动那些服务 3、通过 hive --service serviceName --help 可以查看某个具体命令的使用方式 
2.2.2、HiveServer2/beeline 
在现在使用的最新的 hive-2.3.2 版本中:都需要对 hadoop 集群做如下改变,否则无法使用

第一:修改 hadoop 集群的 hdfs-site.xml 配置文件:加入一条配置信息,表示启用 webhdfs

<property>      

<name>dfs.webhdfs.enabled</name>    

 <value>true</value>

</property> 
 
第二:修改 hadoop 集群的 core-site.xml 配置文件:加入两条配置信息:表示设置 hadoop 的代理用户

<property>    

<name>hadoop.proxyuser.hadoop.hosts</name>    

<value>*</value>

</property> <property>    

 <name>hadoop.proxyuser.hadoop.groups</name>  

   <value>*</value>

</property> 
 
配置解析: hadoop.proxyuser.hadoop.hosts 配置成*的意义,表示任意节点使用 hadoop 集群的代理用户 hadoop 都能访问 hdfs 集群,hadoop.proxyuser.hadoop.groups 表示代理用户的组所属 
 
以上操作做好了之后,请继续做如下两步: 
 
第一步:先启动 hiveserver2 服务 
 
启动方式,(假如是在 hadoop02 上):

启动为前台:hiveserver2

 启动为后台: nohup  hiveserver2  1>/home/hadoop/hiveserver.log  2>/home/hadoop/hiveserver.err &

或者:nohup  hiveserver2  1>/dev/null  2>/dev/null  & 或者:nohup  hiveserver2  >/dev/null  2>&1  &

以上 3 个命令是等价的,第一个表示记录日志,第二个和第三个表示不记录日志 
 
命令中的 1 和 2 的意义分别是:

1:表示标准日志输出

2:表示错误日志输出 如果我没有配置日志的输出路径,日志会生成在当前工作目录,默认的日志名称叫做: nohup.xxx 


 
PS:nohup 命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束, 那么可以使用 nohup 命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 nohup 就是不挂起的意思(no hang up)。 该命令的一般形式为:nohup command & 
 
第二步:然后启动 beeline 客户端去连接: 
 
执行命令: beeline  -u  jdbc:hive2://hadoop02:10000  -n  hadoop

-u : 指定元数据库的链接信息

-n : 指定用户名和密码 
 
另外还有一种方式也可以去连接:先执行 beeline 然后按图所示输入:!connect jdbc:hive2://hadoop02:10000 按回车,然后输入用户名,这个 用户名就是安装 hadoop 集群的用户名 
 
接下来便可以做 hive 操作 

 

2.2.3、Web UI 
1、 下载对应版本的 src 包:apache-hive-2.3.2-src.tar.gz 
 
2、 上传,解压 tar -zxvf apache-hive-2.3.2-src.tar.gz 
 
3、 然后进入目录${HIVE_SRC_HOME}/hwi/web,执行打包命令: jar -cvf hive-hwi-2.3.2.war * 在当前目录会生成一个 hive-hwi-2.3.2.war 
 
4、 得到 hive-hwi-2.3.2.war 文件,复制到 hive 下的 lib 目录中 cp hive-hwi-2.3.2.war ${HIVE_HOME}/lib/ 
 
5、 修改配置文件 hive-site.xml <property>     <name>hive.hwi.listen.host</name>     <value>0.0.0.0</value>     <description>监听的地址</description> </property> <property>     <name>hive.hwi.listen.port</name>     <value>9999</value>     <description>监听的端口号</description> </property> <property>     <name>hive.hwi.war.file</name>     <value>lib/hive-hwi-2.3.2.war</value>     <description>war 包所在的地址</description>  </property> 
 
6、 复制所需 jar 包

1、cp ${JAVA_HOME}/lib/tools.jar ${HIVE_HOME}/lib 
 
2、再寻找三个 jar 包,都放入${HIVE_HOME}/lib 目录: commons-el-1.0.jar jasper-compiler-5.5.23.jar jasper-runtime-5.5.23.jar 不然启动 hwi 服务的时候会报错。 
 
7、 安装 ant

1、 上传 ant 包:apache-ant-1.9.4-bin.tar.gz

2、 解压 
tar -zxvf apache-ant-1.9.4-bin.tar.gz  -C  ~/apps/

3、 配置环境变量

vi /etc/profile

在最后增加两行:

export ANT_HOME=/home/hadoop/apps/apache-ant-1.9.4

export PATH=$PATH:$ANT_HOME/bin

配置完环境变量别忘记执行:source /etc/profile

4、 验证是否安装成功 
 
 
8、 上面的步骤都配置完,基本就大功告成了。进入${HIVE_HOME}/bin 目录: ${HIVE_HOME}/bin/hive --service hwi 或者让在后台运行: nohup bin/hive --service hwi > /dev/null 2> /dev/null & 
 
9、 前面配置了端口号为 9999,所以这里直接在浏览器中输入: hadoop02:9999/hwi 
 
10、至此大功告成 
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值