文章目录

  • 前沿
  • 文档列表
  • Hadoop
    • ssh: Could not resolve hostname
    • Failed on local exception: java.io.IOException: Connection reset by peer
    • mkdir: `input': No such file or directory
  • Hive
    • schematool -dbType mysql -initSchema
    • beeline Connection refused
    • Expression not in GROUP BY
  • 其他学习小助手

前沿

此文章基于 SingleCluster 的 Pseudo-Distributed,
如果是Cluster,还没研究。。

文档列表

官方文档

老版本中文对照文档

其他博客文档

Hadoop

ssh: Could not resolve hostname

Pseudo-Distributed 模式启动dfs 的时候

[work@hostname123 ~/hadoop]sbin/start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [hostname123]
hostname123: ssh: Could not resolve hostname hostname123: Name or service not known

是因为 hostname hostname123 没有域名解析,在/etc/hosts里加一下就好了

sudo vim /etc/hosts...
127.0.0.1 hostname123
...

stackoverflow 相关回答

hostname的问题需要 结合下文参考

Failed on local exception: java.io.IOException: Connection reset by peer

官方文档中 Pseudo-Distributed_Operation 中的一个配置。

etc/hadoop/core-site.xml:

<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

按照如此配置,启动dfs后,logs/hadoop-work-datanode-localhost.log 日志会报错

2019-05-21 10:40:47,218 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: localhost/127.0.0.1:9000

并且执行示例中的 bin/hdfs dfs -mkdir /user 后,会报错

DestHost:destPort localhost:9000 , LocalHost:localPort localhost/127.0.0.1:0. Failed on local exception: java.io.IOException: Connection reset by peer

而且官方示例中的 NameNode - http://localhost:9870/ 也无法访问

大概原因可能是 datanode 用localhost 导致了一些冲突。(没细查,有一个bind error,反正日志里好多报错)

我们把 localhost 改成内网地址。但是防止改动localhost 引起不必要麻烦,所以我们新建一个host

sudo vim /etc/hosts...
#内网网卡地址
192.168.23.12 hadoophost
...

然后把 etc/hadoop/core-site.xml: 改为

<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoophost:9000</value></property>
</configuration>

然后重启dfs,看日志正常了

2019-05-21 10:44:44,089 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Successfully sent block report 0xa93edda077e08d43, containing 1 storage report(s), of which we sent 1. The reports had 0 total blocks and used 1 RPC(s). This took 5 msec to generate and 77 msecs for RPC and NN processing. Got back one command: FinalizeCommand/5.
2019-05-21 10:44:44,089 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Got finalize command for block pool BP-1814454983-127.0.0.1-1558406194589

同时 locahost:9870 也可以访问了。

mkdir: `input’: No such file or directory

官方文档中 Pseudo-Distributed_Operation 中 Execution 的 Setp 5 中

bin/hdfs dfs -mkdir input

