CentOS7 下Hive2.1.0 安装配置

1` 安装MySql

在安装之前,需要先安装MySqlHive默认使用内嵌的DerBy作为元数据库,但是鉴于其单会话限制,这里使用Mysql作为元数据库

检查是否装有Mysql

$ netstat -tap | grep mysql

如果有输出,说明已经有mysql,如果没有需要安装

* CentOS7环境中默认把ifconfignetstat取消掉了,ifconfig使用ip addr代替,netstat则需要安装net-toolsyum install net-tools

 

由于在CentOS7yum中没有mysql,所以需要使用mysqlrepo源进行安装:

下载mysqlrepo源:

$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

*如果没有wget命令需要安装,使用yum模式

 $ sudo yum -y install wget

安装mysqlrpm包:

$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
$ yum install mysql-community-server

 

重置密码:

重置密码前需要先登录,安装完成的默认用户为root

$ mysql -u root

如果出现了‘ERROR 2002 (HY000): Can‘t connect to local MySQL server through s ocket ‘/var/lib/mysql/mysql.sock‘ (2)’的错误,一般原因是因为mysql服务并没有正常 运行,解决办法:

1· mysql服务没有正常运行。检查端口是否打开:# lsof -i:3306 (最好cd切换至根目录,如果没有lsof命令,先执行 yum install lsof 安装,如果发现 mysql服务没有正常运行,那么执行 service mysqld start 开启服务

2· socket文件路径在配置文件中设置不完整:http://aiezu.com/article/45.html

重启服务:

  $ service mysqld restart

重设密码:

  mysql> use mysql;
  mysql> update user set password=password(‘123456’) where user=’root’
  mysql> exit;

开放3306端口:

开放3306端口以便远程登录mysql但是在CentOS7中需要注意,并不是使用iptables来配置,而是使用了firewalld防火墙,使用规则如下:

查询是否开启了3306端口:

# firewall-cmd --query-port=3306/tcp
no

开启方法:

# firewall-cmd --add-port=3306/tcp
  success

2· 安装Hive

先下载包,网上都有,直接搜‘apache-hive-2.1.0-bin.tar.gz 下载’ 就可以了,用sudo rz -be 上传,记得一定要root权限

先解压安装包

如果在执行tar zxvf ./share/apache-hive-2.1.0-bin.tar.gz ./hive的时候,出现:‘tar:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出’错误,那么你就需要加参数-C 并且目标目录修改为绝对路径的目录即可,也就是说将命令修改为:tar zxvf ./share/apache-hive-2.1.0-bin.tar.gz -C /usr/local/hive/

 

配置bashrc:

$ ~/.bashrc

在文件追加:

# Hive Environment Variables
export HIVE_HOME=/usr/local/hive/hive-2.1.0
export PATH=$PATH:$HIVE_HOME/bin

修改Hive配置文件:

cd /usr/local/hive/hive-2.1.0/conf

复制hive-default.xml.template文件两次,将文件名分别更改为,hive-default.xml hive-site.xmlhive-default.xmlhive默认配置文件,不需要修改,hive-site.xml为用户自定义配置文件,在启动hive时用户自定义修改的部分会覆盖默认配置

cd ../进入Hive主文件夹,新建warehousetmplog文件夹

注意:这三个文件夹必须赋予777权限!否则在启动时会报错:permission dendaied

修改hive-site.xml中的对应路径:

<property>
   <name>hive.metastore.warehouse.dir</name>
   <value>修改为warehouse文件夹路径(例如:/usr/local/hadoop/hive/warehouse)
   </value>
   <description>location of default database for the warehouse</description>
</property>
<property>
   <name>hive.querylog.location</name>
   <value>修改为log文件夹的路径(例如:/usr/local/hadoop/hive/log)</value>
   <description>
    Location of Hive run time structured log file
   </description>
</property>
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>修改为tmp文件夹的地址(例如:/usr/local/hadoop/hive/tmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
</property>

复制hive-env.sh.template更改名字为hive-env.sh

 

修改hive-env.sh的内容:

export HADOOP_HEAPSIZE=1024前面的‘#’去掉,当然可以根据自己的环境对这个默认的1024进行优化;

export HADOOP_HOME前面的‘#’号去掉,并让它指向所安装hadoop的目录,例如: /usr/local/hadoop

export HIVE_CONF_DIRexport HIVE_AUX_JARS_PATH同理,配置相应路径。

export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf,并且把‘#’号去掉;

export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib,并且把‘#’号去掉

 

初始化元数据库:

1· 为Hive建立相应的Mysql账户,并赋予权限:

注意:这里一定要写

'hive'@'localhost'

否则会出现 MySQL 2000的报错,Hive用户会指向 % 地址上去


mysql -uroot -pmysql
mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> flush privileges;
mysql> exit;

$ mysql -uhive -pmysql
mysql> create database hive;

如果在执行mysql> create database hive;出现错误:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql',通过''@'localhost' 可以看出来,是因为存在为空 ( 匿名 账户解决办法:

1.关闭mysql

   # service mysqld stop

2.屏蔽权限

   # mysqld_safe --skip-grant-table

3.新开起一个终端输入

   # mysql -u root mysql

   mysql> delete from user where USER='';
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现	原来的错误
   mysql> \q

2· 修改hive-site.xml中原本为derby的配置项

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://远程mysql服务器IP地址:3306/hivedb</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hivedb(mysql用户名)</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hivedb(mysql用户密码)</value>
    </property>

3· 引入JDBC驱动包

因为上面配置了com.mysql.jdbc.Driver,所以需要引入mysql-connector-java-5.1.27.jar, 将jar包放入hive目录下的lib文件夹中

下载地址:http://pan.baidu.com/s/1pLsA48F

 

4· 进入hive目录下的bin目录,运行命令:

./schematool -initSchema -dbType mysql

5· 输入hive,启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值