开发工具intelijidea 2.19.3
目前围绕Hadoop体系的大数据架构包括:
传统大数据架构
数据分析的业务没有发生任何变化,但是因为数据量、性能等问题导致系统无法正常使用,需要进行升级改造,那么此类架构便是为了解决这个问题。依然保留了ETL的动作,将数据经过ETL动作进入数据存储。数据分析需求依旧以BI场景为主,但是因为数据量、性能等问题无法满足日常使用。
流式架构
在传统大数据架构的基础上,流式架构数据全程以流的形式处理,在数据接入端将ETL替换为数据通道。经过流处理加工后的数据,以消息的形式直接推送给了消费者。存储部分在外围系统以窗口的形式进行存储。适用于预警、监控、对数据有有效期要求的情况。
Lambda架构
Lambda架构算大数据系统里面举足轻重的架构,数据通道分为两条分支:实时流和离线。实时流依照流式架构,保障了其实时性,而离线则以批处理方式为主,保障了最终一致性。适用于同时存在实时和离线需求的情况。
Kappa架构
Kappa架构在Lambda的基础上进行了优化,将实时和流部分进行了合并,将数据通道以消息队列进行替代。因此对于Kappa架构来说,依旧以流处理为主,但是数据却在数据湖层面进行了存储,当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经过消息队列重播一次则可。
Unifield架构
Unifield架构将机器学习和数据处理揉为一体,在流处理层新增了机器学习层。数据在经过数据通道进入数据湖后,新增了模型训练部分,并且将其在流式层进行使用。同时流式层不单使用模型,也包含着对模型的持续训练。适用于有着大量数据需要分析,同时对机器学习方便又有着非常大的需求或者有规划的情况。

###eclipse maven 打包jar

最近写项目需要将其打成jar上传到服务器上,之前一直写到是web,打的是war包,这次写的是游戏服务器,是jar包。顺便记之。
maven打包
关于打包有两种类型:①不带依赖的打包,②带依赖的打包
默认情况下我们使用maven install打包生成的是第①种,如果想要第②种,可以使用插件实现使用插件:
<build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><version>2.2</version><configuration><archive><manifest><!-- 我运行这个jar所运行的主类 --><mainClass>com.lhcc.weblog.ReadWebLog</mainClass></manifest></archive><descriptorRefs><descriptorRef><!-- 必须是这样写 -->jar-with-dependencies</descriptorRef></descriptorRefs></configuration></plugin></plugins>
</build>
注意:需要在run build运行的时候添加如下参数:assembly:assembly
这样,将会生成①不带依赖的打包和②带依赖的打包。插件生成的jar.png生成带依赖jar主要两个步骤
①在pom中添加plugin依赖
②build的时候添加assembly:assembly参数

###myeclipse maven 打包jar

第一步:pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lhcc</groupId><artifactId>hadoop-word-count</artifactId><version>1.0</version><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.3</version><configuration><source>8</source><target>8</target></configuration></plugin></plugins></build><!--以下内容不是打包必须的 因项目而异--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><hadoop.version>2.6.0-cdh5.15.2</hadoop.version></properties><!---配置CDH仓库地址 确保maven配置的settings.xml中配置的镜像地址mirrorOf的值没有使用* 否则这边配的repositories就会被覆盖不生效--><repositories><repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url></repository></repositories><dependencies><!--Hadoop-client--><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.8.1</version></dependency></dependencies>
</project>
第二步
maven install

###在ubuntu环境下面运行上面的jar

java -cp weblog.jar com.lhcc.weblog.ReadWebLog /home/fgq/codec/SogouQ.log /home/fgq/codec/weblogs.log
注意 SogouQ.log 网上下载的sogo的日志数据https://www.sogou.com/labs/resource/q.php

-----------------------------------------【flume】---------------------------------------------------------------
###flume 从[监听文件]中获取数据信息且下沉Sink到另一个监听ip(192.168.146.100)和端口(4545)中

