hive 2.3.3 检修

环境

  • hive 2.3.3
  • mysql 5.6

1 安装

上传 解压

2 配置

  • 配置HIVE_HOME环境变量

vi conf/hive-env.sh
配置其中的$hadoop_home

  • 配置元数据仓库到mysql
    vi hive-site.xml

    <?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://yh01:3306/hive?characterEncoding=utf8&amp;useSSL=false</value>
                    <description>JDBC connect string for a JDBC metastore</description>
                    </property>
    
                    <property>
                    <name>javax.jdo.option.ConnectionDriverName</name>
                    <value>com.mysql.jdbc.Driver</value>
                    <description>Driver class name for a JDBC metastore</description>
                    </property>
    
                    <property>
                    <name>javax.jdo.option.ConnectionUserName</name>
                    <value>root</value>
                    <description>username to use against metastore database</description>
                    </property>
    
                    <property>
                    <name>javax.jdo.option.ConnectionPassword</name>
                    <value>12345678</value>
                    <description>password to use against metastore database</description>
                    </property>
    </configuration>
  • 将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
  • 如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
    mysql -uroot -p密码

    #(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
        FLUSH PRIVILEGES;
        
        设置设置当前用户密码永不过期
        update user set password = password('密码'),password_expired='N' where user = 'root';
  • Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的

/home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar

3.初始化hive

  • 运行HiveServer2和Beeline
    从Hive 2.1开始,我们需要在下面运行schematool命令作为初始化步骤。例如,我们可以使用“mysql”作为db类型。

     $HIVE_HOME/bin/schematool -dbType mysql -initSchema
    

4 启动hive

  • nohup hive --service metastore >> log.out 2>&1 &
  • nohup hive --service hiveserver2 >> log.out 2>&1 &
  • 查看进程是否启动
    [root@yh01 hive-2.3.3]# jps -ml | grep Hive

    4945 org.apache.hadoop.util.RunJar /export/servers/hive-2.3.3/lib/hive-metastore-2.3.3.jar org.apache.hadoop.hive.metastore.HiveMetaStore
    4809 org.apache.hadoop.util.RunJar /export/servers/hive-2.3.3/lib/hive-service-2.3.3.jar org.apache.hive.service.server.HiveServer2

  • 查看10000端口是否启动:
  • lsof -i:10000

source
24 声望2 粉丝

目标:用半年的时间记录之前两三年中遇到的java问题