Hadoop 与 Hive 兼容性问题(一)部署Hadoop与Hive

文章目录

  • 部署 Hadoop 和 Hive
  • 版本选择
  • Hadoop 部署
    • 集群规划
  • Hive 部署
    • 集群规划
    • Hive 安装
    • Hive 元数据配置到 MySQL
    • 启动 Hive
  • 测试
    • 测试 Hadoop
    • 测试 Hive

部署 Hadoop 和 Hive

组件下载地址:https://archive.apache.org/dist/

版本选择

框架 Hive Hadoop
版本 3.1.3 3.1.3

Hadoop 部署

集群规划

主机 hadoop102 hadoop103 hadoop104
服务 NameNode
DataNode DataNode DataNode
ResourceManager
NodeManager NodeManager NodeManager

集群安装:https://blog.csdn.net/weixin_45417821/article/details/115268740 只看Hadoop集群安装部分即可

Hive 部署

集群规划

主机 hadoop102
服务 Hivesever2
Metastore

Hive 安装

1)把 apache-hive-3.1.3-bin.tar.gz上传到 linux 的/opt/software 目录下

2)解压 apache-hive-3.1.3-bin.tar.gz 到/opt/module目录下面

[root@hadoop102 hive]# tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/module/

3)修改 apache-hive-3.1.2-bin.tar.gz 的名称为 hive

[root@hadoop102 module]# mv apache-hive-3.1.3-bin/ hive

4)修改/etc/profile,添加环境变量

[root@hadoop102 hive]# vim /etc/profile.d/my_env.sh 

添加内容
#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

5)解决日志 Jar 包冲突,进入/opt/module/hive/lib 目录(有冲突再做)

[root@hadoop102 lib]$ mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.b

Hive 元数据配置到 MySQL

拷贝驱动

将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下

[root@hadoop102 lib]$ cp /opt/software/mysql/mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/

配置 Metastore 到 MySQL

在$HIVE_HOME/conf 目录下新建 hive-site.xml 文件

[root@hadoop102 conf]$ vim hive-site.xml


<configuration>
 <property>
 	<name>javax.jdo.option.ConnectionURLname>
	<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=falsevalue>
 property>
 <property>
 	<name>javax.jdo.option.ConnectionDriverNamename>
 	<value>com.mysql.jdbc.Drivervalue>
 property>
 <property>
 	<name>javax.jdo.option.ConnectionUserNamename>
 	<value>rootvalue>
 property>
 <property>
	 <name>javax.jdo.option.ConnectionPasswordname>
 	 <value>000000value>
 property>
 <property>
 	<name>hive.metastore.warehouse.dirname>
 	<value>/user/hive/warehousevalue>
 property>
 <property>
 	<name>hive.metastore.schema.verificationname>
 	<value>falsevalue>
 property>
 <property>
 	<name>hive.server2.thrift.portname>
 	<value>10000value>
 property>
 <property>
 	<name>hive.server2.thrift.bind.hostname>
 	<value>hadoop102value>
 property>
 <property>
	<name>hive.metastore.event.db.notification.api.authname>
 	<value>falsevalue>
 property>
 
 <property>
 	<name>hive.cli.print.headername>
 	<value>truevalue>
 property>
 <property>
 	<name>hive.cli.print.current.dbname>
 	<value>truevalue>
 property>

configuration>

启动 Hive

初始化元数据库

1)登陆MySQL

[root@hadoop102 conf]$ mysql -uroot -p000000

2)新建 Hive 元数据库

mysql> create database metastore;
mysql> quit;

3)初始化 Hive 元数据库

[root@hadoop102 conf]$ schematool -initSchema -dbType mysql -verbose

会报如下异常:暂且搁置

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V

测试

测试 Hadoop

1)启动 Hadoop

[root@hadoop102 ~]$ start-dfs.sh
[root@hadoop103 ~]$ start-yarn.sh

2)运行 Hadoop 自带的测试任务

[root@hadoop102 ~]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 1 1

测试 Hive

1)启动 Hive CLI 客户端

[root@hadoop102 ~]$ hive

此时控制台会出现如下报错信息:

java.lang.NoSuchMethodError: 
com.google.common.base.Preconditions.checkArgument(ZLjava/lang/St
ring;Ljava/lang/Object;)V

你可能感兴趣的:(Bigdata技术,hadoop,hive,大数据)