hive( 一)--hive安装

一、简介
hive是基于hadoop的数据仓库工具,提供了类sql的查询语言,将sql语句转化为MapReduce进行执行。
这里介绍hive的安装。
二、安装步骤
1、准备
a、安装hadoop,并启动hdfs和MapReduce(hadoop的安装过程在此略过,详情请查看本博客hadoop安装);
b、安装mysql,并启动;
2、下载hive
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.0/apache-hive-3.1.0-bin.tar.gz
3、解压hive
tar -zxvf apache-hive-3.1.0-bin.tar.gz
4、生成hive的环境配置文件hive-env.sh
cp conf/hive-env.sh.template conf/hive-env.sh
5、修改hive-env.sh文件,添加hadoop路径
HADOOP_HOME=/home/china/programs/hadoop
6、生成hive的配置文件hive-site.xml
cp conf/hive-default.xml.template conf/hive-site.xml
7、修改hive-site.xml文件,配置hive的本地临时路径、hive连接mysql的配置参数(用于存储元数据库信息)、
hive在hdfs中的路径。


    system:user.name
    china


    system:java.io.tmpdir
    /home/${system:user.name}/tmp/hive/




    javax.jdo.option.ConnectionURL
    jdbc:mysql://localhost:3306/hive_metadata?createDatabaseIfNotExist=true



    javax.jdo.option.ConnectionUserName
   root
  

    javax.jdo.option.ConnectionPassword
   root
  

    javax.jdo.option.ConnectionDriverName
    com.mysql.jdbc.Driver
  



    hive.metastore.warehouse.dir
    /user/hive/warehouse
  

8、在lib目录下添加mysql连接器jar包(mysql-connector-java-5.1.30.jar 请自行下载)
cp ~/Downloads/mysql-connector-java-5.1.30.jar lib/
9、初始化元数据库
bin/schematool -dbType mysql -initSchema
10、启动hive客户端
bin/hive
可加参数 -H 获取帮助,至此,hive安装完毕。
三、问题处理
问题一
问题:报 FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 错误
分析:这是通常公共报错,具体错误还得查web端的日志,
查看web页面http://192.168.0.1:8088/proxy/application_1539939200327_0011/
Diagnostics: Container [pid=6874,containerID=container_1539939200327_0011_02_000001] is running beyond virtual memory limits. Current usage: 391.2 MB of 2 GB physical memory used; 4.4 GB of 4.2 GB virtual memory used. Killing container.
解决:
修改hadoop配置文件,vim hadoop/etc/hadoop/yarn-site.xml,添加配置


    yarn.nodemanager.vmem-check-enabled
    false
    Whether virtual memory limits will be enforced for containers


    yarn.nodemanager.vmem-pmem-ratio
    4
    Ratio between virtual memory to physical memory when setting memory limits for containers

问题二
问题:仍然报FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
分析:同上,分析web端日志,发现
Container launch failed for container_1540094607627_0001_01_000005 : org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:mapreduce_shuffle does not exist
解决:
修改hadoop配置文件vim hadoop/etc/hadoop/yarn-site.xml,添加配置


    yarn.nodemanager.aux-services
    mapreduce_shuffle
  
  
    yarn.nodemanager.aux-services.mapreduce_shuffle.class
    org.apache.hadoop.mapred.ShuffleHandler
  

重启hadoop,hive即可,因此出现问题时,我们应该多看日志,从中发现错误信息。


 

你可能感兴趣的:(大数据)