1. 下载
wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.15.1.tar.gz
2.解压
tar -zxvf hive-1.1.0-cdh5.15.1.tar.gz
3. hive的元数据(如表名,列名等)存放在RDBMS,安装mysql 也可以是mariadb
安装命令
yum -y install mariadb mariadb-server
安装完成MariaDB,首先启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
接下来进行MariaDB的相关简单配置
mysql_secure_installation
首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成,接下来测试登录
mysql -uroot -p
能进入mysql,完成mariadb的安装
4. 设置hive
(1) nano /etc/profile
export HIVE_HOME=/home/linbin/software/hive-1.1.0-cdh5.15.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin
(2) nano /home/linbin/software/hive-1.1.0-cdh5.15.1/conf/hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://centos7:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
<description>password to use against metastore database</description>
</property>
</configuration>
5. 初始化hive
[root@centos7 linbin]# schematool -dbType mysql -initSchema -servers hdfs://centos7:8020
初始化时,我遇到两个状况,首先是没有mysql jdbc 驱动程序
下载或安装 或直接复制 mysql-connector-java-8.0.13.jar 到hiveXX/lib 目录
另外是遇到错误 org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version
是权限问题 在mysql数据库执行 GRANT ALL ON *.* to 'root'@'centos7' IDENTIFIED BY '123';
重启 systemctl restart mariadb
再运行# schematool -dbType mysql -initSchema -servers hdfs://centos7:8020 即可初始化成功
6. 可以开始使用hive了
(1)建表
> create table fz
> (id int,name string,age int,tel string)
> ROW FORMAT DELIMITED
> FIELDS TERMINATED BY ','
> STORED AS TEXTFILE;
(2)装入数据
load data local inpath '/root/fz.txt' into table fz;
(3)查询
hive> select * from fz;
OK
1 fz 25 131888888888
2 test 20 13222222222
3 dx 24 183938384983
Time taken: 0.451 seconds, Fetched: 3 row(s)
-------------------------------------------------------------------------
7.hive 常用命令参考
https://blog.csdn.net/ddydavie/article/details/80667727 Hive入门及常用指令