1.  [agent0.properties]a0.sources = s1a0.sinks = k1a0.channels = c1a0.sources.s1.type = avroa0.sources.s1.channels = c1#可以写死成192.168.146.100 也可以写成0.0.0.0a0.sources.s1.bind = 0.0.0.0a0.sources.s1.port = 4545a0.channels.c1.type = memorya0.channels.c1.capacity = 1000a0.channels.c1.transactionCapacity = 100a0.sinks.k1.type = loggera0.sinks.k1.channel = c12.先启动Avro[agent1.properties]的Source的监听端口(192.168.146.100:4545)flume-ng agent --conf conf --name a0 --conf-file conf/agent0.properties -Dflume.root.logger=INFO,console -Dorg.apache.flume.log.printconfig=true -Dorg.apache.flume.log.rawdata=true或flume-ng agent --conf conf --name a0 --conf-file conf/agent0.properties -Dflume.root.logger=INFO,console
3.[agent2.properties]a2.sources = r2a2.channels = c2a2.sinks = k2a2.sources.r2.type = exec#来源于监听文件weblogs.log文件a2.sources.r2.command = tail -F /home/fgq/codec/weblogs.loga2.sources.r2.channels = c2a2.channels.c2.type = memorya2.channels.c2.capacity = 1000a2.channels.c2.transactionCapacity = 100a2.channels.c2.keep-alive = 30a2.sinks.k2.type = avroa2.sinks.k2.channel = c2# 落地点是master机器的5555端口(主机名和端口号都必须与agent0.properties中开启的一致,否则会报错192.168.146.100:4545无法连接)a2.sinks.k2.hostname=192.168.146.100a2.sinks.k2.port=4545
4.再启动Avro的Sinkflume-ng agent --conf conf --name a2 --conf-file conf/agent2.properties -Dflume.root.logger=INFO,console -Dorg.apache.flume.log.printconfig=true -Dorg.apache.flume.log.rawdata=true或flume-ng agent --conf conf --name a2 --conf-file conf/agent2.properties -Dflume.root.logger=INFO,console*注意一定要先开启监听端口,后开启Avro的sink

-----------------------------------------【hbase】---------------------------------------------------------------
###在hbase shell中使用list命令报错:ERROR: Can’t get master address from ZooKeeper; znode data == null原因及解决方法

原因:运行hbase(zookeeper)的用户无法写入zookeeper文件,导致znode data为空。
解决方法:
方法一:重启hbase(可能是zookeeper或hbase不稳定造成的 重启不一定起作用)
方法二:在hbase-site.xml指定一个运行hbase的用户有写入文件权限的目录作为zookeeper数据目录,如<property><name>hbase.zookeeper.property.dataDir</name><value>/opt/zk_data</value></property>
方法三:格式化NameNode
(1)删除所有虚拟机上hadoop配置文件core-site.xml文件中指定的hadoop的临时目录(2)在slave1 slave2 slave3上启动journalnode  在两个NameNode(master或slave3)中选择一个(如master)执行hdfs格式化命令:hadoop namenode -format(3)把master上的fsimage文件拷贝到slave3上:scp -r /opt/hadoop-2.5.1 root@slave3:/opt(4)在两个NameNode(master slave3)中选择一个(如master)进行zookeeper格式化: hdfs zkfc -formatZK(5) 启动zookeeper(6)启动hdfs(7)启动hbase(8)进入hbase shell 命令行界面(9)输入list命令 就可以正常显示了

###s101: WARNING: /home/fgq/soft/hadoop-3.2.0/logs does not exist. Creating.
s102: /home/fgq/soft/hadoop/etc/hadoop/hadoop-env.sh: line 140: hbase: command not found
s102: WARNING: /home/fgq/soft/hadoop-3.2.0/logs does not exist. Creating.
Starting secondary namenodes [s103]
s103: /home/fgq/soft/hadoop/etc/hadoop/hadoop-env.sh: line 140: hbase: command not found

原因是 hbase的jar包没有正确导入到hadoop的classpath目录下面
参看 笔记hbase-day5的 hbase mr编程

hbase shell ERROR: Connection refused

确认一下是否启动了Hbase服务 start-hbase.sh

###阶段一操作

flume-ng agent --conf conf --name a0 --conf-file conf/agent0.properties -Dflume.root.logger=INFO,console
flume-ng agent --conf conf --name a2 --conf-file conf/agent2.properties -Dflume.root.logger=INFO,console
java -cp weblog.jar com.lhcc.weblog.ReadWebLog /home/fgq/codec/SogouQ.log /home/fgq/codec/weblogs.log

###阶段二操作

