Hive单节点和多节点的配置安装

举报
多米诺的古牌 发表于 2022/01/25 13:59:30 2022/01/25
【摘要】 1.Hive简介hive是基于Hadoop的一个数据仓库工具,可以将结构化(行列分明)或半结构化(xml、json等)的数据文件映射为一张数据库表,并提供简单的sql查询,本质是将sql转换为MapReduce的任务进行运算,底层由HDFS提供存储,有执行延迟高、可扩展性高、数据规模大的特点。2.单节点配置安装Hive的安装需要Hadoop环境和mysql环境,需要如下步骤:2.1 下载上传...

1.Hive简介

hive是基于Hadoop的一个数据仓库工具,可以将结构化(行列分明)或半结构化(xml、json等)的数据文件映射为一张数据库表,并提供简单的sql查询,本质是将sql转换为MapReduce的任务进行运算,底层由HDFS提供存储,有执行延迟高、可扩展性高、数据规模大的特点。

2.单节点配置安装

Hive的安装需要Hadoop环境和mysql环境,需要如下步骤:

2.1 下载上传解压

http://archive.apache.org/dist/hive/

2.1.1 解压hive挪动位置并修改名称

2.1.1.1 执行解压指令 tar -zxvf apache.hive-3.1.2-bin.tar.gz

2.1.1.2 移动到opt目录下 mv apache.hive-3.1.2-bin /opt/

2.1.1.3 进入opt目录修改hive的名字 mv apache.hive-3.1.2-bin hive-3.1.2

2.2 修改env配置文件中的环境变量

2.2.1 进入hive的进行配置文件的修改 cd hive-3.1.2/conf

2.2.2 拷贝env文件并修改配置 cp hive-env.sh.template hive-env.sh

2.2.3 修改hive-env.sh中的配置,将光标挪到最后一行,将下面的配置信息复制进去

hive.env.sh是启动hive的时候会重新加载并获取里面的这三个环境变量,第一个是hadoop的位置,第二个是hive的配置文件位置,第三个是hive的jar位置,这个是在3.0之后需要进行配置,3.0之前不需要进行配置。

HADOOP_HOME=/opt/hadoop-3.1.2/

export HIVE_CONF_DIR=/opt/hive-3.1.2/conf

export HIVE_AUX_JARS_PATH=/opt/hive-3.1.2/lib

2.3 修改hive-site配置文件(配置mysql的对应信息)

2.3.1 拷贝默认的hive-site文件 cp hive-default.xml.template hive-site.xml

2.3.2 修改配置文件

其中createDatabaseIfNotExist=true是如果mysql中的hive数据库不存在就创建数据库和对应表

<?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</value>
        </property>
        <!--mysql的驱动-->
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <!--用户名-->
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <!--密码-->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>123456</value>
        </property>

        <property>
                <name>datanucleus.schema.autoCreateAll</name>
                <value>true</value>
        </property>
        <!--元数据验证取消掉-->
        <property>
                <name>hive.metastore.schema.verification</name>
                <value>false</value>
        </property>
        <!--美化打印语句-->
        <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>

<!--下面配置根据情况看是否需要 不要就去掉-->

        <!--配置hive server2是在哪台虚拟机上开启-->
        <property>
                <name>hive.server2.webui.host</name>
                <value>node001</value>
        </property>

        <!--配置hive server2是在外部页面的端口号-->
        <property>
                <name>hive.server2.webui.port</name>
                <value>10002</value>
        </property>

        <!--配置hive默认存储的位置-->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/hive/warehouse</value>
        </property>
</configuration>

2.4 修改hadoop中的core-site.xml配置文件

2.4.1 vim /opt/hadoop-3.1.2/etc/hadoop/core-site.xml

2.4.2 将如下信息添加到core-site.xml的最后

       <!--该参数标识可以通过httpfs接口访问hdfs的ip地址的限制-->

       <property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
        </property>

      <!--通过httpfs接口访问的用户获得的群组身份-->

       <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
        </property>

2.5 配置日志组件

2.5.1 创建日志目录 mkdir -p /opt/hive-3.1.2/logs

2.5.2 拷贝默认文件 cp hive-log4j2.properties.template hive-log4j2.properties

2.5.3 修改日志配置文件 vim hive-log4j2.properties中日志的位置,如下:

property.hive.log.dir = /opt/hive-3.1.2/logs

2.6 添加驱动包

2.6.1 拷贝mysql驱动包到hive中的lib里

cp ~/mysql-connector-java-5.1.32-bin.jar /opt/hive-3.1.2/lib

2.6.2 将hadoop和hdfs中的Guava包删除,并将hive中的Guava包复制到hadoop和hdfs中去

2.6.3 查询guava包在hive下是19.0,hadoop和hdfs中是11.0.2