执行之后报错
mkdir: `input’: No such file or directory

需要改为执行

bin/hdfs dfs -mkdir  -p input

Hive

schematool -dbType mysql -initSchema

如果不用derby,采用mysql存储 元数据库的话,需要安装 mariadb(mysql) ,并且下载 mysql-connector-java-8.0.16.jar lib
MysqlConnectorJava下载
注意,需要选择 Platform Independent

mysql-connector-java-8.0.16.jar 放到 $HIVE_HOME/lib/ 下面

编辑 $HIVE_HOME/conf/hive-site.xml 文件 (hive-default.xml.template 是默认示例配置)

数据库: hivedb
Driver: com.mysql.cj.jdbc.Driver
数据库用户名:root
数据库密码:root

<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.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>root</value><description>password to use against metastore database</description></property>
</configuration>

执行初始化即可。

schematool -dbType mysql -initSchema

PS: 默认MySQL必须要有密码,没有密码会提示需要密码,可能也可以不用密码,懒得弄了

beeline Connection refused

执行

beeline -u jdbc:hive2://localhost:10000

提示

Connecting to jdbc:hive2://localhost:10000
19/05/21 19:05:20 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Could not open connection to the HS2 server. Please check the server URI and if the URI is correct, then ask the administrator to check the server status.
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0)

大概率是因为 hiveserver2 没启动起来,查看 10000 端口是否有监听,如果没有的话,多查几次,如果有了再进行连接。

netstat -anop|grep 10000
...
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:58990         127.0.0.1:10000         ESTABLISHED 19496/java           keepalive (6832.63/0/0)
...

Expression not in GROUP BY

hive中group by的时候

select col_1,col_2 from table_name group by col_1;

会提示:

FAILED: SemanticException [Error 10025]: Line 1:12 Expression not in GROUP BY key ‘col_2′

有两种解决方法:

  1. 不关心col_2的值,且有多个col_2,那么语句改成

select col_1, collect_set( col_2 )[0] from table_name group by col_1;

  1. 如果每个col_2的值不同且关心col_2的值,那么可以改成

select col_1,col_2 from table_name group by col_1,col_2;

http://one-line-it.blogspot.com/2012/11/hive-expression-not-in-group-by-key.html

其他学习小助手

Hadoop大神的博客
Sqoop 学习小助手

Hadoop 新手填坑指南相关推荐

  1. 开发工具总结(4)之Android Studio3.0填坑指南

    序言 Android Studio 3.0 上篇讲了: 全面总结Android Studio2.X的填坑指南 这篇讲一下AS3.0的坑.. 作为这个世界上走在最前沿的生物"猿",怎 ...

  2. Android Studio 填坑指南

    前几天发布了一篇名为<Android Studio 安装.配置及第一个程序演示>的博文,有不少童鞋都认真阅读过并照步骤一步一步操作了一遍,有滴如期成功地装好了,然鹅有滴反映说这不对呀,为森 ...

  3. 第二篇:salt-api使用填坑指南

    前言 salt-api在使用时,有些坑欲哭无泪,一路趟雷过后,总结了一趟salt-pai使用填坑指南,保君一路畅通. salt-api 安装 #本文的安装版本 2018.3.2-1.el6 yum i ...

  4. alert点击确定后跳转_公众号/h5 跳转到小程序填坑指南

    公众号/h5 跳转到小程序填坑指南 本文介绍的是使用微信开放标签 wx-open-launch-weapp 实现微信浏览器内网页跳转到任意合法合规的小程序里,官方要求微信版本为:7.0.12 及以上, ...

  5. 开发工具总结(2)之全面总结Android Studio2.X的填坑指南

    前言:好多 Android 开发者都在说Android Studio太坑了,老是出错,导致开发进度变慢,出错了又不知道怎么办,网上去查各种解决方案五花八门,有些可以解决问题,有些就是转来转去的写的很粗 ...

  6. KKBOX音乐——数据分析,用户研究与填坑指南

    KKBOX音乐--数据分析,用户研究与填坑指南 导语 1 数据来源 2 数据处理 2.1 录入数据 2.2 数据类型 3 探索性分析 3.1 MySQL+Excel 3.1.1 每年3月最先注册的前1 ...

  7. Redmine3.3.3 搭建与不完全填坑指南

    为什么80%的码农都做不了架构师?>>>    Redmine3.3.3 搭建与不完全填坑指南 [TOC] 概要 Redmine3.3.3 搭建.不完全填坑指南.不联网安装.Wind ...

  8. NW.JS填坑指南(解决Flash插件、视频播放等故障)

    目录 NW.JS填坑指南 NW.js是什么? NW.js 和 electron的选择 开发工具IDE 下载nwjs 版本信息 简单的实例 改图标 改合成exe的图标 改图标第二种方案是 播放不了视频 ...

  9. python find函数_Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案

    本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. Python 装饰器简介 装饰器(Decorator)是 Python 非常实用的一个语法糖功能.装饰器本质是一种返回值也是函数的函数,可以称之 ...

最新文章

  1. .classpath文件
  2. MySQL--使用innodb_force_recovery修复数据库异常
  3. Spring Boot 2 + Redis 对象缓存
  4. vagrant 环境配置
  5. php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...
  6. 清晨给研究生改论文改到“火大”
  7. [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝...
  8. python QQ自动添加好友
  9. spring AOP切面及日志记录实现
  10. 经天测绘测量工具包_公共土地测量系统
  11. 基于JavaEE的居民水电费管理系统_JSP网站设计_MySQL数据库设计
  12. 跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类
  13. 计算机管理员如何改名,win10修改管理员名称怎么改名_win10本地账户管理员改名如何操作...
  14. 在线生鲜订购配送系统,生鲜订购系统 生鲜配送系统 前端+后台 Android源码+SSH后台管理系统+MySQL数据库
  15. 啊哈添柴挑战Java1080. 请告诉我谁小?
  16. Team System:基本 Power Tool 工具
  17. 通用后台管理系统前端界面
  18. 数据库索引(B树,B+树,哈希)
  19. 云主机的优势有哪些?
  20. TridentNet解读

热门文章

  1. 轻松制作美容美发线下门店电子优惠券的实用方法分享
  2. 解释耳语协议和 Status.im
  3. 什么是windows的域(Domain)?
  4. 分布式与容器化的介绍
  5. sit是什么环境_测试环境是什么_搭建测试环境要遵循什么原则?
  6. 【必会系列】c语言转义字符
  7. 你可能已经被运营商http劫持了
  8. LaTeX 章节 Sections Chapters
  9. 基于中国剩余定理的秘密共享方案(miracl库)
  10. 微信,支付宝,收款二维码实时生成订单监控,免签支,付支付系统,个人收款,收款二维码...