• Linux系统

  • Hadoop环境(2.7.4)

  • hive1.2.1安装包

  • MySQL两个安装包(第二个需要)

    mysql57-community-release-el7-10.noarch.rpm

    mysql-connector-java-5.1.47.tar.gz

简单安装Hive

安装环境

上传并解压

1
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /export/server

重命名Hive

1
mv apache-hive-1.2.1 hive1.2

配置环境变量

1
2
3
4
5
6
vi /etc/profile  #找不到命令解决方法:export PATH=/usr/sbin

export JAVA_HOME=/export/servers/jdk
export HADOOP_HOME=/export/servers/hadoop
export HIVE_HOME=/export/servers/hive1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

记得. /etc/porfile刷新配置文件

配置文件

进入hive1.2/conf的目录下

cp hive-env.sh.template hive-env.sh

vi hive-env.sh

修改HADOOP_HOME的路径

1
HADOOP_HOME=/export/servers/hadoop2.7

安装Hive(带MySQL)

安装Mysql(安装有就跳过这一步)

1、导入包mysql57-community-release-el7-10.noarch.rpm

1
yum -y install mysql57-community-release-el7-10.noarch.rpm

没有可用软件包 mysql57-community-release-el7-10.noarch.rpm。
错误:无须任何处理

请确认你的包在你安装的目录下

失败软件包 密钥配置为xxxxx的解决方法(可以先运行)

1
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2、安装MySQL服务器

1
yum -y install mysql-community-server

安装完成

3、启动mysql

1
2
systemctl start mysqld.service
systemctl status mysqld.service #查看状态

4、查看MySQL原始密码,登录Mysql(两个方法)

第一个方法(建议使用)

1
2
3
grep "password" /var/log/mysqld.log

mysql -uroot -p(root@localhost后显示的密码)

特殊符号就单引号即可

进入Mysql后修改密码

1
2
3
4
5
# 设置简单的密码,降低密码强度
set global validate_password_policy=0;
set global validate_password_length=1;
#设置密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

第二个方法

免密登录(建议不设置)

编辑 MySQL 配置文件:打开 MySQL 的配置文件 my.cnf(或 my.ini),通常位于 /etc/mysql/ 目录下。在 [mysqld] 部分添加以下行:

skip-grant-table

1
2
# 重启MySQL服务
sudo service mysql restart

5、开启访问限制,语句中“%”代表所有IP,如果只对特定的云主机开放,就在%的位置填上特定云主机的IP地址

1
2
3
4
5
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges; #刷新权限

quit;

6、设置开机启动

1
chkconfig mysqld on

安装环境

上传并解压

1
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /export/server

重命名Hive

1
mv apache-hive-1,2,1 hive1.2

配置环境变量

1
2
3
4
5
6
vi /etc/profile  #找不到命令解决方法:export PATH=/usr/sbin

export JAVA_HOME=/export/servers/jdk
export HADOOP_HOME=/export/servers/hadoop
export HIVE_HOME=/export/servers/hive1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

记得. /etc/porfile刷新配置文件

配置Mysql文件

解压mysql-connector-java-5.1.47.tar.gz

1
tar -zxvf mysql-connector-java-5.1.47.tar.gz

将该目录下的mysql-connector-java-5.1.47-bin.jar包放到hive/lib的目录下

cd mysql-connector-java-5.1.47

1
mv mysql-connector-java-5.1.47-bin.jar /export/servers/hive/lib/

cd ..回到上级目录可以将rm -rf mysql-connector-java-5.1.47删掉

配置文件(五个)

将工作目录移到hive2.1/conf目录下,复制hive中conf目录下的初始文件作为配置文件,命令行为:

1
2
3
4
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec.log4j2.properties

vi hive-env.sh

修改HADOOP_HOME的路径

1
HADOOP_HOME=/export/servers/hadoop2.7

修改hive-site.xml的配置文件中的参数,使其连接到mysql数据库,具体参数配置如下:

localhost改成自己的主机名
注意:下面ConnectionUserName和ConnectionPassword需要更加mysql中自己设置的用户名和密码,我这里的用户名为root,密码为123456。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;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>123456</value>
</property>

修改hive-site.xml配置文件中的配置参数,将{system:java.io.tmpdir}/&{system:user.name} 改成 /tmp/hive,有如下属性需要修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<property>
  <name>hive.exec.local.scratchdir</name>
    <value>/tmp/hive</value>
    <description>Local scratch space for Hive jobs</description>
</property>
<property>
   <name>hive.querylog.location</name>
    <value>/tmp/hive</value>
    <description>Location of Hive run time structured log file</description>
 </property>
<property>
   <name>hive.downloaded.resources.dir</name>
    <value>/tmp/hive</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
 </property>

在hive2.1/bin目录下使用schematool -dbType mysql -initSchema命令初始化hive

看到提示schemaTool completed,即初始化hive成功

看到schemaTool failed则为失败

使用mysql -uroot -p123456,命令重新登录MySQL,并在MySQL中使用create database hive;语句新建hive数据库,使用show databases;语句验证数据库是否创建成功,可查询到即创建成功。

Hive Shell命令的使用

Hive的启动和关闭

先启动hdfs,再启动hive

start-dfs.sh再到hive1.2的目录下启动hive

1
bin/hive

退出

1
quit;

使用方法同MySQL语法

新建用户表并用txt文件导入数据

1
create t_user(id int,name string) row format delimited fields terminated by ' ' lines terminated by '\n';

上传txt文件到主机并加载数据到Hive表的t_user中

1
load data local inpath 'Linux的目标文件路径' overwrite into table t_users;

如果是把该文件上传到hdfs中,再加载到hive表的t_user中

先把文件上传到hdfs上

1
hadoop fs -put Linux的目标文件路径 /tmp

再加载数据

1
load data inpath '/tmp/t_users.txt' overwrite into table t_users;

通过select命令查看t_users表,看数据是否加载成功

该文章Mec所著,如有错误请联系作者邮箱更改