flume-ng agent --conf conf --name a1 --conf-file conf/agent1.properties -Dflume.root.logger=INFO,console
flume-ng agent --conf conf --name a2 --conf-file conf/agent2.properties -Dflume.root.logger=INFO,console
kafka-console-consumer.sh --zookeeper s101:2181,s102:2181,s103:2181 --topic weblogs  --from-beginning
java -cp weblog.jar com.lhcc.weblog.ReadWebLog /home/fgq/codec/SogouQ.log /home/fgq/codec/weblogs.log

###阶段三操作

kafka-create-topic.sh --zookeeper s101:2181,s102:2181,s103:2181 --replica 3 --partition 2 --topic weblogs访问时间\t用户ID\t[查询词]\t该URL在返回结果中的排名\t用户点击的顺序号\t用户点击的URLdatatime,userid,searchname,retorder,cliorder,cliurlcolumn=info:datatime,userid,searchname,retorder,cliorder,cliurl, timestamp=1574927730292, value=00:01:06\x096706952665130084\x09[\xE7\x81\xAB\xE7\xAE\xAD\xE4\xBD\x95\xE6\x97\xB6vs\xE6\xB9\x96\xE4\xBA\xBA\xE5\x95\x8A]\x094 6\x09wenwen.soso.com/z/q52390704.htm    kafka-server-start.sh config/s1.properties kafka-server-start.sh config/s2.properties kafka-server-start.sh config/s3.properties

[2019-11-28 01:06:06,607] ERROR Closing socket for /192.168.146.100 because of error (kafka.network.Processor)

kafka.common.KafkaException: Wrong request type 18
at kafka.api.RequestKeys.deserializerForKey(RequestKeys.scala:53)atkafka.network.RequestChannel.deserializerForKey(RequestKeys.scala:53) at kafka.network.RequestChannel.deserializerForKey(RequestKeys.scala:53)atkafka.network.RequestChannelRequest.(RequestChannel.scala:49)
at kafka.network.Processor.read(SocketServer.scala:353)
at kafka.network.Processor.run(SocketServer.scala:245)
at java.lang.Thread.run(Thread.java:745)
INFO conflict in /controller data: { “brokerid”:1, “timestamp”:“1574932456824”, “version”:1 } stored data: { “brokerid”:1, “timestamp”:“1574932455346”, “version”:1 } (kafka.utils.ZkUtils)[2019−11−2801:20:49,220]INFOIwrotethisconflictedephemeralnode["brokerid":1,"timestamp":"1574932456824","version":1]at/controllerawhilebackinadifferentsession,henceIwillbackoffforthisnodetobedeletedbyZookeeperandretry(kafka.utils.ZkUtils) [2019-11-28 01:20:49,220] INFO I wrote this conflicted ephemeral node [{ "brokerid":1, "timestamp":"1574932456824", "version":1 }] at /controller a while back in a different session, hence I will backoff for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils)[2019−11−2801:20:49,220]INFOIwrotethisconflictedephemeralnode["brokerid":1,"timestamp":"1574932456824","version":1]at/controllerawhilebackinadifferentsession,henceIwillbackoffforthisnodetobedeletedbyZookeeperandretry(kafka.utils.ZkUtils)


###hbase数据如何查看(存入后是编码后的内容)

###[2019-11-28 00:44:18,726] ERROR Closing socket for /192.168.146.100 because of error (kafka.network.Processor)
kafka.common.KafkaException: Wrong request type 18

###查看内存使用情况

 free -m

###maven启动storm+hbase程序时(或spark) tried to access method com.google.common.base.Stopwatch.()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator

解决方法  guava 冲突了,版本不一致,参考 http://www.luyixian.cn/news_show_4252.aspx,感谢这位作者
一般来说这样的问题是因为 pom 文件中有 google 的 guava 依赖吧?或者其他地方引用到了。 这个问题就是 guava 冲突了,版本不一致。所以大家优先去 pom 文件中排查。
有可能你会发现POM中并没有任何问题,那就去依赖包管理界面,比如idea的external Libraries查看以来的jar是否有guava,我的项目里面能看见有一个19版本的。这个貌似和spark不兼容,需要低版本到的guava,在pom里面添加一个15版本的,再次运行,发现没问题了。
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>15.0</version>
</dependency>

