hive安装简要指南

这里记录一下hive安装的步骤,主要参考 https://blog.csdn.net/jssg_tzw/article/details/72354470

hive需要把元数据存储在数据库中,默认的derby不能多进程访问,因此这里使用mysql来存储。centos2.7 默认是没有mysql的,需要手动安装mysql。可以使用wget方式安装:

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

启用服务并修改密码:

systemctl start mysqld.service
mysql -uroort

mysql>set password for root@localhost = password('123');

下载hive,上传到namenode服务器上,解压,同时创建一个/home/deploy/hive/tmp文件夹用于存放临时文件。在集群上建立如下文件夹:

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

修改/etc/profile,增加两行:

export HIVE_HOME=/home/deploy/apache-hive-2.1.1-bin
export HIVE_CONF_DIR=${HIVE_HOME}/conf 

执行source /etc/profile使其生效。
进入conf文件夹,执行:

cp hive-default.xml.template hive-site.xml

将hive-site.xml中的${system:java.io.tmpdir}替换为hive的临时目录,将${system:user.name}都替换为root。
搜索javax.jdo.option.ConnectionURL,将该name对应的value修改为MySQL的地址,例如我修改后是:

<name>javax.jdo.option.ConnectionURL</name>  
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径,例如我的修改后是:

<name>javax.jdo.option.ConnectionDriverName</name> 
<value>com.mysql.jdbc.Driver</value> 

搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名:

<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>

搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码:

<name>javax.jdo.option.ConnectionPassword</name>
 <value>123</value>

搜索hive.metastore.schema.verification,将对应的value修改为false:

<name>hive.metastore.schema.verification</name>
<value>false</value>

下载mysql驱动 https://pan.baidu.com/s/1pLsA48F
上传到hive的lib文件夹下。
开启防火墙,添加3306端口:

systemctl start firewalld
firewall-cmd --permanent --add-port=3306/tcp

这样就能使用hive了。

如果要用spark连接hive,则将hive-site.xml放到spark的conf文件夹下,并添加

<property>
   <name>hive.metastore.uris</name>
   <value>thrift://IP:9083</value>
</property>

然后hive --service metastore&启用后台服务。
接着将mysql驱动放到spark的jars目录下,在pyspark中输入:

hive = SparkSession.builder.enableHiveSupport().getOrCreate()

即可在pyspark中使用hive。

猜你喜欢

转载自blog.csdn.net/kittyzc/article/details/83114448