hadoop下Hive的嵌入模式和本地模式安装

版本情况:

apache-hive-1.2.1-bin.tar
mysql-connector-java-5.1.40.tar
ubuntu 16.04
相关软件网盘链接
链接:https://pan.baidu.com/s/15z2WOY_LHe4R7WdXjgq3dA
提取码:0830
–来自百度网盘超级会员V1的分享

一、Hive的嵌入模式安装

默认Hive利用内置的derby数据库进行元数据存储,但derby仅支持单例访问,无法满足实际应用需求。
不需要MySQL的支持,使用Hive的自带的数据库Derby
局限:只支持一个连接

解压安装包

sudo tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local
sudo mv apache-hive-2.3.6-bin hive       # 将文件夹名改为hive
sudo chown -R root:root hive          # 修改文件权限

注意,上面的root:root是用户组和用户名,即当前操作Linux系统的用户名,请根据自己使用的用户名修改。

1)为了方便使用,我们把hive命令加入到环境变量中去,请使用vim编辑器打开/etc/profile文件,命令如下:

1.	sudo vim /etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=/app/hadoop2.7		//之前如果已经配置了HADOOP_HOME,这里就不用再配置了

HADOOP_HOME需要被配置成你机器上Hadoop的安装路径,比如这里是安装在/app/hadoop-2.7目录
保存退出后,运行如下命令使配置立即生效:

	source /etc/profile

初始化Derby数据库

Hive2.1版本以后,默认不初始化内置的Derby数据库作为元数据,需要手动初始化,初始化的命令如下:
schematool -dbType derby -initSchema

启动hive
1)hive的数据存储在hdfs上的,必须先启动hadoop

start-dfs.sh
start-yarn.sh

2)在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
创建目录:

hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse

修改权限:

hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

3)启动hive

hive

在这里插入图片描述
进入hive shell,输入下面命令:
hive> show databases;
OK
default
Time taken: 4.449 seconds, Fetched: 1 row(s)
安装成功

原因分析:

提示:这里填写问题的分析:

例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。


二、Hive的本地模式安装

解压安装包

sudo tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local
sudo mv apache-hive-2.3.6-bin hive       # 将文件夹名改为hive
sudo chown -R root:root hive          # 修改文件权限

注意,上面的root:root是用户组和用户名,即当前操作Linux系统的用户名,请根据自己使用的用户名修改。

1)为了方便使用,我们把hive命令加入到环境变量中去,请使用vim编辑器打开/etc/profile文件,命令如下:

1.	sudo vim /etc/profile
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=/app/hadoop2.7		//之前如果已经配置了HADOOP_HOME,这里就不用再配置了

HADOOP_HOME需要被配置成你机器上Hadoop的安装路径,比如这里是安装在/app/hadoop-2.7目录
保存退出后,运行如下命令使配置立即生效:

	source /etc/profile

2)修改hive-env.sh,添加环境变量

cd /usr/local/hive/conf
	sudo cp hive-env.sh.template hive-env.sh
	sudo vim hive-env.sh

添加内容

export HADOOP_HOME=/app/hadoop-2.7
export HIVE_CONF_DIR=/usr/local/hive/conf

应用一下

source hive-env.sh
3. 修改/usr/local/hive/conf下的hive-site.xml

cd /usr/local/hive/conf
sudo mv hive-default.xml.template hive-site.xml
在hive-site.xml中添加如下配置信息:

<?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://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;serverTimezone=GMT</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>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

4、配置Hive的log4j
避免系统警告。
#重命名文件

cp hive-log4j.properties.template  hive-log4j.properties
sudo nano hive-log4j.properties

注释掉下面语句:
#log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter
添加下面语句:
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
5、安装并配置Mysql(要创建hive用户)
这里我们采用MySQL数据库保存Hive的元数据,而不是采用Hive自带的derby来存储元数据。
安装mysql

sudo apt-get install mysql-server

会出现一个界面要求我们设置mysql密码
将我们的Mysql JDBC驱动程序 安装到ubuntu下
进行解压

cd ~
tar -zxvf mysql-connector-java-5.1.40.tar.gz 
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib

3、启动并登录Mysql shell

service mysql start  #启动MySQL服务
	mysql -u root -p   #登录MySQL数据库

输入我们刚设置的密码
4、配置Mysql允许Hive(用户)远程接入
① 创建远程连接用户
在下面的指令中填入自己想添加的用户名密码。

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

创建用户名为hive 密码为hive
② 生效

 flush privileges;#刷新mysql系统权限关系表

③ 查询用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

返回了数据库的所有用户,看到自己添加的用户表示添加成功了
④ 退出mysql
输入exit命令退出数据库
⑤ 修改配置文件
修改mysql的配置文件
指令:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉这一行
在这里插入图片描述
⑥ 重启数据库
指令: sudo /etc/init.d/mysql restart (或service mysql restart)
⑦ 连接
在主机名或IP地址里填上ubuntu的ip地址,在用户名,密码里填上刚才创建的用户密码,就可以连接了
在这里插入图片描述
在这里插入图片描述
5、在Mysql中为Hive建立元数据库
用新建立的用户hive登录mysql,建立hive数据库用于存储元数据。
Shell 命令

service mysql start  #启动MySQL服务
	mysql -u hive -p  #登录MySQL数据库
	create database hive; 

创建名为hive的数据表
#这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

show databases; 
exit; 

6、初始化元数据
有时启动hive会出错hive metastore database is not initialized的错误,是因为hive或mysql版本不一致导致的,可以用下面的命令升级hive的架构来解决。

cd /usr/local/hive
schematool -dbType mysql -initSchema

在这里插入图片描述
初始化成功后,在mysql数据库中的hive数据库如下:
在这里插入图片描述
如果多次初始化会提示以下错误,表示MySQL中名称为Hive数据库已存在,删除名为hive数据库即可。
7、启动Hive
提高当前用户对根目录的操作权限

cd /
	sudo chmod 777 .

启动hive之前,请先启动hadoop集群。

start-dfs.sh 
	Start-yarn.sh
  1. 在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
    创建目录:
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse

修改权限:

hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
  1. hive #启动hive
    启动进入Hive的交互式执行环境以后,会出现如下命令提示符:
  2. hive>
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Hive需要以下步骤: 1. 下载Hive安装包并解压缩到指定目录,例如:/software/hive/ 2. 配置Hive环境变量,需要在~/.bashrc文件中添加以下内容: ``` export HIVE_HOME=/software/hive export PATH=$PATH:$HIVE_HOME/bin ``` 3. 配置Hivehive-site.xml文件,需要在$HIVE_HOME/conf目录下创建hive-site.xml文件,并添加以下内容: ``` <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?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>hiveuser</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> <description>password to use against metastore database</description> </property> </configuration> ``` 其中,ConnectionURL需要根据实际情况修改,ConnectionUserName和ConnectionPassword需要根据实际情况设置。 4. 启动Hive服务,需要执行以下命令: ``` $HIVE_HOME/bin/hive --service metastore & $HIVE_HOME/bin/hive --service hiveserver2 & ``` 5. 验证Hive是否安装成功,可以执行以下命令: ``` $HIVE_HOME/bin/hive ``` 如果成功启动Hive命令行界面,则说明Hive安装成功。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值