Centos 7上安装MySQL 5.7.37(图文详解)
1. 下载、上传、解压软件包在Master上进行安装
下载Hive并上传到虚拟机上
http://mirror.bit.edu.cn/apache/hive/
解压
[root@master hive]# tar -zxvf apache-hive-1.2.2-bin.tar.gz
移动到规划好的文件夹下
[root@master hive]# tar -zxvf apache-hive-1.2.2-bin.tar.gz
bin:二进制命令文件
conf:配置文件
examples:示例
hcatalog:log日志
lib:文件库,运行时依赖的jar包
scripts:脚本文件
修改conf内hive-env.sh.template文件名
[root@master conf]# mv hive-env.sh.template hive-env.sh.template
修改hive-env.sh文件内容
[root@master conf]# vim hive-env.sh
在键盘上输入Go,其中G会跳到文件末尾,o会换行并进行插入编辑。
输入java、hadoop和Hive的安装路径、Hive的配置文件路径
export JAVA_HOME=/usr/local/src/jdk1.8.0_172 export HADOOP_HOME=/usr/local/src/hadoop-2.6.5 export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin export HIVE_CONF_DIR=/usr/local/src/apache-hive-2.3.3-bin/conf(2)配置hive-site.xml
创建hive-site.xml
[root@master conf]# touch hive-site.xml
修改文件内容
(3)增加环境变量javax.jdo.option.ConnectionURL jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 hive.metastore.warehouse.dir hdfs://master:9000/hive/warehouse hive.exec.scratchdir hdfs://master:9000/hive/tmp hive.querylog.location /usr/hive/log 设置hive job日志存储位置 hive.cli.print.header true 设置列名 hive.resultset.use.unique.column.names false 增加列名可读性 hive.support.concurrency true 是否支持并发,默认是false hive.compactor.initiator.on true 运行启动程序和清除线程,用于打开所需参数的完整列表事务 hive.compactor.worker.threads 1 增加工作线程的数量将减少花费的时间 hive.enforce.bucketing true 是否启用bucketing,写入table数据 hive.exec.dynamic.partition.mode nonstrict 设置动态分区模式为非严格模式
修改系统环境变量
[root@master conf]# vim ~/.bashrc
添加Hive路径
export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin
export PATH=$PATH:${HIVE_HOME}/bin
刷新环境变量使其生效
[root@master conf]# source ~/.bashrc3. 安装MySQL连接工具
将mysql-connector-java-5.1.44.tar下载好后上传至虚拟机
解压
[root@master src]# tar -xvf mysql-connector-java-5.1.44.tar
将解压后的文件移动到规划好的文件夹下
[root@master src]# mv mysql-connector-java-5.1.44 /usr/local/src
将mysql-connector-java-5.1.44里面的jar包复制到Hive的lib目录下
[root@master mysql-connector-java-5.1.44]# cp mysql-connector-java-5.1.44-bin.jar $HIVE_HOME/lib [root@master mysql-connector-java-5.1.44]# cd $HIVE_HOME/lib [root@master lib]# ls4. 启动Hive
Hive依赖Hadoop中的HDFS进行存储,依赖MySQL管理元数据。因此,我们需要等待Hadoop集群启动完成并退出安全模式后,才可以启动Hive。
(1)更改权限为root首先,在Master上将hadoop、jdk、hive的权限所有者都改为root
[root@master src]# chown -R root:root hadoop-2.6.5/ jdk1.8.0_172/
开启slave1和slave2,将hadoop、jdk改为root
[root@slave1 src]# chown -R root:root jdk1.8.0_172
Slave2同理
然后,启动Hadoop集群
[root@master hadoop-2.6.5]# sbin/start-all.sh
启动完成后,查看hadoop集群状态
[root@master hadoop-2.6.5]# hadoop dfsadmin -report
这个位置没有出现Safe model is ON,则已关闭安全模式,可以启动Hive。若有则说明正在开启安全模式,不能启动Hive,需要等待一会儿或者手动关闭安全模式。
命令 hadoop fs -safemode get 查看安全模式状态
命令 hadoop fs -safemode enter 进入安全模式状态
命令 hadoop fs -safemode leave 离开安全模式
Hadoop安全模式
(3)替换hadoop中的jar包由于hadoop 2.6.5和hive 1.2.2中的jline包版本不一致,因此需要替换。
删除hadoop-2.6.5/share/hadoop/yarn/lib中的jline-0.9.94.jar
[root@master apache-hive-1.2.2-bin]# rm $HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar
然后,将hive中的jline-2.12.jar放到hadoop-2.6.5/share/hadoop/yarn/lib使Hadoop和Hive里的jar版本保持一致。
[root@master apache-hive-1.2.2-bin]# cp lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib/(4)启动Hive
最后,进入到hive目录里开启hive
[root@master apache-hive-1.2.2-bin]# bin/hive
测试一下
hive> show databases;
若觉得太慢可以更改hive-site.xml中的内容来提升速度
退出Hive
hive> exit;
编辑conf/hive-site.xml
[root@master apache-hive-1.2.2-bin]# vim conf/hive-site.xml
将一部分内容注释掉
javax.jdo.option.ConnectionURL jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 hive.metastore.warehouse.dir hdfs://master:9000/hive/warehouse hive.exec.scratchdir hdfs://master:9000/hive/tmp hive.querylog.location /usr/hive/log 设置hive job日志存储位置 hive.cli.print.header true 设置列名 hive.resultset.use.unique.column.names false 增加列名可读性 hive.support.concurrency true 是否支持并发,默认是false hive.compactor.initiator.on true 运行启动程序和清除线程,用于打开所需参数的完整列表事务 hive.compactor.worker.threads 1 增加工作线程的数量将减少花费的时间 hive.enforce.bucketing true 是否启用bucketing,写入table数据 --> hive.exec.dynamic.partition.mode nonstrict 设置动态分区模式为非严格模式
将这部分内容注释掉,然后再启动Hive进行测试
性能提升了1s左右



