1.装置前提
1.曾经装置好Mysql,并且设置MySQL的服务是开机自启的。
# Centos中MySQL服务的启动、敞开与重启systemctl status mysqld.servicesystemctl stop mysqld.servicesystemctl start mysqld.service
2.MySQL连贯信息:
用户名:root
明码:1234563.Hive是依赖Hadoop平台的,所以在初始化hive的时候须要启动Hadoop平台
4.应用xftp将hive的软件包上传到/root目录下
2.解压
# 进入root目录下cd /root# 解压tar -zxvf apache-hive-2.3.4-bin.tar.gz # 为了不便之后的操作,进行改名mv apache-hive-2.3.4-bin hive# 将解压之后的文件挪动到/usr/local目录mv hive /usr/local
3.配置环境变量
# 更改零碎的环境变量文件vi /etc/profile# 追加以下内容export HIVE_HOME=/usr/local/hiveexport PATH=$PATH:$HIVE_HOME/bin# 批改之后肯定要使配置文件失效source /etc/profile
4.启动hdfs
start-dfs.sh
5.拷贝Mysql的连贯驱动拷贝到hive装置目录的lib目录下
# 在其余的环境中须要依据本人实际上传的门路cp mysql-connector-java-5.1.47-bin.jar /usr/local/hive/lib/
6.批改配置文件: hive-site.xml
# 进入hive的配置文件目录cd /usr/local/hive/confvi hive-site.xml
<!-- 小技巧,能够复制hive-default.xml.template中的文件头,并且启动的配置项也能够应用含糊搜寻去匹配--><?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false</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> <!-- 打印表头信息,不指定字段时,显示"表名.字段" --> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <!-- 打印数据库信息--> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <!-- 解决hive报错FAILED: SemanticException Cartesian products are disabled for safety的问题 开启hive shell模式 --> <property> <name>hive.mapred.mode</name> <value>nonstrict</value> </property> <property> <name>hive.strict.checks.cartesian.product</name> <value>false</value> </property> <!--配置hiveserver2的服务 --> <property> <name>hive.server2.thrift.bind.host</name> <value>master</value> </property></configuration>
7.批改配置文件:hive-env.sh
- 进入到Hive的装置目录下的conf文件夹中
[root@master soft]$ cd /usr/local/hive/conf
- 重命名hive-env.sh.template
[root@master conf]$ mv hive-env.sh.template hive-env.sh
- 批改hive-env.sh
[root@master conf]$ vi hive-env.sh
- 如下,批改此文件中HADOOP_HOME、HIVE_CONF_DIR的值(依据本人机器的理论状况配置)
# 间接在最初追加即可# 配置 HADOOP_HOME 的门路export HADOOP_HOME=/usr/local/hadoop# 配置 HIVE_CONF_DIR 的门路export HIVE_CONF_DIR=/usr/local/hive/conf
8.批改配置文件:hive-log4j.properties
- 创立hive日志存储目录
[root@master hive]$ mkdir -p /usr/local/hive/logs/
- 重命名生成文件hive-log4j.properties
[root@master opt]# cd /usr/local/hive/conf/[root@master conf]$ pwd/usr/local/hive/conf[root@master conf]$ mv hive-log4j.properties.template hive-log4j.properties[root@master conf]$ vi hive-log4j.properties # 批改文件
- 批改此文件的hive.log.dir属性的值
#更改以下内容,设置咱们的hive的日志文件寄存的门路,便于排查问题hive.log.dir=/usr/local/hive/logs/
9.初始化hive
如果始终初始化失败,能够查看你以后是否在之前的时候曾经初始化了一次,在MySQL中生成了元数据信息,能够尝试先把元数据仓库删除,再去初始化。
schematool -dbType mysql -initSchema
10.启动hive
留神:启动Hive命令行之前的时候须要先启动Hadoop集群;
hive-cli命令行测试
进入hive-cli命令行
hive# 可选操作,因为在之前的配置文件中曾经指定了export HADOOP_HOME=/usr/local/hadoopexport HIVE_CONF_DIR=/usr/local/hive/conf
查看以后有那些数据库
show databases;
退出hive-cli命令行
quit;
应用beeline测试连贯
启动hiveserver2服务,此时又分为两种
前台启动
[hadoop@node03 ~]$ hive --service hiveserver2
后盾启动
命令解析:
0:nohub 示意程序在后盾运行
1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
2:/dev/null 代表空设施文件(黑洞)。
3:2> 示意stderr规范谬误
4:& 示意等同于的意思,2>&1,示意2的输入重定向等同于1
5:1 示意stdout规范输入,零碎默认值是1,所以">/dev/null"等同于 "1>/dev/null"
6:& 在最初示意指定过程始终在后盾运行[hadoop@node03 ~]$ nohup hive --service hiveserver2 > /dev/null 2>&1 &
beeline连贯hiveserver2服务;
若是前台启动hiveserver2,请再开启一个新会话窗口,而后应用beeline连贯hive;
此时用户名为hadoop,明码为空即可:[hadoop@node03 hive]$ bin/beeline --color=truebeeline> !connect jdbc:hive2://master:10000
帮忙信息
0: jdbc:hive2://master:10000> help
退出
0: jdbc:hive2://master:10000> !quit