进阶4:hive 安装

安装包:

           apache-hive-2.1.1-bin.tar.gz

 

安装步骤:

         1.上传   apache-hive-2.1.1-bin.tar.gz 到linux;

         2.解压文件:

                  tar zxvf apache-hive-2.1.1-bin.tar.gz 

         3.安装mysql (仅支持mysql 5.7以下版本,不支持5.7或更高版本,原因:若采用高版本mysql,部分文档内容需要改写)

                   sudo yum install mysql-server 

         4. 安装 mysql connector

                  sudo yum install mysql-connector-java 

            该命令会在/usr/share/java/下产生mysql-connector-java.jar

         5. 建立链接

                ln -s /usr/share/java/mysql-connector-java.jar /usr/local/hadoop-soft/etc/hive-2.1.1/lib/mysql-connector-java.jar 

            该命令在hive安装目录的lib目录下建立软链接,指向/usr/share/java/mysql-connector-java.jar 

        6.  启动mysql
                sudo service mysqld start 

             可通过以下命令验证mysql启动成功(显示mysql进程):

 

                 ps aux | grep mysql 

       7.  修改mysql密码 , 修改mysql密码(改为newpass,请根据需要自行替换newpass)

                mysql> use mysql; 

                mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

                mysql> FLUSH PRIVILEGES;  

             允许用户root通过任意机器访问mysql:

                 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpass' WITH GRANT OPTION; 

                 mysql> FLUSH PRIVILEGES; 

    8. 进入到根目录,配置环境变量:

                 vim ~/.bash_profile           

export HIVE_HOME=/usr/local/hadoop-soft/etc/hive-2.1.1
export PATH=$HIVE_HOME/bin:$PATH

       运行生效:

                  source ~/.bash_profile 

    9.  配置hive

               a.进入目录:

                   cd /usr/local/hadoop-soft/etc/hive-2.1.1/conf 

               b. 新建 并 编辑  hive-site.xml

             

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://master:9083</value>
    </property>
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master/metastore?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</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/usr/local/hadoop-soft/etc/hive-2.1.1/warehouse</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>datanucleus.autoCreateSchema</name>
        <value>true</value>
    </property>
    <property>
        <name>datanucleus.autoStartMechanism</name> 
        <value>SchemaTable</value>
    </property>
    <property>
        <name>datanucleus.schema.autoCreateTables</name>
        <value>true</value>
    </property>

    <property>
        <name>beeline.hs2.connection.user</name>
        <value>master</value>
        </property>
     <property>
        <name>beeline.hs2.connection.password</name>
        <value>master</value>
     </property>
</configuration>     

      注意

                1. hive.metastore.uris中的“bigdata“含义为metastore server所在的机器(启动metastore的方法见下一节)

                 2. javax.jdo.option.ConnectionURL中的“bigdata”为mysql安装机器的hostname

                 3. javax.jdo.option.ConnectionUserName和javax.jdo.option.ConnectionPassword分别为mysql的访问用户和密码,可通过以下命令验证是否有效(期中bigdata为javax.jdo.option.ConnectionURL中配置的地址,xxx为mysql用户名):

                   mysql –h bigdata-u xxx –p

                 4. fs.defaultFSHDFS的namenode启动的机器地址

                 5. beeline.hs2.connection.user和beeline.hs2.connection.passwordbeeline方式访问的用户名和密码,可任意指定,但在beeline访问时要写入你指定的这个(具体参考最后一部分)

10.如果是第一次启动hive需要执行初始化命令

           schematool -dbType mysql -initSchema 

        注意:在第一次启hive,运行该命令,以后只需直接启metastorehiveserver

11. 启动metastore

 

          nohup hive --service metastore >> /usr/local/hadoop-soft/etc/hive-2.1.1/metastore.log 2>&1 & 

12. 启动hive server

 

          nohup hive --service hiveserver2 >> /usr/local/hadoop-soft/etc/hive-2.1.1/hiveserver.log 2>&1 & 

13. 查看hive metastorehiveserver2是否启动成功

   ps aux | grep hive 

  能输出两个进程,分别对应metastore和hiveserver2.

      

 

14.  Hive常见两种访问方式 

       a.不建议使用 hive ,已经被淘汰

       b. 建议使用  beeline 

 15.  修改hadoop 安装目录下 ,core-site.xml 文件

          比如要用root 用户启动  hive server2和hive metastore,则增加配置:

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

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

 

             

    16. 之后输入以下命令发起一个连接:

              !connect jdbc:hive2://master:10000/default master master 

            

       其中master 和master 分别是在hive-site.xml配置文件中由beeline.hs2.connection.userbeeline.hs2.connection.password设置的。

       注:如果要使用beeline或JDBC连接hive时,遇到报错:“User: xxx is not allowed to impersonate yyy”,需在hadoop的配置文件core-site.xml中加入以下配置(其中红色标志的“xxx”是你启动hive server2和hive metastore所采用的用户,

             用户名中不要包含“.”,比如“cheng.dong”是不支持的),并重启hiveserver2, hive metastore,HDFS和YARN

  

 

 

 

 

 

 

 

 

posted @ 2019-04-07 23:48  梦在远方  阅读(260)  评论(0编辑  收藏  举报