2.6.4 将hadoop和hdfs中的Guava包删除,并将hive中的Guava包复制到hadoop和hdfs中去

2.7 配置环境变量

2.7.1 进入profile配置文件 vim /etc/profile

export HIVE_HOME=/opt/hive-3.1.2

export PATH=$HIVE_HOME/bin:$PATH

2.7.2 输入指令 source /etc/profile

此时一台节点的hive已经配置好了。。。

3.多节点配置安装

3.1 将节点1中配置好的hive复制到节点2和节点3中的opt下

scp -r /opt/hive-3.1.2 node002:/opt/
scp -r /opt/hive-3.1.2 node003:/opt/

3.2 将节点1中配置好的环境变量复制到节点2和节点3中的etc下,并且进行source

scp /etc/profile node002:/etc/

scp /etc/profile node003:/etc/

ssh root@node002  "source /etc/profile"

ssh root@node003  "source /etc/profile"

3.3 将节点1中配置好的core-site.xml复制到到节点2和节点3中的/etc/hadoop/下

scp /opt/hadoop-3.1.2/etc/hadoop/core-site.xml node002:/opt/hadoop-3.1.2/etc/hadoop/

scp /opt/hadoop-3.1.2/etc/hadoop/core-site.xml node003:/opt/hadoop-3.1.2/etc/hadoop/

3.4 将节点2和节点3中hadoop和hdfs中的guava-*.jar删除

ssh root@node002 "rm -rf /opt/hadoop-3.1.2/share/hadoop/common/lib/guava-*.jar"

ssh root@node002 "rm -rf /opt/hadoop-3.1.2/share/hadoop/hdfs/lib/guava-*.jar"

ssh root@node003 "rm -rf /opt/hadoop-3.1.2/share/hadoop/common/lib/guava-*.jar"

ssh root@node003 "rm -rf /opt/hadoop-3.1.2/share/hadoop/hdfs/lib/guava-*.jar"

查看节点2和节点3的lib文件夹(有没有都行 主要是记录一下怎么查看的)

ssh root@node002 "ls -sarln /opt/hadoop-3.1.2/share/hadoop/common/lib/"

3.5 将节点1中hive中lib中的guava-19.0.jar复制到节点2和节点3中hadoop和hdfs中

scp guava-19.0.jar node002:/opt/hadoo-3.1.2/share/hadoop/common/lib/guava-19.0.jar

scp guava-19.0.jar node002:/opt/hadoo-3.1.2/share/hadoop/hdfs/lib/guava-19.0.jar

scp guava-19.0.jar node003:/opt/hadoo-3.1.2/share/hadoop/common/lib/guava-19.0.jar

scp guava-19.0.jar node003:/opt/hadoo-3.1.2/share/hadoop/hdfs/lib/guava-19.0.jar

3.5 修改节点2和节点3的客户端配置文件

3.5.1 查看 hive-site.xml文件 (可以不用)

cat /opt/hive-3.1.2/conf/hive-site.xml

3.5.2 切换到节点2,进入配置文件

ssh node002

vim /opt/hive-3.1.2/conf/hive-site.xml

3.5..3 修改配置文件删除多余的部分并添加下面的部分

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <!--美化打印语句-->
        <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>

<!--下面配置根据情况看是否需要 不要就去掉-->

        <!--配置hive server2是在哪台虚拟机上开启-->
        <property>
                <name>hive.server2.webui.host</name>
                <value>node001</value>
        </property>

        <!--配置hive server2是在外部页面的端口号-->
        <property>
                <name>hive.server2.webui.port</name>
                <value>10002</value>
        </property>

        <!--配置hive默认存储的位置-->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/hive/warehouse</value>
        </property>
        <!--指定hive.metastore.uris的port为了启动metastore服务的时候不用指定端口-->

        <!--hive == service metastore -p 9083 & | hive == service metastore-->
        <property>
                <name>hive.metastore.uris</name>
                <value>thrift://node001:9083</value>
        </property>
</configuration>

3.5..3 将修改好的节点2的hive-site.xml配置文件复制到节点3 ,这里会覆盖原来节点3的hive-site.xml文件

scp /opt/hive-3.1.2/conf/hive-site.xml node003:/opt/hive-3.1.2/conf

3.5.4 exit 退出

4.测试是否安装成功

4.1 启动hive

hive --service metastore

当出现Starting Hive Metastore Server等,即表示启动成功

在复制当前窗口 里面输入 hive 会出现下面的hive session id以及hive(default)

然后可以进行创建表等操作

show databases;

create database test;

use test;

create table hive_test (id string,name string,age string);

show tables;

insert into table hive_test('111','test111','12');

select * from hive_test;





【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。