Hive的安装需要有Hadoop、MySQL以及Java的支持,其中hadoop用于存储数据,而mysql用户存储Hive的metastore(元信息)。
主要记录一下Hadoop以及Hive的安装,Java和MySQL的安装就不赘述了,网上很多。
安装的服务器版本:CentOS7.8
安装运行中遇到的异常归纳到此处:Hive学习(一)附:Hive安装运行常见异常
Hadoop安装(单节点)
安装
下载:https://hadoop.apache.org/releases.html
将本地的Hadoop压缩包上传到服务器root目录下
scp ~/Downloads/hadoop-3.2.2.tar.gz root@192.168.0.1:/root
解压到自定义目录里
tar -zvxf hadoop-3.2.2.tar.gz -C /root/demo-apps
设置环境变量 vim ~/.bash_profile 填入以下环境变量
export HADOOP_HOME=/root/demo-apps/hadoop-3.2.2
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
保存文件,然后执行 source ~/.bash_profile 使环境变量生效
配置
打开配置文件目录
cd /root/demo-apps/hadoop-3.2.2/etc/hadoop/
需要修改以下五个文件
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
hadoop-env.sh配置
为了使hadoop正常使用环境中的java运行,将JAVA_HOME的值设置进去
core-site.xml配置
将以下配置复制到<configuration>标签下
- fs.default.name:单节点使用,namenode的地址
- hadoop.tmp.dir:临时文件地址
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/demo-apps/hadoop-data</value>
</property>
hdfs-site.xml配置
将以下配置复制到<configuration>标签下
- dfs.namenode.name.dir:namenode数据存放目录
- dfs.datanode.data.dir:datanode数据存放目录
-
dfs.replication:分片数量
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/demo-apps/hadoop-data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/demo-apps/hadoop-data/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
yarn-site.xml配置
将以下配置复制到<configuration>标签下
- yarn.nodemanager.aux-services:yarn为mapreduce提供的shuffle服务
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
mapred-site.xml配置
将以下配置复制到<configuration>标签下
- mapreduce.framework.name:指定mapreduce框架为yarn
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
验证安装
依次执行下面的命令,若都能正常结束,则代表安装成功
hdfs namenode -format
start-dfs.sh
start-yarn.sh
Hive安装
安装
下载:https://hive.apache.org/downloads.html
将本地的Hadoop压缩包上传到服务器root目录下
scp ~/Downloads/apache-hive-2.3.9-bin.tar.gz root@192.168.0.1:/root
解压到自定义目录里
tar -zvxf apache-hive-2.3.9-bin.tar.gz -C /root/demo-apps
设置环境变量 vim ~/.bash_profile 填入以下环境变量
export HIVE_HOME=/root/demo-apps/apache-hive-2.3.9-bin
export PATH=$PATH:$HIVE_HOME/bin
保存文件,然后执行 source ~/.bash_profile 使环境变量生效
配置
打开Hive配置目录,并创建配置文件进行编辑
cd /root/demo-apps/apache-hive-2.3.9-bin/conf/
touch hive-site.xml
vim hive-site.xml
填入以下内容,是连接数据库的信息
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</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>
</configuration>
将MySQL的连接jar包拷贝至Hive的lib目录下(/root/demo-apps/apache-hive-2.3.9-bin/lib)
如果是8.0+的mysql连接jar包,上方配置的驱动应该是com.mysql.cj.jdbc.Driver
验证
初始化Hive元信息,若出现 schemaTool completed 则代表成功,此时MySQL数据库中也会出现相应的表
schematool -dbType mysql -initSchema
执行 “hive”,能够顺利进入hive命令行则大功告成