首先纠正搭建hadoop集群那篇文章中一个错误:
我的安装包是在~/Downloads文件夹下,而上面我写错了,实际应该是:
hadoop@hadoop01:~/Downloads$ sudo tar -zxvf hadoop-3.2.1.tar.gz -C usr/local #-C参数是指定解压到哪个目录下
hadoop@hadoop01:~/Downloads$ sudo tar -zxvf jdk-8u351-linux-aarch64.tar.gz -C usr/local
接下来正文开始:
1. 安装mysql
1.1 启动hadoop01节点,进入终端
hadoop@hadoop01:~$ sudo apt install mysql-server
通过命令安装最新版mysql(通过命令会默认安装最新版mysql)
1.2 通过命令进入mysql,目前我安装的最新版是mysql-8.0.31
hadoop@hadoop01:~$ sudo mysql
1.3 在mysql命令行输入以下命令回车,修改密码(密码自己设置)
alter user 'root'@'localhost' identified with mysql_native_password by 'root2580';
exit; #然后退出
退出之后输入:
hadoop@hadoop01:~$ sudo mysql_secure_installation
VALIDATE PASSWORD COMPONENT...(使用密码强度校验组件):n
Change the password for root ? (修改密码) : yes
New password: (自己输入修改之后的密码)
Re-enter password:(再输入一次密码)
Remove anonymous users? (删除匿名用户) : n
Disallow root login remotely? (不允许root账户远程登录) : n
Remove test database and access to it? (移除test数据库) : n
Reload privilege tables now? (现在重新载入权限表) : y
#结束后mysql就已经配置并修改好密码
1.4 使用修改的密码登录mysql,测试是否成功
hadoop@hadoop01:~$ sudo mysql -u root -p
至此mysql安装并测试完成。
2. 配置hive
2.1 首先登录mysql,建立hive数据库,创建hive用户和密码
#创建hive数据库
create database hive;
#创建hive用户和密码(密码自己设置)
create user 'hive'@'%' identified with mysql_native_password by 'hive';
#授权
grant all privileges on *.* to hive@'%' with grant option;
#刷新权限
flush privileges;
#退出
exit;
修改/etc/mysql/mysql.conf.d/mysqld.cnf文件内容:
hadoop@hadoop01:~$ sudo vim etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0 #将127.0.0.1改为0.0.0.0
mysqlx-bind-address = 127.0.0.1
重启mysql服务:
hadoop@hadoop01:~$ sudo service mysql restart
2.2 安装hive
hive下载地址:https://dlcdn.apache.org/hive/
我安装的是hive-3.1.2 ,大家按自己想安装的版本来
2.2.1 解压至指定文件夹下,并将文件名修改为hive
hadoop@hadoop01:~/Downloads$ sudo tar -zxvf apache-hive-3.1.2-bin.tar.gz -C usr/local
hadoop@hadoop01:/usr/local$ sudo mv apache-hive-3.1.2-bin hive
2.2.2 配置环境变量
hadoop@hadoop01:~$ sudo vim ~/.bashrc
添加:
export HIVE_HOME=/usr/local/hive #自己hive的安装路径
export PATH=$PATH:${HIVE_HOME}/bin:${HIVE_HOME}/lib:
接着:
hadoop@hadoop01:~$ source ~/.bashrc #使环境变量生效
2.2.3 进入${HIVE_HOME}/conf目录下(${HIVE_HOME}是自己hive的安装路径)
hadoop@hadoop01:~$ cd /usr/local/hive/conf
创建hive-site.xml文件并添加如下内容:
hadoop@hadoop01:/usr/local/hive/conf$ sudo vim hive-site.xml
添加以下内容:具体内容按自己的实际情况进行修改
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<!-- jdbc 连接的 URL -->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>True</value>
</property>
<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
创建hive-env.sh并添加以下内容:
hadoop@hadoop01:/usr/local/hive/conf$ sudo vim hive-env.sh
添加以下内容:
export HADOOP_HOME=/usr/local/hadoop #自己的hadoop安装路径
export HIVE_CONF_DIR=/usr/local/hive/conf #自己的hive安装路径
2.2.4 下载并解压mysql的jar包,并移动到${HIVE_HOME}/lib目录下
mysql-jar包下载地址:https://dev.mysql.com/downloads/connector/j/
根据自己的系统和mysql版本来安装
如果是用ubuntu自带的firefox来下载的话,默认是放在Downloads里
点击进入这个包:
进入这个文件夹:/./usr/share/java/
点击extract提取到Downloads里
将jar包移动到${HIVE_HOME}/lib目录下:
hadoop@hadoop01:~/Downloads$ sudo mv mysql-connector-j-8.0.31.jar usr/local/hive/lib
2.2.5 启动hadoop集群
hadoop@hadoop01:/usr/local/hive/lib$ start-dfs.sh
hadoop@hadoop01:/usr/local/hive/lib$ ssh hadoop02
hadoop@hadoop02:~$ start-yarn.sh
hadoop@hadoop02:~$ exit
2.2.6 接着切换到${HIVE_HOME}/bin目录下初始化hive
hadoop@hadoop01:/usr/local/hive/bin$ schematool -dbType mysql -initSchema
然后遇到报错:
这里是因为hadoop和hive的两个版本guava.jar不一致,解决方案如下:
#先到hive的lib目录下找到guavaxxx.jar包并删除
hadoop@hadoop01:/usr/local/hive/bin$ cd /usr/local/hive/lib
hadoop@hadoop01:/usr/local/hive/lib$ sudo rm guava-19.0.jar
#再去hadoop的lib目录下找到guavaxxx.jar包,并复制一份到hive的lib目录下
hadoop@hadoop01:/usr/local/hive/lib$ cd /usr/local/hadoop/share/hadoop/common/lib
hadoop@hadoop01:/usr/local/hadoop/share/hadoop/common/lib$ sudo cp -r guava-27.0-jre.jar /usr/local/hive/lib
之后再重新初始化hive
hadoop@hadoop01:/usr/local/hive/bin$ schematool -dbType mysql -initSchema
初始化完成。
启动hive并测试:
hadoop@hadoop01:~$ hive
至此hive就安装并测试成功啦~