###Phoenix4.14.0-cdh5.14.2 Java api操作HBase
报错org.apache.hadoop.fs.FileSystem: Provider org.apache.hadoop.hdfs.DistributedFileSystem could not be instantiated

1.从集群拷贝以下文件:core-site.xml、hbase-site.xml、hdfs-site.xml文件放到工程src下
2.pom.xml配置内容<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--这个是phoenix-core的maven资源地址--><repositories><repository><id>cloudera</id><url>https://mvnrepository.com/artifact/org.apache.phoenix/phoenix-core/</url></repository></repositories><dependencies><dependency><groupId>org.apache.phoenix</groupId><artifactId>phoenix-core</artifactId><version>4.14.0-cdh5.14.2</version></dependency></dependencies>注意* 使用maven时 版本如果不更新的话 可以使用一下两步解决1.更改版本 2.删掉本地repository中的相关包内容 再次更新下载

-----------------------------------------【hive】---------------------------------------------------------------
###hive_异常_01_ Terminal initialization failed; falling back to unsupported

jar版本包冲突
Hadoop lib 下已经存在了 jline 0.9x ,但是在hive中将Jline升级到了Jline2。
启动hive的时候,由于hive依赖hadoop,启动hive,会将hadoop的配置以及jar包等等导入到hive中,导致jar包版本冲突。
这个报错需要删除hadoop目录下,需要删除下面目录下的文件,重启hadoop和hive即可
$HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar
将Hive根目录下jline-2.12.jar替换到hadoop中
注意*hive-2.3.6 hadoop-3.2.0 实现上述步骤依然不行
换hive-1.2.2版本

###hive_2.x不在支持 hive–MR 要想用必须降到hive_1.x版本

###hive> show databases; FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

这个应该是元数据的问题,hive的元数据存在mysql里面,所以如果你没有弄好mysql的权限,你的show databases是不可以用的。
解决办法:
1.首先检查你自己的hive-site.xml配置文件中的mysql账号和自己的创建hive_database的mysql账号是否一致。若不一致修改为创建了hive数据库的mysql账号。  <configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://192.168.1.195:3306/hadoop_hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>datanucleus.schema.autoCreateAll</name><value>true</value></property></configuration>
2.mysql的权限问题在mysql中:grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;grant all privileges on *.* to 'root'@'192.168.1.195' identified by '123456' with grant option;flush privileges; 刷新权限
3.hive的服务端没有打开  //做完前两步可以试试环境是否已经可以,可以后此步可以忽略1)hive --service metastore &2)然后Ctrl+C3)再hive,进去

-----------------------------------------【maven】---------------------------------------------------------------
###maven pom中的repository节点配置没有起作用

我的maven中的setting.xml配置文件里面关于mirror部分的配置如下:
<mirror><id>ibiblio</id><mirrorOf>*</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
错误就出在mirrorOf节点了,如果写*会覆盖掉所有的,不管是哪个repository,
最后都被这个镜像所mirror掉了,导致pom文件中的repository不生效了。
解决方案也很简单,把这个mirrorOf改掉就好了。具体修改建议参考maven官方说明:maven的私服配置:http://my.oschina.net/liangbo/blog/195739深入比较几种maven仓库的优先级:http://toozhao.com/2012/07/13/compare-priority-of-maven-repository/http://maven.apache.org/guides/mini/guide-mirror-settings.htmlMaven最佳实践--Maven仓库:http://juvenshun.iteye.com/blog/359256Maven仓库管理之Nexus:http://my.oschina.net/aiguozhe/blog/101537注意*myeclipse 也许反应比较慢 maven install 然后更新local Repository 然后update project或者重启myeclipse 醒目有错号没什么 只要编译成功了也可以运行

###Could not get the value for parameter encoding for plugin execution
default-resources Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies
could not be resolved: Failed to collect dependencies for org.apache.maven.plugins:maven-resources-plugin:jar:2.5 ()

  01.  先关闭eclipse02.  找到maven的本地仓库路径、例如(C:\Users\YourUserName.m2)03.  删除文件夹:repository04.  重新打开eclipse05.  clean 有问题的maven项目、点击Project → clean...06.  右键有问题的maven项目、依次点击Maven → Update Project...07.  关闭eclipse08.  打开eclipse09.  在Project Explorer中选中有问题的project10.  按F5键刷新一会11.  大功告成

