apt-get install mysql-server
hive资源:http://archive.apache.org/dist/hive/hive-2.3.4/
进入配置文件:vim ~/.profile
在最后加上hive的环境配置:
export HIVE_HOME=/home/hadoop/apache-hive-2.3.4-bin
export PATH= P A T H : PATH: PATH:HIVE_HOME/bin
保存退出,重启环境配置:
source ~/.profile
(1)进入hive文件夹下的conf目录下,对需要的.template文件拷贝改名:
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
(2)修改hive-env.sh文件,在末尾指定hadoop安装路径:
##Java路径
export JAVA_HOME=/home/hadoop/jdk1.8.0_181
##Hadoop安装路径
export HADOOP_HOME=/home/hadoop/hadoop-2.7.2
##Hive安装路径
export HIVE_HOME=/home/hadoop/apache-hive-2.3.4-bin
##Hive
export HIVE_CONF_DIR=/home/hadoop/apache-hive-2.3.4-bin/conf
(3)修改hive-site.xml文件
把所有的${system:java.io.tmpdir} 都替换为/usr/local/hive/tmp
注意:所有的“/”都要添加转义符号,改为“\/”,即:
:%s/${system:java.io.tmpdir}/\/usr\/local\/hive\/tmp/g
把所有的${system:user.name}替换为${user.name}
:%s/${system:user.name}/${user.name}/g
修改文件中以下name的value:
<property>
<name>hive.exec.scratchdirname>
<value>/user/hive/tmpvalue>
property>
<property>
<name>hive.metastore.warehouse.dirname>
<value>/user/hive/warehousevalue>
property>
<property>
<name>hive.querylog.locationname>
<value>/user/hive/logvalue>
property>
<property>
<name>javax.jdo.option.ConnectionURLname>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=falsevalue>
property>
<property>
<name>javax.jdo.option.ConnectionDriverNamename>
<value>com.mysql.jdbc.Drivervalue>
property>
<property>
<name>javax.jdo.option.ConnectionUserNamename>
<value>hivevalue>
property>
<property>
<name>javax.jdo.option.ConnectionPasswordname>
<value>hivevalue>
property>
保存退出
mkdir -p /usr/local/hive/tmp
chown -R hadoop:hadoop /usr/local/hive/tmp
(1)重置mysql密码(如果之前安装时没有提示输入密码的话):
$ mysql -u root
登录时有可能报这样的错:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
$ sudo chown -R hadoop:hadoop /var/lib/mysql
(2)重启mysql服务(root权限下)
$ service mysqld restart 或者/etc/init.d/mysql restart
(3)登录重置
$ mysql -u root //直接回车进入mysql控制台
mysql > use mysql;
mysql > update user set password=password(‘123456’) where user=‘root’;
mysql > exit;
注意:新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update user set password=password(‘root’) where user='root’时提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’,原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,所以更改语句替换为 update user set authentication_string=password(‘root’) where user=‘root’ ;
(4)建hive数据库,名hive密码hive,设置权限
mysql> CREATE DATABASE hive;
mysql> USE hive;
mysql> CREATE USER ‘hive’@‘localhost’ IDENTIFIED BY ‘hive’;
mysql> GRANT ALL ON hive.* TO ‘hive’@‘localhost’ IDENTIFIED BY ‘hive’;
mysql> GRANT ALL ON hive.* TO ‘hive’@’%’ IDENTIFIED BY ‘hive’;
mysql> FLUSH PRIVILEGES;
mysql> quit;
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod g+w /user/hive/tmp
hadoop fs -chmod -R 777 /user/hive/tmp
hdfs dfs -chmod g+w /user/hive/log
schematool -dbType mysql -initSchema
运行hive之前首先要确保meta store服务已经启动,
nohup hive --service metastore > metastore.log 2>&1 &
如果需要用到远程客户端(比如 Tableau)连接到hive数据库,还需要启动hive service
nohup hive --service hiveserver2 > hiveserver2.log 2>&1 &
然后由于配置过环境变量,可以直接在命令行中输入hive