《美国往事》里有句台词说:"当我对世事厌倦的时候,我就会想到你。想到你在世界的某个地方生活着,存在着,我就愿意忍受一切。你的存在对我来说,很重要。
安装hive之前,请完成: [post cid="3" /] [post cid="7" /]
hdfs的启动
不推荐mysql8,因为hive版本较旧
在大多数的文章中,都是用cp hive-default.xml.template hive-site.xml的方式来配置hive-site.xml 我认为很不科学,因为这个文件有上万行,改动起来很麻烦,所以换了一种赋值方式
下载、配置Hive
下载
wget https://mirrors.aliyun.com/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
安装Hive,并设置环境变量
# 解压Hive 到安装目录/usr/local/
tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /usr/local/
# 编辑profile文件 配置Hive环境变量
vim /etc/profile
# 配置的内容
# Hive
export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH
# 记得source一下,使其生效
source /etc/profile
cd /usr/local/apache-hive-1.2.2-bin/conf
mv hive-default.xml.template hive-default.xml
# 基于模板创建hive-env.sh
cp hive-env.sh.template hive-env.sh
cd /usr/local/apache-hive-1.2.2-bin/conf
vim hive-site.xml
添加如下内容
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
</configuration>
根据 hive-site.xml 中的上述的两条配置内容,我们需要在hadoop中建立两个目录:
# 在hdfs中建立/user/hive/warehouse并设置权限
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod -R 777 /user/hive/warehouse
# 在hdfs中建立/tmp/hive/并设置权限
hadoop fs -mkdir -p /tmp/hive/
hadoop fs -chmod -R 777 /tmp/hive
通过浏览器查看公网ip:50070端口(Hadoop3.x.y端口为9870),查看HDFS是否存在新建的目录
JAVA.IO的临时目录,我将其设定为hive路径下的tmp目录中,因为tmp不存在所以需要新建tmp
# 进入到hive的安装目录
cd /usr/local/apache-hive-1.2.2-bin
mkdir tmp
chmod -R 777 tmp/
设置system:java.io.tmpdir
在hive-site.xml继续添加如下:
<property>
<name>java.io.tmpdir</name>
<value>/usr/local/apache-hive-1.2.2-bin/tmp</value>
</property>
<property>
<name>user.name</name>
<value>root</value>
</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.ConnectionURL</name>
<value>jdbc:mysql://换成你的mysql主机IP地址:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>上面的root为MySQL数据库登录名</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>上面的123456为MySQL数据库密码</description>
</property>
javax.jdo.option.ConnectionDriverName 对应的value修改为MySQL驱动类路径 注:此处使用的jdbc版本是mysql-connector-java-5.1.39-bin.jar,如果你的版本是8或者更高,请加入预处理。 即,将com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver
hive-env.sh配置文件
在hive的conf目录下,打开配置文件
vim hive-env.sh
配置HIVE_AUX_JARS_PATH, HIVE_CONF_DIR, HADOOP_HOME 在已有的基础上修改如下:
#Folder containing extra libraries required for hive compilation/execution can be controlled by:
#export HIVE_AUX_JARS_PATH=
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-1.2.2-bin/lib
#Hive Configuration Directory can be controlled by:
#export HIVE_CONF_DIR=
export HIVE_CONF_DIR=/usr/local/apache-hive-1.2.2-bin/conf
#Set HADOOP_HOME to point to a specific hadoop install directory
#HADOOP_HOME=${bin}/../../hadoop
export HADOOP_HOME=/usr/local/hadoop
下载jdbc驱动
wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
tar -zxvf mysql-connector-java-5.1.48.tar.gz #解压
cp mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar /usr/local/hive/lib
#将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下
初始化mysql的hive数据库
#对数据库进行初始化
schematool -initSchema -dbType mysql
#启动
hive
建库
hive>create database test;
web查看
Hive 通过 SQL 查询语句实现 wordcount
aa
aaa
aa
滴!访客卡!请上车的乘客系好安全带,现在是:Sat Apr 18 2020 15:22:05 GMT+0800 (中国标准时间)