###Unable to create project from archetype [org.scala-tools.archetypes:scala-archetype-simple:1.2 -> http://scala-tools.org/repo-releases]
The desired archetype does not exist (org.scala-tools.archetypes:scala-archetype-simple:1.2)

1.为了方便地创建Scala Maven项目,我们在Eclipse配置远程的Maven Archetype,ArcheType相当于项目模板。在Preference页面中选择Maven->Archetypes:
2.点击 Add Remote Catelog,在弹出框的catlog file输入:http://repo1.maven.org/maven2/archetype-catalog.xml
3.OK,完成。
4.可以新建maven创建scala项目 选择的archetype为scala-archetype-simple

###Error:scalac: Error: Error compiling the sbt component ‘compiler-interface-2.11.2-55.0’
sbt.internal.inc.CompileFailed: Error compiling the sbt component ‘compiler-interface-2.11.2-55.0’
at sbt.internal.inc.AnalyzingCompiler$.handleCompilationError1(AnalyzingCompiler.scala:331)atsbt.internal.inc.AnalyzingCompiler1(AnalyzingCompiler.scala:331) at sbt.internal.inc.AnalyzingCompiler1(AnalyzingCompiler.scala:331)atsbt.internal.inc.AnalyzingCompiler.anonfunanonfunanonfuncompileSources4(AnalyzingCompiler.scala:346)atsbt.internal.inc.AnalyzingCompiler4(AnalyzingCompiler.scala:346) at sbt.internal.inc.AnalyzingCompiler4(AnalyzingCompiler.scala:346)atsbt.internal.inc.AnalyzingCompiler.anonfunanonfunanonfuncompileSources444adapted(AnalyzingCompiler.scala:341)
at sbt.io.IO.withTemporaryDirectory(IO.scala:376)atsbt.io.IO.withTemporaryDirectory(IO.scala:376) at sbt.io.IO.withTemporaryDirectory(IO.scala:376)atsbt.io.IO.withTemporaryDirectory(IO.scala:383)
at sbt.internal.inc.AnalyzingCompiler...anonfun$compileSources2(AnalyzingCompiler.scala:341)atsbt.internal.inc.AnalyzingCompiler2(AnalyzingCompiler.scala:341) at sbt.internal.inc.AnalyzingCompiler2(AnalyzingCompiler.scala:341)atsbt.internal.inc.AnalyzingCompiler.anonfunanonfunanonfuncompileSources222adapted(AnalyzingCompiler.scala:335)
at sbt.io.IO.withTemporaryDirectory(IO.scala:376)atsbt.io.IO.withTemporaryDirectory(IO.scala:376) at sbt.io.IO.withTemporaryDirectory(IO.scala:376)atsbt.io.IO.withTemporaryDirectory(IO.scala:383)
at sbt.internal.inc.AnalyzingCompiler.compileSources(AnalyzingCompiler.scala:335)atorg.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.compileSources(AnalyzingCompiler.scala:335) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.compileSources(AnalyzingCompiler.scala:335)atorg.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getOrCompileInterfaceJar(CompilerFactoryImpl.scala:113)
at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.anonfunanonfunanonfungetScalac1(CompilerFactoryImpl.scala:49)atscala.Option.map(Option.scala:146)atorg.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:47)atorg.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:25)atorg.jetbrains.jps.incremental.scala.local.CachingFactory.1(CompilerFactoryImpl.scala:49) at scala.Option.map(Option.scala:146) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:47) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:25) at org.jetbrains.jps.incremental.scala.local.CachingFactory.1(CompilerFactoryImpl.scala:49)atscala.Option.map(Option.scala:146)atorg.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:47)atorg.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:25)atorg.jetbrains.jps.incremental.scala.local.CachingFactory.anonfun$createCompiler3(CachingFactory.scala:24)atorg.jetbrains.jps.incremental.scala.local.Cache.3(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.Cache.3(CachingFactory.scala:24)atorg.jetbrains.jps.incremental.scala.local.Cache.anonfun$getOrUpdate2(Cache.scala:20)atscala.Option.getOrElse(Option.scala:121)atorg.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19)atorg.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:24)atorg.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:27)atorg.jetbrains.jps.incremental.scala.remote.Main2(Cache.scala:20) at scala.Option.getOrElse(Option.scala:121) at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19) at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:27) at org.jetbrains.jps.incremental.scala.remote.Main2(Cache.scala:20)atscala.Option.getOrElse(Option.scala:121)atorg.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19)atorg.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:24)atorg.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:27)atorg.jetbrains.jps.incremental.scala.remote.Main.make(Main.scala:88)
at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:36)
at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)

