重装系统后软件打不开开重装后还是打不开怎么办

hadoop(10)
验证本地库是否加载成功:
#hadoop checknative
成功结果:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:344528次
积分:7415
积分:7415
排名:第2696名
原创:369篇
转载:64篇
译文:11篇
评论:46条
(4)(19)(8)(8)(7)(8)(11)(14)(11)(29)(32)(30)(51)(9)(2)(30)(10)(17)(15)(32)(17)(45)(34)(2)当前位置: &&>> 阅读正文
View: 16,784
Author: Dong
- 359,966 阅 - 273,614 阅 - 261,861 阅 - 247,109 阅 - 245,229 阅 - 243,153 阅 - 223,097 阅 - 214,591 阅 - 211,833 阅 - 204,386 阅
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = 'WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable(spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?) - devilmaycry - 博客园
原文地址:
/question//answer/
原文内容:
我64位机器,当时hadoop启动的时候出现这个问题是因为hadoop本身自带的本地库是32位的,我现在hadoop2.2.0已经替换了本地库为64位的了,并且编译spark的时候采用了相对应的版本:SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly但是现在进入spark shell的时候依然最后会出现如下警告,有没有人成功解决了这个问题呢?我spark是0.9.1版本的,谢谢各位大神!
WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
原文回答,解决方案:
主要是jre目录下缺少了libhadoop.so和libsnappy.so两个文件。具体是,spark-shell依赖的是scala,scala依赖的是JAVA_HOME下的jdk,libhadoop.so& 和& libsnappy.so& 两个文件应该放到& $JAVA_HOME/jre/lib/amd64& 下面。这两个so:libhadoop.so和libsnappy.so。前一个so可以在HADOOP_HOME下找到,如hadoop\lib\native。第二个libsnappy.so需要下载一个snappy-1.1.0.tar.gz,然后./configure,make编译出来,编译成功之后在.libs文件夹下。当这两个文件准备好后再次启动spark shell不会出现这个问题。
作者:Edward Lee链接:/question//answer/来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。> 博客详情
最近开始接触spark,发现网上很多例子都已经过期,而spark各个版本提供的示例程序有些也不一样,包路径也有很多变化。所以走了很多弯路,借助官方文档和查看spark源码和脚本文件,终于顺利的理解了spark的搭建。
本文并不是详细的spark完全安装教程,只是把我觉得重要或者我走了弯路的,关于spark的详细解释,其他基础的配置一笔带过,详细可问谷老师 。
1.软件准备
我的系统环境为ubuntu 13.10
1.scala-2.9.3.tgz &&&
由于spark是依赖scala2.9.3开发的,所以只能安装2.9.3,我试的时候一开始用最新版本的scala2.10.3确实不行。
2.spark-0.8.1-incubating-bin-hadoop2.tgz&&
注意spark读取hadoop1和hadoop2的hdfs是不同的,所以下载页面提供了hadoop1和hadoop2两种spark下载,需要按照自己使用的hadoop版本选择一个,而且下载后面已经著名了该版本是prebuilt,所以下载下来后不需要自己编译了。注意:如果选择的版本和你的hadoop版本不一样,spark在读取hdfs数据时会被hadoop的RPC拒绝,因为RPC版本不同。
读取hadoop集群数据,需要将spark所在的节点与hadoop之间的主机名和ip对应关系互相配置到/etc/hosts里面。
2.基础软件安装
& &1.首先安装jdk,并且配置环境变量。
& & 2.安装scala,配置scala环境变量。
& & 3.配置无密码的ssh登录,和hadoop一样。
&3.安装spark
首先解压spark-0.8.1-incubating-bin-hadoop2.tgz
tar zxvf spark-0.8.1-incubating-bin-hadoop2.tgz 用mv命令修改解压后的文件名为spark-0.8.1
mv spark-0.8.1-incubating-bin-hadoop2 spark-0.8.1 配置spark环境变量到path,
sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export SCALA_HOME=/home/zarchary/software/scala-2.9.3
export SPARK_HOME=/home/zarchary/software/spark-0.8.1
PATH=$PATH:$JAVA_HOME/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin
export PATH
修改完成别忘了运行source让配置生效
source /etc/profile
然后进入安装的${SPARK_HOME}/conf下,按照模板创建spark-env.sh和log4j.properties&
cp spark-env.sh.template spark-env.sh
cp log4j.properties.template
log4j.properties
修改spark-env.sh文件,加入spark必要的配置
vim spark-env.sh
export SCALA_HOME=/home/zarchary/software/scala-2.9.3
export JAVA_HOME=/usr/lib/jdk7
export SPARK_HOME=/home/zarchary/software/spark-0.8.1
为什么要配置spark-env.sh呢,因为spark在每次初始化时会先运行spark-env.sh,然后就会生成它需要的path,可以找到它需要的变量值。当然,spark-env.sh必须是可执行的。
现在local模式已经安装完成。可以在${SPARK_HOME}下运行测试
./run-example org.apache.spark.examples.SparkPi local 如果日志里面有Pi is roughly 3.1468说明成功了。
如果要安装集群模式的spark,修改继续修改conf/spark-env.sh,添加
SPARK_MASTER_IP=masterIP
&&&&注:SPARK_MASTER_IP这里填写spark master的IP或者主机名,如果使用的是ip,在指定master调用服务时就只能使用ip,类似spark://192.168.1.39:7077.如果使用的是主机名,那就只能使用主机名了。类似这样spark://主机名:7077.推荐使用主机名,因为就算ip变了也不用老改配置文件。
主节点默认使用7077端口对外提供服务。
然后在修改${SPARK_HOME}/conf下的slaves文件,添加上所有工作节点的主机名或者ip,注意是一行一个,这些工作节点服务器也需要配置ssh无密码登录,并加入master的公匙到工作节点。当然可以不配置,但是每次启动都输入密码很纠结。
然后使用scp复制spark文件到其他工作节点。
scp -r ${SPARK_HOME} hadoop@主机名:要复制到的目录
然后就可以在master主机${SPARK_HOME}/bin目录下运行start-all.sh启动集群。然后访问http://masterIP:8080查看节点情况。默认是8080端口,如果不想使用8080端口,需要在spark-env.sh里面配置SPARK_MASTER_WEBUI_PORT来指定端口号。更多配置见
然后就可以在{SPARK_HOME}下指定master来运行例子了
./run-example org.apache.spark.examples.SparkPi spark://masterIP:7077
注意:spark://后面的masterIP必须和你在spark-env.sh里面配置的SPARK_MASTER_IP一致
然后查看http://masterIP:8080就可以看到任务运行信息:
现在集群模式也安装完毕了。
4.在程序中调用spark服务
安装完毕后,如果想在程序中或者说eclipse/idea之类的IDE中远程调用服务。需要做下面配置:
1.首先必须把开发的电脑的IP和主机名配置到spark所在所有节点的/etc/hosts里面,否则提交不成功。
2.将${SPARK_HOME}/assembly/target/scala-2.9.3/spark-assembly_2.9.3-0.8.1-incubating-hadoop2.2.0.jar放入项目classpath,当然如果你下载的版本不一样可能和我的文件名不一样。
注意:只需要这一个文件,其他的spark的包你项目不依赖不需要加入。这个jar文件已经包含了自己的依赖!
3.编写程序
为了方便,我只是把spark 例子里面的JAVAWordCount改成了WordCount.
package com.
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkC
import org.apache.spark.api.java.function.FlatMapF
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairF
import scala.Tuple2;
import java.util.A
import java.util.L
* Created with IntelliJ IDEA.
* User: zarchary
* Date: 14-1-19
* Time: 下午6:23
* To change this template use File | Settings | File Templates.
public final class WordCount {
public static void main(String[] args) throws Exception {
JavaSparkContext ctx = new JavaSparkContext("spark://masterIP:7077", "WordCount",
"/home/zarchary/software/spark-0.8.1",
"/home/zarchary/repo/com/zachary/module/0.0.1/module-0.0.1.jar");
JavaRDD&String& lines = ctx.textFile("/home/zarchary/software/nie.txt", 1);
JavaRDD&String& words = lines.flatMap(new FlatMapFunction&String, String&() {
public Iterable&String& call(String s) {
return Arrays.asList(s.splihttp://masterIP:8080t(" "));
System.out.println("====words:"+words.count());
JavaPairRDD&String, Integer& ones = words.map(new PairFunction&String, String, Integer&() {
public Tuple2&String, Integer& call(String s) {
return new Tuple2&String, Integer&(s, 1);
JavaPairRDD&String, Integer& counts = ones.reduceByKey(new Function2&Integer, Integer, Integer&() {
public Integer call(Integer i1, Integer i2) {
return i1 + i2;
System.out.println("====结果:"+counts.count());
List&Tuple2&String, Integer&& output = counts.collect();
for (Tuple2 tuple : output) {
System.out.println(tuple._1 + ": " + tuple._2);
System.exit(0);
/home/zarchary/repo/com/zachary/module/0.0.1/module-0.0.1.jar为我项目打包后的存放路径。
JavaSparkContext初始化需要四个参数。分别为:
1.matser地址
2.给任务起得名字,类似hadoop jobname
3.集群上spark的安装目录,也就是配置里面的,SPARK_HOME
4.你的项目的打的jar包和spark里面没有的包,运行时会被提交到集群,所以jar包必须和项目独立。这里指定的是jar路径。(我用的是maven 的install插件打包,这里是我的maven仓库jar存放路径)
ctx.textFile("/home/zarchary/software/nie.txt", 1);里面第一个参数是要计算的文件的路径,如果是想用hdfs的数据文件,可以也称类似hdfs://user/hadoop/nie.txt之类。第二个参数是分割数。可以不要第二个参数。
然后就可以运行了。运行后再查看http://masterIP:8080,可以看到刚才提交的任务:
如果想看一下你的任务提交时都提交了什么和正在运行到哪个阶段,可以在提交任务后查看http://yourIP:4040查看任务详情,spark提交任务后都会在本机上启动一个4040的端口,用户可以在此查看任务详情,但是任务运行结束后就会关闭该端口。
介绍完毕,希望可以帮助到你。
人打赏支持
开源马克杯
领取时间:
开源马克杯是开源中国定制的“高大上”Coders 喝水利器!
领取条件:购买或拥有开源马克杯的OSCer可领取
码字总数 19660
直接执行main方法
填远程spark路径。
前面加hdfs:///home/*之类的就是hdfs,当然这样必须在classpath里加上hadoop的*-site.xml的配置文件。在路径前面加上file:///home/*就是读本地文件了。默认是读什么不好意思我忘记了,我每次读本地或者hdfs都会加上对应的前缀。
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥Hadoop是啥?spark是啥?
spark能完全取代Hadoop吗?
Hadoop和Spark属于哪种计算计算模型(实时计算、离线计算)?
学习Hadoop和spark,哪门语言好?
哪里能找到比较全的学习资料?
1 Hadoop是啥?spark是啥?
& & & & (1)先来了解下Hadoop历史渊源
& & & & Doug Cutting是Apache Lucene创始人, Apache Nutch项目开始于2002年,Apache Nutch是Apache Lucene项目的一部分。2005年Nutch所有主要算法均完成移植,用MapReduce和NDFS来运行。2006年2月,Nutch将MapReduce和NDFS移出Nutch形成Lucene一个子项目,命名Hadoop。
& & & & Hadoop不是缩写,而是虚构名。项目创建者Doug Cutting解释Hadoop的得名:&这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。&
& & & & (2)狭义的Hadoop
& & & & 个人认为,狭义的Hadoop指Apache下Hadoop子项目,该项目由以下模块组成:
Hadoop Common: 一系列组件和接口,用于分布式文件系统和通用I/O
Hadoop Distributed File System (HDFS?): 分布式文件系统
Hadoop YARN: 一个任务调调和资源管理框架
Hadoop MapReduce: 分布式数据处理编程模型,用于大规模数据集并行运算
& & & &&狭义的Hadoop主要解决三个问题,提供HDFS解决分布式存储问题,提供YARN解决任务调度和资源管理问题,提供一种编程模型,让开发者可以进来编写代码做离线大数据处理。
& & & & (3)广义的Hadoop
& & & & 个人认为,广义的Hadoop指整个Hadoop生态圈,生态圈中包含各个子项目,每个子项目为了解决某种场合问题而生,主要组成如下图:
Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。
Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身
Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。
Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。
Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。
Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。
& & & &&从广义的角度来讲,spark是Hadoop生态圈中的一个子项目。
& & & & (4)spark历史渊源
百度百科 写道
& & Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。& & Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说, Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。& & Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。& & 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
& & & & (5)spark目前项目组成
Spark Streaming:实时流式数据处理,与之类似的有storm
Spark SQL, DataFrames and Datasets:SQL化处理一切数据,与之类似的有hive
Machine Learning Library:机器学习
GraphX:图形可视化
Bagel on Spark:谷歌公司Bagel图形处理技术,如何运行于spark
R on Spark:R语言在spark上运用
2 spark能完全取代Hadoop吗?
& & & & 个人认为,spark目前不能完全取代Hadoop,理由如下:Haoop中的分布式文件存储是spark没有的,目前能站得住脚的就只有这点了。
& & & & spark的出现是有原因的,这个得从Hadoop的编程模型mapreduce说起,mapreduce中间结果首先存储到磁盘文件,大量的IO读写会影响整个计算的耗时,而spark中间结果首先是基于内存存储,免去IO带来的性能开销。
& & & & mapreduce有这个弱点,为啥不也用内存呢?个人认为,既然都是Apache项目,spark已经解决了这个问题,那么很可能是Apache放弃了在mapreduce方面的优化,也是顺应大势所趋,没必要在mapreduce浪费时间和经历,当然这也是个人片面之词。
3.Hadoop和Spark属于哪种计算计算模型(实时计算、离线计算)?
& & & & 这个首先要看你说的是哪个明确的子项目了,个人观点:
Hadoop生态圈中子项目Apache Hadoop中的mapreduce是属于离线计算技术;
Hadoop生态圈中子项目Apache hive本质是mapreduce,也属于离线计算技术;
Hadoop生态圈中子项目Apache storm属于实时计算技术;
Hadoop生态圈中子项目Apache spark中spark-shell属于离线计算技术,只不过它基于内存存储中间结果,速度上比mapreduce快很多倍,又离实时计算技术很近;
Hadoop生态圈中子项目Apache spark中spark streaming属于实时计算技术,类似于storm;
Hadoop生态圈中子项目Apache spark中sparkSQL属于离线计算技术,只不过它基于内存存储中间结果,速度上比hive快很多倍。
4 学习Hadoop和spark,哪门语言好?
& & & & 这个问题先要看下我们用到的技术首先是用啥写的,目前,spark、storm和kafka这三个是用基于JVM上的语言Scala实现的,而Hadoop、hbase、hive这些是用基于JVM上的语言java实现的。
& & & &&所以个人认为,学习这些技术,如果要深入源代码研究和查找问题,建议首选java和Scala,最好做到精通。
& & & & 那么其他语言开发者咋办,也不是不能从事大数据开发了,因为目前大数据技术方面考虑到了其他语言开发者的感受,提供多种语言支持的,这里首先推荐去学习解释型语言Python,推荐这个的另一好处是,Python使用matlib不用考虑版权问题了,但用这些非JVM语言一个缺点是,当出现了问题的时候,你拿到的一堆JVM错误信息,你可咋办???
5.哪里能找到比较全的学习资料?
& & & &&就个人目前学习大数据经验来说,最全的资料还是官网了。
& & & & 很多微博和视频都有介绍,包括我现在在写的微博,总体来说都比较片面,你被强迫的接受就是要这么去操作,例如Hadoop很多地方部署都写的是Hadoop1.x版本里面的namenode+secondarynamenode部署方式,很少人告诉你这是是部署方式之一,还有Hadoop2.x里面的HA部署方式;spark部署方式很多地方介绍的是单master方式,很少有地方告诉你还有基于zookeeper上的多master部署方式,而这些没有告诉你的方式在某些视频中被标榜为独门秘籍,那些老师得意洋洋的说:&来吧,交点钱,来听我的课,在我的课程里我会告诉你怎么部署spark多master方式&
阅读(...) 评论()

我要回帖

更多关于 重装系统后ps打不开 的文章

 

随机推荐