hive-2.0.1配置

1. 上传并解压hive包文件

2. rpm安装mysql,安装完按以下步骤操作

       创建mysql用户组、用户

        #增加用户组mysql
        groupadd mysql
        #增加用户mysql,加入mysql用户组
        useradd -r -g mysql mysql

       #安装server
        rpm -ivh mysql包
        #安装client
        rpm -ivh mysql包

       #修改my.cnf,默认在/usr/my.cnf
        vim /usr/my.cnf
            [client]
            default-character-set=utf8
            [mysql]
            default-character-set=utf8
            [mysqld]
            character_set_server=utf8
            # basedir = .....
            # datadir = .....
            # port = .....
            # server_id = .....
            # socket = .....
            sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
            
        
        #将mysqld加入系统服务,并随机启动
        cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
                
        #启动mysqld
        service mysqld start
        
        #获取mysql安装时root用户的随机密码
        vim /root/.mysql_secret 
        
        #必须要修改root用户的密码才可以使用mysql,否则只能连接不能操作
        格式: mysqladmin -u root -p password "新密码" 回车 ,Enter password: 【输入原来的旧密码】
        mysqladmin -u root -p  password root 
        
        #连接进入mysql
        mysql -u root -p
        root

3. 将hive-env.sh.template 拷贝hive-env.sh,打开并编辑 

    # Set HADOOP_HOME to point to a specific hadoop install directory

    export HADOOP_HOME=/root/work/hadoop-2.7.7

    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=/root/work/hive-2.0.1/conf

4. 将hive-default.xml.template 拷贝hive-site.xml,打开bing并编辑

    <configuration>

<!--连接数据库驱动 -->
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!--连接数据库驱动 -->
<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>root@123</value>
</property>
</configuration>

5. 创建hive源数据库指定编码集

  create database hive character set latin1;

6. 初始化数据库

    schematool -initSchema -dbType mysql

    报错:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.

     解决:   mysql -uroot -p
                    #(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
                    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
                    FLUSH PRIVILEGES;
                    注:如果还报:Access denied for user 'root'@'hadoop' (using password: YES)
                        1.修改hive-site.xml中配置的mysql登录密码
                        2.授权语句中的%换成服务器的主机名或者是后面'root'部分的密码不对

      再次初始化:schematool -initSchema -dbType mysql

7. 启动hive

     目录:$HIVE_HOME/bin:./hive

     最好配置环境变量


结束

<think>嗯,用户遇到了Hive中缺少hive-site.xml配置文件的问题,我需要帮他解决这个问题。首先,我应该回忆一下Hive配置文件相关知识。根据引用里的内容,hive-site.xml是从hive-default.xml.template复制来的,并且无论是服务端还是客户端都读取这个文件。所以如果用户没有这个文件,可能需要手动创建。 那具体步骤是什么呢?首先,检查conf目录下是否存在hive-site.xml。如果没有的话,应该复制模板文件。比如,用户安装的是Hive 1.1.0,可能需要从conf目录下的hive-default.xml.template复制为hive-site.xml。引用[2]提到需要复制这个模板,然后修改配置项,比如数据存放目录。这时候用户可能需要根据实际情况设置HDFS路径,比如hive.metastore.warehouse.dir,这个目录需要提前创建好,否则可能报错。 另外,用户需要注意配置项是针对服务端还是客户端的,这点在引用[1]里有说明。比如,Metastore相关的配置可能属于服务端,而客户端的连接参数比如hive.metastore.uris需要在客户端配置。如果用户同时运行服务端和客户端,那他们的hive-site.xml都需要相应的配置。 还有,配置文件的位置是否正确?Hive默认会在conf目录下找hive-site.xml,如果用户把文件放错位置,比如放到了其他目录下,Hive可能无法读取到配置,导致问题。这时候需要确认文件路径是否正确,以及环境变量是否设置正确,比如HIVE_CONF_DIR是否指向了正确的目录。 如果用户已经创建了hive-site.xml但问题依旧,可能需要检查配置文件中的参数是否正确。比如,检查是否有语法错误,XML标签是否正确闭合,属性值是否正确。有时候复制模板时可能会有多余的配置或者遗漏必要的参数,比如没有正确配置元存储的数据库连接信息,导致无法连接MySQL等元存储数据库。 另外,用户是否在启动Hive服务之前正确配置hive-site.xml?比如,Hive Metastore服务启动时需要读取配置文件中的数据库连接参数,如果这些参数缺失或错误,服务可能无法启动,导致客户端连接失败。这时候需要检查日志文件,查看具体的错误信息,根据错误提示进行调整。 还有可能用户的环境中有多个Hive实例,或者配置被其他文件覆盖了。Hive配置加载顺序是怎样的?可能用户在其他地方有配置文件,导致hive-site.xml的设置被覆盖,这时候需要检查所有可能的配置来源,比如Hadoop的配置文件、环境变量等。 总结一下,解决步骤应该是:1. 确认hive-site.xml是否存在,不存在则复制模板创建。2. 配置必要的参数,比如元数据存储、HDFS路径等。3. 检查配置文件语法和路径是否正确。4. 根据服务端或客户端的不同需求调整配置项。5. 启动服务并检查日志,排除其他错误。</think>### 如何处理 Hive 中缺失 hive-site.xml 配置文件的情况 #### 步骤 1:确认配置文件缺失 Hive配置文件默认位于 `$HIVE_HOME/conf` 目录下。若缺失 `hive-site.xml`,可通过以下方式创建: 1. **复制模板文件** 从模板文件 `hive-default.xml.template` 复制生成 `hive-site.xml`: ```bash cp $HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml ``` 引用[2]提到,此模板文件是基础配置来源,需根据实际需求修改参数。 2. **手动创建文件** 若模板文件不存在,可手动新建 `hive-site.xml`,并添加必要的配置项(如元数据存储、HDFS 路径等)。 --- #### 步骤 2配置核心参数 在 `hive-site.xml` 中需至少配置以下关键参数: ```xml <configuration> <!-- Hive 元数据存储(以 MySQL 为例) --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- HDFS 数据存储目录 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration> ``` 引用[4]指出,HDFS 目录需提前创建,否则会触发权限错误。 --- #### 步骤 3:检查配置优先级 Hive 会按以下顺序加载配置1. `hive-site.xml`(用户自定义配置2. `hive-default.xml`(默认配置,不可修改) 3. Hadoop 相关配置文件(如 `core-site.xml`, `hdfs-site.xml`)[^3] 确保 `hive-site.xml` 中的配置未被其他文件覆盖。 --- #### 步骤 4:验证配置生效 通过 Hive CLI 或 Beeline 连接服务,执行以下命令检查配置: ```sql SET hive.metastore.warehouse.dir; ``` 若输出与配置一致,则说明文件已生效[^1]。 --- #### 常见问题排查 1. **权限问题** HDFS 目录需赋予 Hive 用户读写权限: ```bash hadoop fs -chmod -R 755 /user/hive/warehouse ``` 2. **服务端与客户端配置冲突** 若同时部署 HiveServer2 和 Metastore,需分别在服务端和客户端的 `hive-site.xml` 中配置 `hive.metastore.uris`。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值