(scala1_2.11.2时)可能是Java  jdk的版本过低(或过高),更改Java jdk的版本(1.8)
Project structure->修改jdk版本

###idea 运行Hadoop或spark程序时 报有关winutils的错误

使用idea在windows上连接远程hadoop开发
一.前置环境准备1.下载一份hadoop本地解压,配置HADOOP_HOME的环境变量   idea运行时会读这个环境变量然后找到他里面的bin文件,其实不需要启动 只要有bin这个目录就行,不然会报错 找不到HADOOP_HOME这个环境变量2.bin里面缺少了winutils.exe和hadoop.dll 需要额外下载https://github.com/steveloughran/winutils 下载后把bin替换hadoop的bin即可也可以不下载hadoop直接下载这个bin把环境变量配置成这个bin的上一级目录3.将hadoop.dll 复制到C:\Windows\System32中 否则 会报 Exception in thread "main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

-----------------------------------------【storm】---------------------------------------------------------------
###如何在ui上查看storm集群和任务

主页面上,
cluster summary:集群的概况
nimbus summary:
Supervisor Summary:
Nimbus Configuration
Topology Summary:最重要的有个search窗口,根据storm任务的topology name,搜索到对应任务,点击进入一个storm集群上跑的任务的topology name 是唯一的,否则提交会出错
点击到一个具体topology页面之后,Topology summary:概况Topology actions:对topology可以在页面进行操作Topology stats:最近不同时间段的统计数据spouts:所有的不同的spout,每个spout对应总共有多少executor,总共有多少个task,每个executor运行的task数量等于两者相除 想查看具体某个spout或者bolt (都属于component)的运行情况,只需要点击对应id上的链接        Component summary:        Component actions:对这个component进行操作        Spout stats:不同时间窗口的统计结果        Output stats:总的输出的统计        Executors:具体的执行线程,这个很重要 点击具体某个executor的port连接,可以查看日志 这个上面打出来的日志,是包含整个worker进程所有executor线程的日志bolts:同上Worker Resources:具体的worker进程Topology Visualization:可视化Topology Configuration:整个topology的配置

-----------------------------------------【flink】---------------------------------------------------------------
###命令生成的flink项目 cmd下

mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-scala -DarchetypeVersion=1.9.0

###flink编译报错:could not find implicit value for evidence parameter of type org.apache.flink.api.common…

这种异常的发生通常是因为程序需要一个隐式参数(implicit parameter),解决方法import org.apache.flink.api.scala.ExecutionEnvironment  改为=》import org.apache.flink.api.scala._

###java.lang.ClassNotFoundException: org.apache.flink.api.common.typeinfo.TypeInformation

类没有找到,勾选maven面板中的profiles选项

###Cannot resolve method ‘socketTextStream’ in ‘ExecutionEnvironment’

1.因为没有区分环境(java,scala),不同环境导入的jar包不同
2.没有区分流处理(StreamExecutionEnvironment)和批处理(ExecutionEnvironment)环境

###Unhandled exception: java.lang.Exception

对承载的错误地方进行 try cache 或者承载的方法直接抛出异常(throws Exception)

原理分析

代码分析运行

-----------------------------------------【zookeeper】---------------------------------------------------------------
###zookeeper的日志路径

默认在zookeeper安装路径bin文件夹里,文件名是zookeeper.out。可以通过修改bin/zkEnv.sh文件来指定日志路径。
默认设置
if ["x${ZOO_LOG_DIR}"="x"]
then
ZOO_LOG_DIR="."
fi
修改成
if ["x${ZOO_LOG_DIR}"="x"]
then
ZOO_LOG_DIR="$ZOOBINDIR/../logs"
fi最后日志文件就生成到安装目录的logs文件夹根目录下

mapreduce

切片数 map数 reduce数 三者之间关系

