安装hive的时候,我尝试了很多次,最终才成功的。借鉴了 Hadoop3.1.2伪分布式环境下安装和配置Hive3.1.2
-
目录
前期准备
①hadoop-3.1.2伪分布的安装,我参照的博客是:超详细的Hadoop3.1.2架构单机、伪分布式、完全分布式安装和配置
②hive-3.1.2压缩包下载:Index of /apache/hive (bit.edu.cn)
③mysql的java驱动压缩包下载:MySQL :: Download Connector/J
一、启动hadoop
第一步先进入hadoop所在的文件夹:
[hadoop@master ~]$cd mod
[hadoop@master mod]$cd hadoop
[hadoop@master hadoop]$cd sbin
[hadoop@master sbin]$./start-all.sh
[hadoop@master sbin]$jps
如果在命令行中输入jps之后,显示出6个代码,hadoop则启动成功,否则hadoop为启动成功,如下图
二、MySql下载安装
- 创建mod文件夹下创建mysql的文件夹:
[hadoop@master ~]$ mkdir mysql
- 进入root账户后下载mysql yum包,如果wget未安装,则先使用yum install -y wget安装一下。
[hadoop@master mod]# su root [root@master mod]# cd mysql [root@master mysql]# wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
- 安装mysql源:
[root@master mysql]# rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
- 安装mysql服务端:
[root@master mysql]# yum install -y mysql-community-server
- 启动mysql,为了方便设置成开机自启动:
[root@master mysql]# systemctl start mysqld.service
[root@master mysql]# systemctl enable mysqld
[root@master mysql]# systemctl daemon-reload
[root@master mysql]# systemctl status mysqld.service
- 首先获取系统自动生成的随机密码
[root@master mysql]# grep "password" /var/log/mysqld.log
执行后“local host:”后的就是初始密码
- 修改MySQL密码:
[root@master mysql]# mysql -uroot -p
修改时要求密码不能过于简单,包括大小写、其他字符等.
>mysql alter user 'root'@'localhost' identified by 'Mysql-111';
Query OK, 0 rows affected (0.11 sec)
设置远程连接时,使用grant权限方式:
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Mysql-111' with grant option;
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
为了后续的HIVE 测试成功,可以先在mysql里创建一个数据库mydb。
mysql> create database mydb;
三、Hive安装
-
将hive安装包解压至/home/hadoop,解压完成后将文件夹重命名为hive
[hadoop@master soft]$ tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /home/hadoop [hadoop@master soft]$ cd /home/hadoop [hadoop@master ~]$ mv apache-hive-3.1.2-bin hive
-
同样方式,将mysql的驱动安装包解压至/home/hadoop,解压完成后将文件夹重命名为mysql-con,并将mysql的java驱动并拷贝到hive的lib路径下:
[hadoop@master soft]$ tar -zxvf mysql-connector-java-8.0.16.jar.gz -C /home/hadoop [hadoop@master soft]$ cd /home/hadoop [hadoop@master ~]$ mv mysql-connector-java-8.0.16 mysql-con [hadoop@master ~]$ cp mysql-con/mysql-connector-java-8.0.16.jar hive/lib
- 配置Hive环境变量,设置为所有用户的环境变量,则需使用root用户登录,编辑/etc/profile文件
[hadoop@master ~]$ su root [root@master ~]# vi /etc/profile
最文件末尾输入a即可编辑
插入以下命令
export HIVE_HOME=/home/hq/hive
export PATH=$PATH:$HIVE_HOME/bin
退出 保存即可(esc键+输入:wq +回车)
使用source命令使得环境变量设置生效:
使用source命令使得环境变量设置生效:
[root@master ~]# source /etc/profile
4.查看hive版本,为防止报错,先将hadoop/share/hadoop/common/lib中的guava文件复制粘贴到 hive/lib中并在将hive中lib中原有的guava文件删除。
[hadoop@master ~]$ cd hive
[hadoop@master ~]$ hive -version
如图示则成功,如需退出,在hive>后输入' exit; '
5.由于涉及到hive执行时有关数据存放路径,所以可以先去创建好目录
[hadoop@master hive]$ hdfs dfs -mkdir -p /home/hadoop/hive/warehouse
[hadoop@master hive]$ hdfs dfs -mkdir -p /tmp
[hadoop@master hive]$ hdfs dfs -chmod g+w /tmp
[hadoop@master hive]$ hdfs dfs -chmod g+w /home
[hadoop@master hive]$ hdfs dfs -chmod g+w /home/hadoop
[hadoop@master hive]$ hdfs dfs -chmod g+w /home/hadoop/hive
[hadoop@master hive]$ hdfs dfs -chmod g+w /home/hadoop/hive/warehouse
6.进入hive下的conf目录开始修改hive-env.sh和hive-site.xml文件,需要修改的配置文件模板拷贝并重命名即可
[hadoop@master hive]$ cd conf
[hadoop@master conf]$ ll
[hadoop@master conf]$ cp hive-env.sh.template hive-env.sh
[hadoop@master conf]$ cp hive-default.xml.template hive-site.xml
[hadoop@master hive]$ cd conf
[hadoop@master conf]$ ll
总用量 632
-rw-r--r--. 1 hadoop hadoop 1596 8月 23 2019 beeline-log4j2.properties.template
-rw-r--r--. 1 hadoop hadoop 300482 8月 23 2019 hive-default.xml.template
-rw-r--r--. 1 hadoop hadoop 2538 5月 26 00:33 hive-env.sh
-rw-r--r--. 1 hadoop hadoop 2365 8月 23 2019 hive-env.sh.template
-rw-r--r--. 1 hadoop hadoop 2274 8月 23 2019 hive-exec-log4j2.properties.template
-rw-r--r--. 1 hadoop hadoop 3086 8月 23 2019 hive-log4j2.properties.template
-rw-r--r--. 1 hadoop hadoop 300407 5月 26 00:44 hive-site.xml
-rw-r--r--. 1 hadoop hadoop 2060 8月 23 2019 ivysettings.xml
-rw-r--r--. 1 hadoop hadoop 3558 8月 23 2019 llap-cli-log4j2.properties.template
-rw-r--r--. 1 hadoop hadoop 7163 8月 23 2019 llap-daemon-log4j2.properties.template
-rw-r--r--. 1 hadoop hadoop 2662 8月 23 2019 parquet-logging.properties
[hadoop@master conf]$ vi hive-env.sh
在末尾加入一下代码即可
export HADOOP_HOME=/home/hadoop/mod/hadoop
export HIVE_CONF_DIR=/home/hadoop/mod/hive/conf
export JAVA_HOME=/home/hadoop/jdk
export HIVE_AUX_JARS_PATH=/home/hadoop/hive/lib
使用source命令使其更新生效:
[hadoop@master conf]$ source hive-env.sh
然后开始修改hive-site.sml,为了后续配置先在hive目录下创建一个log文件夹(注意:hive-site.xml配置完成后,不需使用source命令使其更新生效)配置我参照的是Hadoop之Hive简介与安装、测试
[hadoop@master conf]$ cd ..
[hadoop@master hive]$ mkdir log
[hadoop@master hive]$ cd conf
[hadoop@master conf]$ vi hive-site.xml
我们只需要查找所需修改的东西将对应位置进行更改就行了
查找方式:vi hive-site.xml执行后,直接输入:/hive.querylog.locatio
找到后,将<value> </value>中即框内写出刚才创建的log路径,其他的同理即可
7.初始化元数据库
[hadoop@master conf]$ cd ..
[hadoop@master hive]$ cd bin
[hadoop@master bin]$ ./schematool -dbType mysql -initSchema
出现以下情况则初始化成功:
8.hive测试使用
命令行输入hive,出现hive>命令行就表明启动成功了。
9.启动hiveserver2,在bin目录下输入./hiveserver2,启动hive服务:
hive默认web的端口为10002,此时在浏览器地址栏输入:ip:10002,就可以看到web监控页面,但我没成功,具体什么原因也不太清楚,但是之后少hive安装配置成功,可以使用了。
总结
如果有其他的方法,大家也可以分享一下。