千家信息网

apache-hive安装部署

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,前提:安装jdk无密互通安装zookeeper安装hadoop安装mysqlyum安装mysql是做为元数据库,mysql安装在mater主机上sudo yum install -y mysql my
千家信息网最后更新 2025年02月03日apache-hive安装部署

前提:

安装jdk

无密互通

安装zookeeper

安装hadoop


安装mysql

yum安装

mysql是做为元数据库,mysql安装在mater主机上

sudo yum install -y mysql mysql-server

sudo service mysqld start

sudo mysql

编译安装mysql

先下载mysql二进制安装包,版本随便挑

mysql安装包下载地址:http://mirrors.sohu.com/mysql/

参考文档:http://blog.csdn.net/t1dmzks/article/details/71374740

#创建数据存放目录#解压文件tar axf mysql-boost-5.7.18.tar.gz  -C /usr/local/#编译安装cd mysql-5.7.18cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 \-DWITH_BOOST=boost -DDEFAULT_COLLATION=utf8_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb \-DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1#安装make && make install && echo $?#修改权限chown -R mysql.mysql /data/mysqldbchown -R mysql.mysql /usr/local/mysql初始化mysql数据库cd /usr/local/mysql./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql

注意框起来的那部分,是你的用户密码,现在mysql初始是有密码的

如果要重新初始化数据库就删除掉/data/mysqldb下的所有文件

rm -rf /data/mysqldb

修改

环境变量

在path中添加mysql的bin目录

vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

source /etc/profile


查看mysql版本信息

mysql -V


修改my.cnf主配置文件

[mysqld]

datadir=/data/mysqldb

socket=/usr/local/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

复制启动脚本

cd /usr/local/mysql

cp support-files/mysql.server /etc/init.d/mysqld

启动mysql

service mysqld start

设置开机启动

chkconfig --level 2345 mysqld on

设置环境变量

vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin


source /etc/profile

登录mysql并修改密码(登录密码在初始化数据的时候有提示)

mysql -uroot -p'8XeyEBg_yLj6'

grant不能用

mysql> SET PASSWORD = PASSWORD('mysql');

ok,重新登录

mysql -uroot -pmysql

没有password字段了

查看表结构

mysql> desc mysql.user;

查看

select HOst,User,authentication_string from mysql.user;

mysql.sys用户貌似是新添的mysql的system用户,密码*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE,翻译过来差不多就是没有设置密码,需要设置

通过support-files/mysqld_multi.server 可以轻松实现mysql多实例

参考:http://blog.csdn.net/miyatang/article/details/56846283

创建hive数据库

创建hive数据库

创建hadoop用户,并访问数据库授权(这里权限给高的,应该只给hive库的权限)


下载、安装hive

如果下载报错请用浏览器查看 http://mirror.bit.edu.cn/apache/hive下版本是否发生变更

mkdir /data

cd /data

wget http://mirrors.hust.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz


tar axf apache-hive-1.2.2-bin.tar.gz



修改环境变量

vim /etc/profile

export HIVE_HOME=/data/apache-hive-1.2.2-bin

export PATH=$PATH:${HIVE_HOME}/bin

source /etc/profile

chown -R hadoop:hadoop /data/apache-hive-1.2.2-bin

create database hive;


为hive创建相应的mysql账户,并赋予权限(上面弄了)

创建hive专用的元数据库(用上面的hadoop用户)




生成hive-site.xml主配置文件

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

修改其中数据库连接参数

javax.jdo.option.ConnectionDriverName

com.mysql.jdbc.Driver

Driver class name for a JDBC metastore


javax.jdo.option.ConnectionURL

jdbc:mysql://192.168.3.58:3306/hive?characterEncoding=UTF-8

JDBC connect string for a JDBC metastore


javax.jdo.option.ConnectionUserName

hadoop

Username to use against metastore database


javax.jdo.option.ConnectionPassword

hadoop

password to use against metastore database


创建IO文件临时存放目录

mkdir ${HIVE_HOME}/iotmp

修改hive-site.xml中的参数


hive.querylog.location

/data/apache-hive-1.2.2-bin/iotmp

Location of Hive run time structured log file


hive.exec.local.scratchdir

/data/apache-hive-1.2.2-bin/iotmp

Local scratch space for Hive jobs


hive.downloaded.resources.dir

/data/apache-hive-1.2.2-bin/iotmp

Temporary local directory for added resources in the remote file system.


将mysql-connector-java-5.1.21.jar驱动包,拷贝到 $HIVE_HOME/lib 目录下。


mysql-connector-java下载地址

http://mvnrepository.com/artifact/mysql/mysql-connector-java



启动hadoop集群(需要datanode和namenode)

启动mysql


启动hive


Logging initialized using configuration in jar:file:/data/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.properties是初始化日志模块,需要创建hive-log4j.properties文件

cd ${HIVE_HOME}/conf

cp hive-log4j.properties.template hive-log4j.properties

cp hive-exec-log4j.properties.template hive-exec-log4j.properties

修改 hive-log4j.properties文件指定log存放路径

vim hive-log4j.properties

hive.log.dir=/data/apache-hive-1.2.2-bin/log

创建目录

mkdir /data/apache-hive-1.2.2-bin/log




多节点hive构建

hive是将数据存储在mysql和hdfs中,只需要使用相同的元数据

先安装单节点的hive

初始化hive元数据

schematool -dbType mysql -initSchema


cd ${HIVE_HOME}/conf

cp hive-env.sh.template hive-env.sh

在hive-env.sh中指定JAVA_HOME、HADOOP_HOME、HIVE_HOME和HIVE_CONF_DIR


# Set HADOOP_HOME to point to a specific hadoop install directory

# HADOOP_HOME=${bin}/../../hadoop

HADOOP_HOME=/data/hadoop

JAVA_HOME=/usr/local/jdk

HIVE_HOME=/data/apache-hive-1.2.2-bin

# Hive Configuration Directory can be controlled by:

# export HIVE_CONF_DIR=

export HIVE_CONF_DIR=$HIVE_HOME/con


将文件文件复制到其他的机器上

[hadoop@master data]$ scp -r apache-hive-1.2.2-bin slave1:/data

[hadoop@master data]$ scp -r apache-hive-1.2.2-bin slave2:/data


其他节点也需要修改/etc/profile文件

[root@master hadoop]# scp -r /etc/profile slave1:/etc/

[root@master hadoop]# scp -r /etc/profile slave2:/etc/


节点一启动metastore服务(会占用窗口,可用nohup)

[hadoop@master data]$ hive --service metastore


节点二启动metastore服务

[hadoop@slave1 /]$ source /etc/profile

[hadoop@slave1 /]$ hive --service metastore


节点三启动metastore服务

[hadoop@slave1 /]$ source /etc/profile

[hadoop@slave1 /]$ hive --service metastore


访问测试

创建一个测试表

create table test_hive (id bigint, name string) row format delimited fields terminated by '\t';


未完待续


参考文档

hive安装与使用(推荐):http://www.cnblogs.com/zlslch/p/6039901.html

hive安装与部署:http://www.cnblogs.com/zlslch/p/6700695.html

Hive最新数据操作详解(超级详细):http://blog.csdn.net/yhao2014/article/details/46312469

Hive之import和export使用详解:http://www.cnblogs.com/wcwen1990/p/6845850.html


0