hive集成hdfs安装

hive伪分布式搭建:
假定已经安装jdk和hadoop,以centos 7,jdk1.8,hadoop 2.8.5为例,用户为root,搭建hive 2.3.5的环境。

ip名称主从进程
192.168.0.111node1namenode
192.168.0.112node2Secondary namenode,datanode
192.168.0.113node3datanode
192.168.0.114node4datanode

1 下载并解压
wget:http://mirror.bit.edu.cn/apache/hive/hive-2.3.5/apache-hive-2.3.5-bin.tar.gz
下面的命令来验证下载并解压hive存档:
[root@node1 ~]# tar zxvf apache-hive-2.3.5-bin.tar.gz
[root@node1 ~]# ll
drwxr-xr-x. 10 root root 184 7月 17 21:00 apache-hive-2.3.5-bin
-rw-r–r--. 1 root root 232027212 7月 17 20:28 apache-hive-2.3.5-bin.tar.gz

2 移动文件,配置环境变量
创建目录:mkdir -r /usr/local/program/hive/
[root@node1 ~]# cp apache-hive-2.3.5-bin /usr/local/program/hive/apache-hive-2.3.5-bin
[root@node1 ~]# cd /usr/local/program/hive
建立软连接,方便后期更新版本时不再改环境变量等配置文件。
[root@node1 hive]# ln -s apache-hive-2.3.5-bin default
[root@node1 hive]# ll
总用量 0
drwxr-xr-x. 10 root root 184 7月 17 21:17 apache-hive-2.3.5-bin
lrwxrwxrwx. 1 root root 22 7月 17 21:18 default -> apache-hive-2.3.5-bin/
设置Hive环境,附加以下行到〜/.bashrc文件中:
export HIVE_HOME=/usr/local/program/hive/default
export PATH= P A T H : PATH: PATH:HIVE_HOME/bin
执行〜/.bashrc文件:source ~/.bashrc

3 配置Hive
配置Hive用于Hadoop环境中,需要编辑hive-env.sh文件,该文件放置在 ${HIVE_HOME}/conf目录。
[root@node1 ~]# cd ${HIVE_HOME}/conf
[root@node1 ~]# cp hive-env.sh.template hive-env.sh
通过编辑hive-env.sh文件添加以下行:
export HADOOP_HOME=/usr/local/program/hadoop/default

4 使用mysql(版本5.6.42)配置Metastore
mysql> CREATE USER ‘hive1’@’%’ IDENTIFIED BY ‘123456’;
mysql> create database hive;
mysql> GRANT ALL PRIVILEGES ON hive.* TO ‘hive1’@’%’ WITH GRANT OPTION;
配置hive-site.xml文件
cd /usr/local/program/hive/default/conf
cp hive-default.xml.template hive-site.xml
vi hive-site.xml

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.cj.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
  <name>ex</name>
  <value>hive1</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>123456</value>
  <description>password to use against metastore database</description>
</property>
<!--将所有的临时目录${system:java.io.tmpdir}改成/tmp/hive/,之后若有默认的hdfs则使用hdfs建立相应目录,反之使用普通的目录-->

下载驱动jar包,并复制到${HIVE_HOME}/lib目录下。
元数据初始化
[root@node1 ~]# cd /usr/local/program/hive/default/bin
[root@node1 ~]# schematool -initSchema -dbType mysql

5 验证Hive安装
需要给hive用户操作hadoop的hdfs创建文件的权限,到${HIVE_HOME}/bin/下运行hive,自动在hdfs目录下创建/tmp/hive/root/和/usr/hive/warehouse,分别用于存储临时文件和数据库文件。
下面的命令来验证配置单元安装:
$ cd ${HIVE_HOME}
$ bin/hive
在成功安装Hive后,能看到以下回应:
Logging initialized using configuration in jar:file:/home/hadoop/hive-0.9.0/lib/hive-common-0.9.0.jar!/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201312121621_1494929084.txt
………………….
hive>
下面的示例命令以显示所有表:
hive> show tables;
OK
Time taken: 2.798 seconds
hive>

6 出现问题
Exception in thread “main” java.lang.IllegalArgumentException:
java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D
原因:在hive-site.xml中没有配置临时文件的目录,依然使用的${system:java.io.tmpdir},将其改成具体的目录即可。

7 将hive包scp到其他几台机子上,每台机子都可一直接使用hive。注意启动hive之前先启动hdfs服务。jps查看服务是否都起来了。
参考:https://www.yiibai.com/hive/hive_installation.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值