Hadoop 新手填坑指南
文章目录
- 前沿
- 文档列表
- 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′
有两种解决方法:
- 不关心col_2的值,且有多个col_2,那么语句改成
select col_1, collect_set( col_2 )[0] from table_name group by col_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 新手填坑指南相关推荐
- 开发工具总结(4)之Android Studio3.0填坑指南
序言 Android Studio 3.0 上篇讲了: 全面总结Android Studio2.X的填坑指南 这篇讲一下AS3.0的坑.. 作为这个世界上走在最前沿的生物"猿",怎 ...
- Android Studio 填坑指南
前几天发布了一篇名为<Android Studio 安装.配置及第一个程序演示>的博文,有不少童鞋都认真阅读过并照步骤一步一步操作了一遍,有滴如期成功地装好了,然鹅有滴反映说这不对呀,为森 ...
- 第二篇:salt-api使用填坑指南
前言 salt-api在使用时,有些坑欲哭无泪,一路趟雷过后,总结了一趟salt-pai使用填坑指南,保君一路畅通. salt-api 安装 #本文的安装版本 2018.3.2-1.el6 yum i ...
- alert点击确定后跳转_公众号/h5 跳转到小程序填坑指南
公众号/h5 跳转到小程序填坑指南 本文介绍的是使用微信开放标签 wx-open-launch-weapp 实现微信浏览器内网页跳转到任意合法合规的小程序里,官方要求微信版本为:7.0.12 及以上, ...
- 开发工具总结(2)之全面总结Android Studio2.X的填坑指南
前言:好多 Android 开发者都在说Android Studio太坑了,老是出错,导致开发进度变慢,出错了又不知道怎么办,网上去查各种解决方案五花八门,有些可以解决问题,有些就是转来转去的写的很粗 ...
- KKBOX音乐——数据分析,用户研究与填坑指南
KKBOX音乐--数据分析,用户研究与填坑指南 导语 1 数据来源 2 数据处理 2.1 录入数据 2.2 数据类型 3 探索性分析 3.1 MySQL+Excel 3.1.1 每年3月最先注册的前1 ...
- Redmine3.3.3 搭建与不完全填坑指南
为什么80%的码农都做不了架构师?>>> Redmine3.3.3 搭建与不完全填坑指南 [TOC] 概要 Redmine3.3.3 搭建.不完全填坑指南.不联网安装.Wind ...
- NW.JS填坑指南(解决Flash插件、视频播放等故障)
目录 NW.JS填坑指南 NW.js是什么? NW.js 和 electron的选择 开发工具IDE 下载nwjs 版本信息 简单的实例 改图标 改合成exe的图标 改图标第二种方案是 播放不了视频 ...
- python find函数_Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. Python 装饰器简介 装饰器(Decorator)是 Python 非常实用的一个语法糖功能.装饰器本质是一种返回值也是函数的函数,可以称之 ...
最新文章
- .classpath文件
- MySQL--使用innodb_force_recovery修复数据库异常
- Spring Boot 2 + Redis 对象缓存
- vagrant 环境配置
- php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...
- 清晨给研究生改论文改到“火大”
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝...
- python QQ自动添加好友
- spring AOP切面及日志记录实现
- 经天测绘测量工具包_公共土地测量系统
- 基于JavaEE的居民水电费管理系统_JSP网站设计_MySQL数据库设计
- 跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类
- 计算机管理员如何改名,win10修改管理员名称怎么改名_win10本地账户管理员改名如何操作...
- 在线生鲜订购配送系统,生鲜订购系统 生鲜配送系统 前端+后台 Android源码+SSH后台管理系统+MySQL数据库
- 啊哈添柴挑战Java1080. 请告诉我谁小?
- Team System:基本 Power Tool 工具
- 通用后台管理系统前端界面
- 数据库索引(B树,B+树,哈希)
- 云主机的优势有哪些?
- TridentNet解读