博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop-hive初始化
阅读量:4126 次
发布时间:2019-05-25

本文共 2746 字,大约阅读时间需要 9 分钟。

围绕大数据、数据挖掘、人工智能有很多名词,这些名词都互相关联,不太懂的人可能只是把他们当做高级码农的一个分支,但是,其中的真正技术却并不是一半码农能够做的,或者这些领域可能就不是码农干的事,即便做这些的人可能是个java或者python开发者,但是编程只是他们的副业而已,他们的主业却是数据科学。但是,有一个问题,既然是副业,也就是说这些数据科学家并不是太会编程,然而,不会编程,数据处理时很艰难的,为了解决这个棘手的问题,程序员们开发了一种新的模式,数据科学家往往都很精通数据库,即sql处理,因此搭建了一个sql到编程的一个桥梁,即hive。

  • hive的设计目的

    hive设计的目的就是让精通sql技能的分析师能够对利用大数据算法进行数据操作(增删改查),这些大数据算法都是程序员们的做的,或者说是程序员们设计的。

  • 更加优美的解释

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

  • hive架构

    enter description here

    • metastore,hive的数据仓库,相当于数据库,对应于hdfs的文件
    • CLI、JDBC、WEB GUI分别对应命令行接口、开发jdbc接口、浏览器接口(解对数据进行查看和操作的窗口)
    • Driver:即驱动器连接器,连接操作到hdfs
  • hive搭建

    • 一个hadoop集群错误的处理
      今天启动hadoop集群后,本来是两个namenode,最后active启动了,standby失败了,通过查看启动日志,发现错误总是指向历史任务job,即hadoop集群重启之后总是执行上次失败的任务,导致有缓存存在,无法跳过。错误类似于如下:
      ERROR org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader: Encountered exception on operation AddOp [length=0, inodeId=16828, path=/usr/output/friendSort/_SUCCESS, replication=3, mtime=1525359058429

    网上的解决办法:

    主节点命令输入:启安全模式,并保存,离开sudo -u hdfs hdfs dfsadmin -safemode entersudo -u hdfs hdfs dfsadmin -saveNamespacesudo -u hdfs hdfs dfsadmin -safemode leave辅节点命令输入:获取上面保存的fsimage,恢复(具体啥意思我也没弄清楚,应该技术恢复之前的数据,擦除当前的)sudo -u hdfs hdfs namenode -bootstrapStandby -force
    • 直接上传hive压缩包,解压,添加环境变量
    • hive配置
      hive配置有三种方式:第一种是本地配置,第二种是使用单机mysql作为仓库,第三种是使用远程mysql数据库。这里使用本地mysql数据库
      • 复制修改配置文件:hive-site.xml,删除所有内部配置信息,添加如下:
        “` stylus
        hive.metastore.warehouse.dir
        /user/hive_remote/warehouse

  javax.jdo.option.ConnectionURL
  jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true
  javax.jdo.option.ConnectionDriverName
  com.mysql.jdbc.Driver
  javax.jdo.option.ConnectionUserName
  root
  javax.jdo.option.ConnectionPassword
  root
“`
* 安装mysql,并创建metastore数据库,设置用户权限(否则无法访问)
* 启动hive,成功:直接输入hive命令(这里面错误可能很多,部分错误解决办法如下)

  • 错误记录:(20%的时间学习,80%的时间在找错)
    • java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
      启动metastore hive --service metastore
    • Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083.
      hive metastore进程 已经有启动过了,应该讲相关的进程kill 掉。ps -ef |grep hive将hive 相关进程kill 掉。kill -9 2545,然后重新启动:hive --service metastore
    • 启动hive时报错Access denied for user ‘root’@’hadoop01’ (using password: YES)
      原因:权限问题或者密码问题
      密码问题去看配置,权限问题:第一步:查看mysql数据库所有的权限数据select host,user,password from mysql.user;,修改权限update mysql.user set host = '%' where user = 'root' and host = '127.0.0.1';,刷新修改flushprivileges;
    • hive 安装警告 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
      在0.10 0.11或者之后的HIVE版本 hive.metastore.local 属性不再使用。在配置文件hive-site.xml 中删除hive.metastore.local配置项
    • mysql unrecognized service问题解决
      centos安装mysql公有三个服务,必须需都安装完全。通过rpm -q mysql查看mysql安装的服务,少那个重新安装
    • hive无命令
      环境变量没生效:

更多hive内容:

相关博客:

转载地址:http://ehepi.baihongyu.com/

你可能感兴趣的文章
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>