Hive的安装和配置
Hadoop的安装和配置可见:Hadoop集群搭建-完全分布式
Mysql安装
# 先卸载系统自带
rpm -qa | grep mysql | xargs -e --nodeps
# (如果是centos7需要卸载mariadb相关组件)
rpm -qa | grep mariadb | xargs -e --nodeps
# 分别安装mysql服务和客户端
rpm -ivh Mysql-server.rpm
rpm -ivh Mysql-client.rpm
# 将mysql连接java的jar包放到lib目录下
cp mysql-connector-java.jar hive/lib
# 启动服务
service mysql start
# 查看状态
service mysql status
# 获取root默认密码
cat /root/.mysql_secret
# 进入客户端
mysql -uroot -p
Mysql配置
-- 修改密码
set password=password('123456');
-- 修改使任意主机可访问
use mysql;
select user,host,password from user;
update user set host='%' where host='localhost';
delete from user where host='127.0.0.1';
delete from user where host='(主机名)';
delete from user where host='::1';
-- 修改完成后在mysql中刷新
flush privileges;
-- 或者在终端重启mysql服务
service mysql restart;
hive-site.xml配置
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.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>123456</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>配置自动显示表头</description>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>配置显示当前数据库</description>
</property>
</configuration>
配置Hive日志存放位置
# 重命名以下文件
mv hive-log4j.properties.template hive-log4j.properties
# 编辑
vim hive-log4j.properties
# 修改如下的参数
hive.log.dir=/opt/module/hive/logs
配置本次启动时的配置(仅对本次启动的hive有效)
配置优先级: 参数声明(set) > 命令行参数(-hiveconf) > 配置文件(hive-site.xml)
# 启动时添加参数配置: -hiveconf param=value
bin/hive -hiveconf mapreduce.reduce.tasks=10
# 或在启动后使用SET关键字配置
set mapreduce.reduce.tasks=10;
# 查看参数设置
set mapreduce.reduce.tasks;
启动
# 先启动hadoop
start-dfs.sh
start-yarn.sh
# 进入Hive客户端
bin/hive
# 不进入Hive客户端,直接执行sql语句
bin/hive -e "show databases;"
# 不进入Hive客户端,执行指定脚本中的sql语句
bin/hive -f /opt/datas/hive.sql
一些问题
-
启动时报错:Found class jline.Terminal, but interface was expected
解决方案:用hive/lib下的jline替换掉hadoop的jline
rm -f /opt/module/hadoop-2.6.0/share/hadoop/yarn/lib/jline-0.9.94.jar cp /opt/module/hive/lib/jline-2.12.jar /opt/module/hadoop-2.6.0/share/hadoop/yarn/lib/