Fork me on GitHub

Hive Day05


hive的beeline连接

之前直接用hive命令直接进入hive客户端

但是这种方式在生产中不适用;

此时我们需要另外一种连接方式,就是远程连接;

hive的远程连接方式:将hive的服务端开启

在远程通过第三方的工具连接; beeline

beeline:就是hive的远程连接的客户端工具

如果想要远程连接hive

  1. 将hive的服务器端启动;

    ​ hiveserver2 开启hive的服务端

  2. 远程使用beeline连接

    ​ beeline 启动beeline工具

    ​ 配置hive的连接:

    ​ !connect 连接hive的url

    ​ jdbc:hive2://hdp02:10000

    ​ jdbc:mysql://主机:3306

    ​ 进行连接:!connect jdbc:hive2://hdp02:10000

    ​ 此处需要输入用户名,输入安装hive的linux系统的用户名,此处是hadoop;

    密码是安装hive的用户,对应的密码;也就haoop的密码;

    直接连接会报错;hadoop.ipc.remoreException

    hadoop的连接错误,hadoop的安全认证错误,报错的原因是beeline连接的时候,实质上连接hadoop集群;hadoop集群没有远程安全验证的;

    解决方案:

    修改hadoop的配置文件,将hadoop的远程连接的安全认证添加上;

    1. core-site.xml

      <configuration>
      		<property>
      			<name>fs.defaultFS</name>
      			<value>hdfs://hdp01:9000</value>
      		</property>
      		<property>
      			<name>hadoop.tmp.dir</name>
      			<value>/home/hadoop/data/hadoopdata</value>
      		</property>
      	<property>
      		<!--注意 第二个 hadoop代表远程连接的用户-->
      		<name>hadoop.proxyuser.hadoop.hosts</name>
      		<value>*</value>
      	</proerty>
      	<property>
      		<!--注意 第二个 hadoop代表远程连接的用户-->
      		<name>hadoop.proxyuser.hadoop.groups</name>
      		<value>*</value>
      	</proerty>
      	
      </configuration>
      
      
    2. hdfs-site.xml

      <property>
              <name>dfs.webhdfs.enabled</name>
              <value>true</value>
      </property>
      
      
    3. 将这两个配置文件发送集群中的所有机器上

    4. 重启集群

    5. 启动hiveserver2的时候,想要启动为后台启动

      `nohup hiveserver2 1>/home/hadoop/hiveserver.log 2>&1 &`
      
  3. beeline -u jdbc:hive2:// 从命令行直接连接

    -n 用户名 -p 密码

posted @ 2019-05-15 17:04  耳_东  阅读(95)  评论(0)    收藏  举报