
大数据
乐之者java
个人主页:http://www.roadjava.com/
展开
-
zookeeper的Leader选举过程分析
zookeeper中Leader的选举是保证分布式数据一致性的关键所在,当zookeeper集群中的一台服务器出现以下两种情况之一时,就需要进入Leader选举。 (1) 服务器初始化启动。 (2) 服务器运行期间无法和Leader保持连接,即leader挂掉了。先来看第一种情况,就是集群配好了,初始启动的情况,关于zookeeper集群的安装与配置参考“zookeeper的安装与集群配置”。一、 服务器启动时期的Leader选举 若进行Leader选举,则至少需要两台机器,这里选原创 2020-07-16 19:46:22 · 261 阅读 · 0 评论 -
HDFS文件块为什么设置为128M?
一HDFS概念1.1概念HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS的设计适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。1.2组成1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。2)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。3...原创 2020-07-16 19:45:54 · 912 阅读 · 0 评论 -
hdfs客户端操作
这里hdfs客户端指的是eclipse一、获取hadoop安装包解压后进入share文件夹里面的所有jar包二、这里如果你客户端(eclipse所在机器)是win7,需要编译hadoop源码来适应你的机器。三、配置HADOOP_HOME环境变量和PATH四、拷贝win7电脑上的文件到虚拟机hadoop集群上:publicclassHdfsClientDemo1{ publicstaticvoidmain(String[]args)throwsException{...原创 2020-07-15 18:55:47 · 249 阅读 · 0 评论 -
MapReduce、hive、hadoop的一些笔记
mr: input--split---map---shuffler(洗牌,合并和排序)-reduce(浓缩)--final split 默认是按行分 map的value默认按空格分隔 conf/mapred-site.xml:<configuration><property><name>mapred.job.tracker</name><value>localhos...原创 2020-07-15 18:55:28 · 246 阅读 · 0 评论 -
hadoop的组成和hadoop-1.2.1.tar.gz的安装
hadoop的组成hdfs(来源于google的gfs)mapreduce(简称mr,是一个离线的分布式计算框架。和其他几种计算框架的区别:storm是流式计算框架,适合实时计算。spark是内存计算框架,适合做快速得到结果的计算) hbase(来源于谷歌的bigtable)hadoop结构name node(存放文件拥有者,权限,文件由哪些块组成(由启动时由datanode上报)+secondary nam...原创 2020-07-15 18:54:37 · 396 阅读 · 0 评论 -
hbase命令汇总与常用命令演示以及flush命令详解
hbase常用命令汇总这个分类其实并不是我来做的,我们在使用hbase shell命令进入hbase的交互式命令行之后,键入help命令,hbase就会列出所有的可用命令,并且也给你归好了类别。我这里列出所有的命令。所有命令组: 类别: 普通 命令: status, table_help, version, whoami 类别: ddl 命令: alter, alter_async, alter_status, create, describe, disable, ...原创 2020-05-27 20:28:12 · 1437 阅读 · 0 评论 -
hbase单机版搭建以及完全分布式集群搭建详细过程
hbase单机版搭建并不需要hadoop环境,zookeeper也是hbase使用自己内部的zookeeper,只需要一个hbase安装包hbase-1.2.6-bin.tar.gz即可完成hbase单机版的搭建。一、上传hbase安装包到root目录下二、解压:[root@node113~]#mkdir-p/usr/local/hbase&&tar-zxvfhbase-1.2.6-bin.tar.gz-C/usr/local/hbase三、切换到hba...原创 2020-05-27 20:24:57 · 1101 阅读 · 0 评论 -
jdk和hadoop集群对不同版本hbase的支持情况
不同版本jdk对不同版本的hbase的支持情况,下面是官网上的内容:HBase Version JDK 7 JDK 8 2.0 Not Supported yes 1.3 yes yes 1.2 yes yes 比较老的hbase版本的支持情况见下图:不同版本的hadoop对不同版本的hba原创 2020-05-27 20:19:50 · 768 阅读 · 0 评论 -
journalnode running as process 1347. Stop it first.
在node113主namenode节点上运行命令"./start-dfs.sh"启动hadoop集群的时候,出错journalnode running as process 1410. Stop it first.和zkfc running as process 1856. Stop it first.详细报错如下:Startingjournalnodes[node112node113node114]node114:journalnoderunningasprocess1347...原创 2020-05-27 20:18:49 · 2744 阅读 · 0 评论 -
hadoop生态系统以及hbase简介
拿一张比较老的图来说,自己画太费劲了:谷歌google有三篇论文gfs、mapreduce、bigtable,这三篇论文不是纯讲空话的应付之作,而是确确实实提出来了新的思想,也因为这三篇论文,才对应的有了hdfs、mapreduce、hbase。数据,海量的数据拿来做什么?首先要考虑如何存储这些海量的数据,hdfs解决了数据的存储,hdfs:hadoop file system。有了存储,其次才能谈到数据的计算,mapreduce(mr),...原创 2020-05-27 20:17:51 · 1036 阅读 · 0 评论 -
eclipse关联hadoop源码
在开发hadoop程序时,引入上百个jar包实属平常,有时候想看下源码或者看下函数的注释,就需要关联hadoop源码,其实在eclipse中看hadoop的源码跟其他jar包的方式是一样的。你需要首先下载下来你的hadoop源码包,比如hadoop-2.6.5-src.tar.gz,解压,在eclipse中按住"crtl+鼠标左键点击hadoop里面的某个类",在弹出的窗口中点击"Attach Source..."这个按钮:选择解压后的hadoop源码文件夹即可:最后点击ok,就可以看到源码原创 2020-05-12 22:07:43 · 419 阅读 · 0 评论 -
自己完成一个简单的mapreduce程序
hdfs上的数据源 search.txt,我们这里依然使用讲解hive案例的那个数据源,通过把hive执行的结果与我们自己写的mapreduce的结果作比较,来验证是否编码正确,以及能否正确理解mapreduce。数据源参考我之前的文章"hive实例--分析每个月的查询量",比较多,我就不粘贴了。先定义StatisticsMapper类,继承并实现map方法即可:packagecom.roadjava.hadooptest;importjava.io.IOException;impor..原创 2020-05-12 22:05:27 · 828 阅读 · 0 评论 -
Operation category READ is not supported in state standby
今天启动hadoop集群之后,打开hdfs管理界面来查看hdfs上的文件的时候,没有任何东西显示,并且报错:Operation category READ is not supported in state standby。如下图所示:通过查看namenode的状态,得知当前node113上的namenode是standby(从namenode)状态,使用nn1对应的namenode来访问才可以,nn1在node112上,因此改为如下访问方式http://node112:50070:原创 2020-05-12 22:03:37 · 2610 阅读 · 0 评论 -
hadoop里的rpc介绍与测试代码
我们知道客户端与hadoop的namenode之间的通信、namenode与datanode之间的通信都是通过rpc协议来完成交互的,那么rpc协议又是什么呢?所谓rpc,全称Remote Procedure Call Protocol,翻译过来就是远程过程调用协议的意思,基于rpc这个协议的实现,分为客户端和服务端,客户端可以调用服务端的接口方法,即便客户端和服务端不再一台服务器上,其实rpc就是不同系统间数据交换的一种方式,其他方式我们知道的诸如httpclient,mq,webservice等,都可以原创 2020-05-12 22:02:33 · 219 阅读 · 0 评论 -
在windows下运行hadoop相关的程序时出现winutils.exe的错误
windows上并没有安装hadoop,hadoop在linux虚拟机上安装着,当使用代码操作虚拟机上的hdfs、hive、或者测试rpc时,出现如下错误:ERROR [main] util.Shell (Shell.java:getWinUtilsPath(396)) - Failed to locate the winutils binary in the hadoop binary pathjava.io.IOException: Could not locate executable nul原创 2020-05-12 22:00:55 · 3561 阅读 · 2 评论 -
hadoop的hdfs脚本命令行常用命令
在hadoop安装完成后,其bin目录下的文件是用来管理hdfs和mapreduce以及yarn的,如下所示:[root@node112/usr/local/hadoop/hadoop-2.6.5/bin]#lscontainer-executorhadoop.cmdhdfs.cmdmapred.cmdtest-container-executoryarn.cmdhadoophdfsmapredrcc...原创 2020-05-12 21:58:28 · 653 阅读 · 0 评论 -
hive在hadoop完全分布式集群中的测试
首先告诉大家一个结论,hive不管是在伪分布式的hadoop中,还是在完全分布式的hadoop集群中,安装与配置方法都是不变的,我们已经说过了,也专门写过了详细的文章,参见hive的安装与测试。我们这篇文章只是在hadoop集群中再给大家验证下hive的可用性。下面直接上测试例子。怎么创建数据库和表以及从linux本地导入数据到hive的表中,请参见上边的文章hive实例--分析每个月的查询量,我这里直接运行sql了。hive>selectcount(*)fromt_searchwo...原创 2020-05-11 23:39:01 · 355 阅读 · 0 评论 -
hive不能创建表,报错:Call From node113/192.168.28.113 to node113:9000 failed on connection exception
现象如下:hive> create table t_searchword( > search_time string, > search_text string > ) > row format delimited fields terminated by '|' stored as textfile;FAILED: Execution Error, return code 1 from org.apache.hadoop...原创 2020-05-11 23:37:14 · 689 阅读 · 0 评论 -
hive中日志存放位置
默认情况下,hive出错的日志会存放在/tmp/root/hive.log下面,其中root为使用hive的用户名称。如在hive中执行创建表语句的时候报错如下:hive> create table t_searchword( > search_time string, > search_text string > ) > row format delimited fields terminated by '|' stored...原创 2020-05-11 23:36:06 · 2051 阅读 · 0 评论 -
All specified directories are failed to load
问题背景,在node113上搭建的伪分布式集群,已经测试运行通过,后来又与另外两台虚拟机搭建完全分布式集群,node113上的datanode无法启动,查看日志有如下错误信息:2018-01-19 00:19:46,818 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) ser原创 2020-05-11 23:35:27 · 316 阅读 · 0 评论 -
hadoop2.6.5完全分布式集群搭建
要搭建起一个hadoop完全分布式集群至少需要3台机器,各个机器上分别运行哪些节点,要运行的节点都有什么,现在梳理如下:针对上面表格的名词解释:node112: ip 为192.168.28.112的centos7服务器node113: ip 为192.168.28.113的centos7服务器node114: ip 为192.168.28.114的centos7服务器nn:namenode,属于hdfs,相当于hdfs的老大dn:datanode,属于hdfs,相当于hdfs的原创 2020-05-11 23:34:33 · 826 阅读 · 0 评论 -
java连接hive1.2.2执行hive sql
仅仅通过./hive启动hive1.2.2的话,hive本质上就相当于hdfs的一个客户端,本身并不是一个服务,如果想要通过java代码以jdbc的方式去连接hive,那么首先要解决的是把hive变成服务器上的一个服务。以jdbc方式连接hive的步骤:一、以./hive --service hiveserver2的方式启动hive[root@node113/usr/local/hive/apache-hive-1.2.2-bin/bin]#./hive--servicehiveserv...原创 2020-05-11 23:31:55 · 1296 阅读 · 0 评论 -
java操作hdfs实现上传、下载等功能
使用hadoop提供的接口可以轻松的实现利用java来操作hdfs。一、如从本地往hdfs上上传个文件:packagehadoop.hdfs;importjava.io.FileInputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.URI;importorg.apache.hadoop.conf.Configuration;importorg.apache.had...原创 2020-05-11 23:30:30 · 436 阅读 · 0 评论 -
hive执行导入操作以及运行sql等操作的时候hadoop会发生什么样的变化
先看hdfs这边的变化: 当使用load data local inpath '/root/search.txt' into table t_searchword;这类的语句导入数据到hive表中的时候,hadoop机器会在hdfs根目录下为hive创建目录/usr/hive/warehouse(第一次使用hive创建数据库的时候自动创建,以后创建的数据库都在这个目录下),在/usr/hive/warehouse目录下是lzzcmsdb.db,也就是你使用hive创建的数...原创 2020-05-11 23:29:42 · 266 阅读 · 0 评论 -
hive交互式粘贴sql出现Display all 475 possibilities? (y or n)
在使用hive进入hive交互式命令行之后,在windows上写了一大段代码,直接粘贴进去却成了下面的样子:hive> create table t_searchword( > Display all 475 possibilities? (y or n) > g, > Display all 475 possibilities? (y or n) > g > ) > row format delim...原创 2020-05-11 23:27:40 · 1228 阅读 · 0 评论 -
hive实例-分析每个月的查询量
案例描述,现在mysql里面有如下的表结构与表数据:search_time:表示某一个时刻search_text:表示某一个时刻搜索了什么内容现在的需求是这样子的:要求统计出每一个月的查询总量,需求很简单,在MySQL中可以这样写:SELECTDATE_FORMAT(search_time,'%Y-%m')yuefen,count(*)totalsearchFROMsearchwordGROUPBYDATE_FORMAT(search_time,'%Y-%m')结...原创 2020-05-11 23:25:48 · 2515 阅读 · 0 评论 -
hive连接mysql5.7时出现警告信息 Establishing SSL connection without server's identity
hive启动的时候出现一大堆警告信息:Wed Jan 17 22:27:49 EST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if expl原创 2020-05-10 11:16:00 · 278 阅读 · 0 评论 -
hive1.2.2启动报错 Found class jline.Terminal, but interface was expected
通过./hive 命令启动hive的时候报错:[ERROR] Terminal initialization failed; falling back to unsupportedjava.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expectedat jline.TerminalFactory.create(TerminalFactory.java:101)at jlin原创 2020-05-10 11:15:12 · 242 阅读 · 0 评论 -
hive1.2.2启动出现Relative path in absolute URI:错误
在hadoop正常启动,hive也配置好了的情况下,使用命令./hive 启动hive的时候抛出如下错误Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D原创 2020-05-10 11:13:19 · 773 阅读 · 0 评论 -
hive的安装与测试
hadoop2.6.5安装测试完成后,我们先不着急讲其他的内容,先把hive给安装了,我这里简单介绍一下hive,怎么说呢?hive是一个由解释器(把hive sql解释为java代码),编译器(把java代码转化为class文件),优化器(优化由hive sql转化而来的java代码)组成的数据仓库,虽然叫做数据仓库,hive里面并不真正存放数据,hive使用的数据真正是存储在hdfs中的,hive相当于hdfs的一个客户端,想要hive正常运行,必须要有hadoop,在hdfs和m...原创 2020-05-10 11:04:25 · 710 阅读 · 0 评论 -
hadoop伪分布式的搭建与测试
hadoop支持三种方式来搭建,分别是1.单击模式,即Local (Standalone) Mode2.伪分布式,即Pseudo-Distributed Mode3.集群方式,即Fully-Distributed Mode单击模式就不说了,没啥用。这次教程我们来看看如何一步步搭建伪分布式的hadoop,所谓伪分布式,也是运行在一台机器上的,hadoop也只需安装一个,知识启动各个服务的时候是不同的java进程罢了。1.获取64位hadoop安装包并上传到机器上:...原创 2020-05-10 11:00:46 · 1137 阅读 · 0 评论 -
protobuf-2.5.0的安装
hadoop编译的时候需要用到protocol buffer。安装步骤:1.tar -zxfprotobuf-2.5.0.tar.gz2.cd protobuf-2.5.03.看一下当前目录下的文件:[root@node113~/protobuf-2.5.0]#lsaclocal.m4config.guessconfigureCOPYING.txtexamplesinstall-shltmain....原创 2020-05-09 00:19:25 · 1124 阅读 · 0 评论 -
centos7上安装maven并配置
在linux上假设hadoop时,因为linux是64位的,因此需要编译hadoop,编译的时候需要用到maven,以下记录了再centos上安装maven的过程。下载apache-maven-3.2.5-bin.tar.gz:https://pan.baidu.com/s/1d3nzL8安装过程比较简单,跟windows的原理是一样的,都是解压,配置环境变量,修改settings.xml这样的套路。一、tar -zxvf apache-maven-3.2.5-bin.tar.gz -C /us原创 2020-05-09 00:18:13 · 526 阅读 · 0 评论 -
hadoop2.6.5源码编译使之能在64位平台正常使用
环境信息:jdk1.7.0_80 centos7.4.1708maven3.2.5hadoop2.6.5一、在apache官网https://archive.apache.org/dist/hadoop/common/hadoop-2.6.5/上下载hadoop2.6.5的源码包,并上传到centos7.4上,如图:二、解压hadoop的源码包tar -zxvf hadoop-2.6.5-src.tar.gz,查看一下解压后的文件:[root@node113~...原创 2020-05-09 00:17:17 · 322 阅读 · 0 评论