文章目录
部署 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
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop102</value>
</property>
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</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