我目前正在运行CentOs的服务器上配置hadoop .当我运行start-dfs.sh
或时stop-dfs.sh
,我收到以下错误:
WARN util.NativeCodeLoader:无法为您的平台加载native-hadoop库...使用适用的builtin-java类
我正在运行Hadoop 2.2.0.
在线搜索提出了这个链接:http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html
但是,/native/
hadoop 2.x上的目录内容似乎不同,所以我不知道该怎么做.
我还在这两个环境变量中添加了hadoop-env.sh
:
export HADOOP_OPTS ="$ HADOOP_OPTS -Djava.library.path =/usr/local/hadoop/lib /"
export HADOOP_COMMON_LIB_NATIVE_DIR ="/ usr/local/hadoop/lib/native /"
有任何想法吗?
我的背景 - 在Hadoop世界4周大.使用Cloudera的Hadoop VM在Hive,Pig和Hadoop中略微涉足.已阅读Google关于Map-Reduce和GFS的文章(PDF链接).
我明白那个-
Pig的语言Pig Latin是一种转变(适合程序员认为的方式)SQL就像声明式编程风格和Hive的查询语言非常类似于SQL.
猪坐在Hadoop之上,原则上也可以坐在Dryad之上.我可能错了,但Hive与Hadoop紧密相关.
Pig Latin和Hive命令都编译为Map和Reduce作业.
我的问题 - 当一个人(比如猪)可以达到目的时,双方的目标是什么.是不是因为猪被雅虎传福音!和Facebook的蜂巢?
使用Hadoop或HBase或Hive有什么好处?
根据我的理解,HBase避免使用map-reduce,并且在HDFS之上具有面向列的存储.Hive是Hadoop和HBase的类似sql的接口.
我也想知道Hive与Pig的比较.
我试图了解在YARN上运行Spark作业时内核数量和执行程序数量之间的关系.
测试环境如下:
网络:1Gb
Spark版本:1.0.0
Hadoop版本:2.4.0(Hortonworks HDP 2.1)
Spark作业流程:sc.textFile - > filter - > map - > filter - > mapToPair - > reduceByKey - > map - > saveAsTextFile
输入数据
产量
该作业使用以下配置运行:
--master yarn-client --executor-memory 19G --executor-cores 7 --num-executors 3
(每个数据节点的执行程序,使用尽可能多的核心)
--master yarn-client --executor-memory 19G --executor-cores 4 --num-executors 3
(核心数量减少)
--master yarn-client --executor-memory 4G --executor-cores 2 --num-executors 12
(少核心,更多执行者)
经过的时间:
50分15秒
55分48秒
31分23秒
令我惊讶的是,(3)更快. …
这是一个天真的问题,但我是NoSQL范式的新手并且对此并不了解.所以,如果有人可以帮助我清楚地理解HBase和Hadoop之间的区别,或者给出一些可能有助于我理解差异的指针.
直到现在,我做了一些研究和acc.根据我的理解,Hadoop提供框架来处理HDFS中的原始数据块(文件),而HBase是Hadoop之上的数据库引擎,它基本上使用结构化数据而不是原始数据块.与SQL一样,Hbase在HDFS上提供逻辑层.这是对的吗?
请随时纠正我.
谢谢.
我使用AWS EC2指南安装了Spark,我可以使用bin/pyspark
脚本启动程序以获得spark提示,也可以成功执行Quick Start quide.
但是,我不能为我的生活弄清楚如何INFO
在每个命令后停止所有详细的日志记录.
我已经在我的log4j.properties
文件中的几乎所有可能的场景中尝试了我的conf
文件,在我从中启动应用程序的文件夹以及每个节点上,没有做任何事情.INFO
执行每个语句后,我仍然会打印日志语句.
我对这应该如何工作非常困惑.
#Set everything to be logged to the console log4j.rootCategory=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
# Settings to quiet third party logs that are too verbose
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
Run Code Online (Sandbox Code Playgroud)
这是我使用时的完整类路径SPARK_PRINT_LAUNCH_COMMAND
:
Spark命令:/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java -cp:/root/spark-1.0.1-bin-hadoop2/conf:/root/spark-1.0.1 -bin-hadoop2/CONF:/root/spark-1.0.1-bin-hadoop2/lib/spark-assembly-1.0.1-hadoop2.2.0.jar:/root/spark-1.0.1-bin-hadoop2/lib /datanucleus-api-jdo-3.2.1.jar:/root/spark-1.0.1-bin-hadoop2/lib/datanucleus-core-3.2.2.jar:/root/spark-1.0.1-bin-hadoop2 /lib/datanucleus-rdbms-3.2.1.jar -XX:MaxPermSize = 128m -Djava.library.path = -Xms512m -Xmx512m org.apache.spark.deploy.SparkSubmit spark-shell --class org.apache.spark. repl.Main
内容spark-env.sh
:
#!/usr/bin/env bash
# This file is sourced when …
Run Code Online (Sandbox Code Playgroud) 如何将文件从HDFS复制到本地文件系统.文件下没有文件的物理位置,甚至没有目录.我如何将它们移动到我的本地进行进一步的验证.我通过winscp尝试过.
在许多应用MapReduce的实际情况中,最终的算法最终会成为几个MapReduce步骤.
即Map1,Reduce1,Map2,Reduce2等.
因此,您可以获得下一个映射的输入所需的最后一个reduce的输出.
管道成功完成后,您(通常)不希望保留中间数据.另外,因为这个中间数据通常是一些数据结构(如'map'或'set'),所以你不想在编写和读取这些键值对时花费太多精力.
在Hadoop中推荐的方法是什么?
是否有(简单)示例显示如何以正确的方式处理此中间数据,包括之后的清理?
我想在spark中读取CSV并将其转换为DataFrame并将其存储在HDFS中 df.registerTempTable("table_name")
scala> val df = sqlContext.load("hdfs:///csv/file/dir/file.csv")
Run Code Online (Sandbox Code Playgroud)
java.lang.RuntimeException: hdfs:///csv/file/dir/file.csv is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [49, 59, 54, 10]
at parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:418)
at org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache$$anonfun$refresh$6.apply(newParquet.scala:277)
at org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache$$anonfun$refresh$6.apply(newParquet.scala:276)
at scala.collection.parallel.mutable.ParArray$Map.leaf(ParArray.scala:658)
at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:54)
at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:53)
at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:53)
at scala.collection.parallel.Task$class.tryLeaf(Tasks.scala:56)
at scala.collection.parallel.mutable.ParArray$Map.tryLeaf(ParArray.scala:650)
at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.compute(Tasks.scala:165)
at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:514)
at scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Run Code Online (Sandbox Code Playgroud)
在Apache Spark中将CSV文件作为DataFrame加载的正确命令是什么?
hadoop ×10
apache-spark ×3
hdfs ×3
hive ×3
apache-pig ×2
hbase ×2
scala ×2
copy ×1
difference ×1
hadoop-yarn ×1
hadoop2 ×1
java ×1
linux ×1
mapreduce ×1
nosql ×1
pyspark ×1
python ×1