Hive搭建指南 环境CentOS7

这里Hadoop的版本用的是 2.7.5
hive版本选择的是 2.3.4
请看好与hadoop版本搭配的hive,官方目前继续提供2.x和3.x的支持。
机器依然是hadoop的:

192.168.20.3 Master
192.168.20.4 Slave1
192.168.20.5 Slave2

关于hadoop搭建请看:https://www.jianshu.com/p/25a0650b4a40https://www.jianshu.com/p/bcb2f77d90e8

首先要说明一下:hive的搭建除了hadoop之外还有mysql,所以这边先简单说一下centos下关于mysql的安装。

1.MYSQL的准备

1.首先卸载CentOs自带的mysql
执行rpm -qa | grep mysql选择出现的机器上自带的mysql
执行rpm -e 机器上mysql的名字 --nodeps
执行yum -y install mysql-server安装新的
如果此时提示 mysql-server没有可用包,分别执行:

yum -y install wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server

执行service mysqld start开启服务,然后执行service mysqld status看到开启了,继续接下来的步骤:
执行cd /usr/bin去目录下执行命令./mysql_secure_installation
因为第一次启动密码为空,所以回车就可以,然后会要求设置密码
后面会进行初始化设置:
1.是否删除匿名用户

Remove anonymous users? [Y/n] Y
... Success!

2.是否不允许用户远程连接

Disallow root login remotely? [Y/n] N
... Success!

3.是否删除test数据库

Remove test database and access to it? [Y/n] Y
 Dropping test database...
... Success!
 Removing privileges on test database...
... Success!

4.是否重装

Reload privilege tables now? [Y/n] Y
... Success!

然后就完成了。我们登录mysql
mysql -uroot -p
分别执行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;

FLUSH PRIVILEGES;

exit;

mysql配置就完成了!

2.接下来就是Hive的时间了

我们去官网下载一个hive,注意版本!
然后放到文件夹下,这边路径是 /opt/soft
此时文件的所有者是root,可以修改一下
分别是:
chgrp 用户名 文件名 -R更改文件所属用户组
chown 用户名 文件名 -R 更改文件所属用户

去/etc/profile配置环境变量

export HIVE_HOME=/opt/soft/hive-2.3.4
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export PATH=$PATH:$HIVE_HOME/bin

执行source /etc/profile
1.hive-env.sh
增加以下:

JAVA_HOME=/opt/java/jdk1.8.0_201
HADOOP_HOME=/opt/soft/hadoop-2.7.1
HIVE_HOME=/opt/soft/hive-2.3.4

export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$HADOOP_HOME/lib:$HIVE_HOME/lib
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib

接下来就是编辑hive的配置文件了,这个是最费劲的!建议多使用vim的查找功能 也就是 Esc键之后 "/"键 写单词再回车!N是前一个单词,n是后一个单词。
在这之前先去hive的目录创建四个文件夹分别是:warehouse、log、tmp/resources、tmp/hiveJobsLog
2.hive-site.xml
首先要把hive-default.xml.template文件名字改成hive-site.xml

<!-- 设定数据目录 -->
<property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/opt/soft/hive-2.3.4/warehouse</value>
</property>
<!-- 设定临时文件目录 -->
<property>
      <name>hive.downloaded.resources.dir</name>
      <value>/opt/soft/hive-2.3.4/tmp/resources</value>
</property>
<!-- 存放hive相关日志的目录 -->
<property>
      <name>hive.querylog.location</name>
      <value>/opt/soft/hive-2.3.4/log</value>
</property>
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/soft/hive-2.3.4/tmp/hiveJobsLog</value>
    <description>Local scratch space for Hive jobs</description>
</property>

这时候先保存一下让我们缓一缓~上面是关于日志和资源文件的修改。然后在hdfs上创建相同的目录
依次执行:

hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/warehouse
hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/tmp/resources
hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/tmp/hiveJobsLog
hdfs dfs -mkdir -p /opt/soft/hive-2.3.4/log

hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/warehouse
hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/tmp/resources
hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/tmp/hiveJobsLog
hdfs dfs -chmod g+w /opt/soft/hive-2.3.4/log

接下来我们去修改其他关于mysql的配置。
依然是 hive-site.xml

<!-- 这四个参数设置连接mysql -->
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://Master:3306/hive_metadata?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>root</value>
    <description>password to use against metastore database</description>
</property>

<!-- 自动分区 -->
<property>
    <name>hive.exec.dynamic.partition</name>
    <value>true</value>
 </property>
<property>
    <name>hive.exec.dynamic.partition.mode</name>
    <value>nonstrict</value>
 </property>
 <!-- 这里注意一下,如果meta元数据在远程的话可以在这里进行配置,如果在本地就不需要,这边mysql在Master上,所以不需要配置 -->
 <property>
    <name>hive.metastore.uris</name>
    <value/>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  </property>
 <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>Master</value>
    <description>Bind host on which to run the HiveServer2 Thrift service.</description>
  </property>
 <property>
    <name>hive.server2.metrics.enabled</name>
    <value>false</value>
    <description>Enable metrics on the HiveServer2.</description>
  </property>
  <property>
    <name>hive.server2.thrift.http.port</name>
    <value>10001</value>
    <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'http'</description>
 </property>
<!-- HiveServer2的WEB UI -->
<property>
    <name>hive.server2.webui.host</name>
    <value>Master</value>
</property>
<property>
    <name>hive.server2.webui.port</name>
    <value>10002</value>
</property>
<property>
    <name>hive.scratch.dir.permission</name>
    <value>755</value>
</property>

终于!!!!终于改好了!!!还不知道对不对,是在太多了!

3.接下来是 配置日志的地址, 修改hive-log4j.properties文件
cp hive-log4j.properties.template hive-log4j.properties
vi hive-log4j.properties

hive.log.dir=/opt/soft/hive-2.3.4/log4jFile

要先去创建文件夹哦!!!

4.然后拷贝一个JDBC包也就是mysql的连接包到hive的lib目录下
由于我是用虚拟机,所以可以这么弄。。。

cp /mnt/hgfs/shareOS/mysql-connector-java-5.1.6.jar /opt/soft/hive-2.3.4/lib/
  1. 拷贝jline扩展包
    $HIVE_HOME/lib目录下的jline-2.12.jar包拷贝到$HADOOP_HOME/share/hadoop/yarn/lib目录下
    如果hadoop那个lib里有旧版本,就先把旧版本干掉!
    他是个java命令行交互输入库。
cp /opt/soft/hive-2.3.4/lib/jline-2.12.jar /opt/soft/hadoop-2.7.1/share/hadoop/yarn/lib/

6.拷贝tools.jar包
复制$JAVA_HOME/lib目录下的tools.jar到$HIVE_HOME/lib

cp $JAVA_HOME/lib/tools.jar /opt/soft/hive-2.3.4/lib/
  1. 执行初始化Hive操作
    现在有两个选择用MySql或者Derby,我们选择mysql,当然把Derby的粘贴出来一下。
    mysql : schematool -dbType mysql -initSchema
    Derby: schematool -dbType mysql -initSchema
    mysql主要是用mysql做存储hive元数据的数据库,我们配置里已经写好了hive_metadata

#现在!!!!终于要使用了!!!!
1.开启metastore
nohup hive --service metastore 2>&1 &
2.开启hiveserver2
nohup hive --service hiveserver2 2>&1 &

ok!!启动完之后看一下jps会多出两个Runjar
然后去看一下 http://192.168.20.3:10002/
hiveServer2
发现ui可以的。
执行hive
hive操作
这里使用了show databases;查看了一下数据库,发现有个default,可以
use default;
show tables;
之类的命令,这里不多提了,sql也不在这里赘述了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值