Hive学习(二)-----Hive两种搭建方式
1.mysql安装
1.1 yum安装mysql
#yum install mysql-server -y
注意:不是mysql,二是mysql-server。mysql为客户端
1.2启动mysql服务
#service mysqld start
不启动会报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
1.3进入MySQL
#mysql
1.4修改权限
#show databases;
#use mysql;
#show tables;
#select Host,User,Password from user;
#GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
#flush privileges; // 刷新权限
2.Hive-----Remote Metastore Database搭建
hive配置官网:https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
node01为mysql服务器
node02为hive服务器
2.1解压
#tar -xf hive.tar.gz -C path
2.2配置环境变量
配置环境变量后,别忘了重新运行配置文件
#. /etc/profile
2.3 配置hive-site.xml
1.先把conf/ 下的hive-default.xml-templte 改名为hive-site.xml
2.打开hive-site.xml配置属性
<configuration>
//配置数据存储在hdfs中的路径
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
//需要连接数据库的地址
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value>
</property>
//驱动包
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
//连接数据的username
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
//连接数据库的password
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
</configuration>
2.4 启动hive
hive 需要依赖hdfs,所以需要首先启动hdfs集群。
启动hive
#hive
2.5 启动报错
1.需要把驱动包导入到hive/lib/目录下
2.[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
问题原因:hive/lib/下的jline-2.12.jarl包与/opt/hadoop-2.6.5/share/hadoop/yarn/lib下的包版本不一致
解决方法:把hive/lib的那个jline包拷贝到hadop下
3.hive–Remote Metastore Server搭建
node01—mysql
node03----metastore server
node04----hive
node01 mysql配置不变
node03 和node04配置和emote Metastore Database的客户端一样
修改node03服务端的hive-site.xml配置:
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true</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>
</configuration>
修改node04客户端的hive-site.xml配置
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.57.5:9083</value>
</property>
</configuration>
启动hive服务端程序
hive --service metastore
客户端直接使用hive命令即可
root@my188:~$ hive
Hive history file=/tmp/root/hive_job_log_root_201301301416_955801255.txt
hive> show tables;
OK
test_hive
Time taken: 0.736 seconds
hive>