大数据项目实践过程笔记相关推荐

  1. 大数据项目实践:基于hadoop+spark+mongodb+mysql开发医院临床知识库系统

    一.前言 从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS ...

  2. 大数据项目实践:基于hadoop+spark+mongodb+mysql+c#开发医院临床知识库系统

    从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS).影像存 ...

  3. Hive大数据项目实践

    在搭建了Hadoop和hive环境后,就可以使用hive来进行数据库相关操作了.Hive提供了hql(类sql)语句来操作,基本过程与mysql类似,区别的就是对于hive中的聚合操作,将使用hado ...

  4. 大数据项目实践--手机日志分析

    一.准备环境 1.下载jdk-8u45-windows-x64.exe 安装于D:\Java8 2.修改JAVA_HOME为 D:\Java8\jdk1.8.0_45 3.修改HADOOP_HOME为 ...

  5. 架构(B站尚硅谷大数据项目实践 电影推荐系统概述)

    详细版: 整体流程: 数据模型: 数据模型解析: 整体模块: 环境搭建: 数据加载服务:spark(scala) 推荐模块: 后台: 前端: 打包部署: 解决冷启动问题:

  6. 电商数仓描述_笔记-尚硅谷大数据项目数据仓库-电商数仓V1.2新版

    架构 项目框架 数仓架构 存储压缩 Snappy与LZO LZO安装: 读取LZO文件时,需要先创建索引,才可以进行切片. 框架版本选型Apache:运维麻烦,需要自己调研兼容性. CDH:国内使用最 ...

  7. 最详细大数据项目落地路线图实践总结

    今天,来谈一谈"大数据项目如何落地?"这个话题.从事过多个大数据项目的规划方案及项目落地工作,在这里与大家分享一些心得,主要是关于大数据项目如何成功落地并取得预期目标,也可以说这些 ...

  8. informatica数据脱敏_助您首个大数据项目破茧成蝶的实践指南

    自从本世纪初软件应用开始在整个业务流程中盛行以来,一个不争的事实就是:数据改变了我们的工作方式.越来越多的企业认识到必须在大数据方面有所作为,但他们却并未切实规划出如何开展这项工作.而调查发现,切实展 ...

  9. 大数据之路读书笔记-09阿里巴巴数据整合及管理体系

    大数据之路读书笔记-09阿里巴巴数据整合及管理体系 面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性, 直是 ...

最新文章

  1. 代码如何获取单反相机拍摄的照片_看看如何拍摄出更好的照片
  2. switchyomega规则列表备份_求人不如求己,自己动手写一个CSDN博客备份小工具?...
  3. 全国省市区县数据库脚本
  4. 四旋翼建模与开源飞控算法(草稿,待整理)
  5. css 实现app图标样式_界面按钮样式丑?不可能!16款css实现炫酷按钮
  6. 浏览器自动化的一些体会8 访问angular页面的一个问题
  7. 【机器视觉】 dev_set_tool_geometry算子
  8. Ext.Net ASP.NET
  9. 开启php curl函数库的步骤
  10. 如何添加自动更新Play Framework 2.X项目的版本号
  11. pycharm启动后一直在updating indices
  12. 十五的学习日记20160926-你不知道的JS笔记/
  13. 计算机硬盘应该什么格式化,磁盘格式化是什么意思?快速格式化和一般格式化有什么区别...
  14. ProxyDHCP service did not reply to request on port 4011
  15. Android通过Chrome Inspect调试WebView的H5 App出现空白页面的解决方法(不需要FQ)
  16. nexus 向私服推送jar包 两种方式实现
  17. 中山大学新华学院计算机,中山大学新华学院信息科学学院电子信息科学与技术、计算机科学与技术、软件...
  18. 数据结构与算法——链式存储(链表)的插入及删除
  19. 有道English课程总结
  20. echarts渲染第一遍正常但是第二遍渲染不出来的问题(二次渲染不成功)

热门文章

  1. ARM发布全新16纳米A72架构
  2. 评论:“哭不起”的王君为何还流泪
  3. Buildozer生成的APP闪退+PermissionError故障排除记录
  4. Twig中控制保留小数位数
  5. Flask SQLAlchemy 操作数据库已有数据表
  6. 高德地图 点击获取坐标
  7. 一个QQ空间的钓鱼盗号过程揭露,大家谨防上当
  8. 更好地整理数据:windows下怎么让不同路径下的两个文件夹保持同步内容
  9. Python3中小括号()、中括号[]、花括号{}的区别
  10. web服务器—nginx