我目前正在运行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 2.2.0.当我尝试启动datanode服务时,它显示以下错误,任何人都可以告诉如何解决这个问题?
**2**014-03-11 08:48:15,916 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:9000 starting to offer service
2014-03-11 08:48:15,922 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting
2014-03-11 08:48:15,922 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2014-03-11 08:48:16,406 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/in_use.lock acquired by nodename 3627@prassanna-Studio-1558
2014-03-11 08:48:16,426 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
java.io.IOException: Incompatible clusterIDs in /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode: namenode clusterID = CID-fb61aa70-4b15-470e-a1d0-12653e357a10; datanode clusterID = CID-8bf63244-0510-4db6-a949-8f74b50f2be9
at**** …Run Code Online (Sandbox Code Playgroud) 我正在尝试在本地计算机上重现Amazon EMR集群.为此,我已经安装了最新的稳定版Hadoop - 2.6.0.现在我想访问一个S3存储桶,就像我在EMR集群中一样.
我在core-site.xml中添加了aws凭据:
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>some id</value>
</property>
<property>
<name>fs.s3n.awsAccessKeyId</name>
<value>some id</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>some key</value>
</property>
<property>
<name>fs.s3n.awsSecretAccessKey</name>
<value>some key</value>
</property>
Run Code Online (Sandbox Code Playgroud)
注意:由于密钥上有一些斜杠,我已使用%2F转义它们
如果我尝试列出存储桶的内容:
hadoop fs -ls s3://some-url/bucket/
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ls:没有用于方案的FileSystem:s3
我再次编辑了core-site.xml,并添加了与fs相关的信息:
<property>
<name>fs.s3.impl</name>
<value>org.apache.hadoop.fs.s3.S3FileSystem</value>
</property>
<property>
<name>fs.s3n.impl</name>
<value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
</property>
Run Code Online (Sandbox Code Playgroud)
这次我得到一个不同的错误:
-ls: Fatal internal error
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3.S3FileSystem not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2578)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
Run Code Online (Sandbox Code Playgroud)
不知怎的,我怀疑纱线分布没有必要的罐子能够读取S3,但我不知道从哪里获得这些.任何指向这个方向的人都会非常感激.
我是Ubuntu 16.04的假人,拼命想让Spark工作.我试图使用stackoverflow上找到的答案解决我的问题,但我无法解决任何问题.使用./spark-shellbin文件夹中的命令启动spark 我收到此消息
WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable".
Run Code Online (Sandbox Code Playgroud)
我正在使用Java版本
java version "1.8.0_101
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode).
Run Code Online (Sandbox Code Playgroud)
Spark是最新版本:2.0.1与Hadoop 2. 7.我还重新使用了较旧的Spark软件包,1.6.2与Hadoop 2.4,但我得到了相同的结果.我也尝试在Windows上安装Spark,但它似乎比在Ubuntu上执行它更难.
我还尝试从我的笔记本电脑上运行Spark上的一些命令:我可以定义一个对象,我可以创建一个RDD并将其存储在缓存中,我可以使用类似的函数.map(),但是当我尝试运行该函数时,.reduceByKey()我会收到几个错误字符串消息.
可能是Hadoop库是为32位编译的,而我是在64位?
谢谢.
Hadoop架构中的Namenode是单点故障.
拥有大型Hadoop集群的人如何应对这个问题?
是否有一个行业认可的解决方案运行良好,其中一个辅助Namenode接管以防主要的一个失败?
我将输入和输出文件夹作为参数传递给来自网页的mapreduce字数统计程序.
得到以下错误:
HTTP状态500 - 请求处理失败; 嵌套异常是java.lang.IllegalArgumentException:必须将AWS Access Key ID和Secret Access Key指定为s3n URL的用户名或密码,或者通过设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性(分别).
我已经建立了一个多节点Hadoop集群.NameNode和Secondary namenode在同一台机器上运行,集群只有一个Datanode.所有节点都在Amazon EC2计算机上配置.
masters
54.68.218.192 (public IP of the master node)
slaves
54.68.169.62 (public IP of the slave node)
Run Code Online (Sandbox Code Playgroud)
核心的site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
mapred-site.xml中
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
HDFS-site.xml中
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
核心的site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://54.68.218.192:10001</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
mapred-site.xml中
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>54.68.218.192:10002</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
HDFS-site.xml中
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在Namenode上运行的jps给出以下内容: …
Hadoop是一致的和分区容忍的,即它属于CAP theoram的CP类别.
Hadoop不可用,因为所有节点都依赖于名称节点.如果名称节点落下,则群集将关闭.
但考虑到HDFS集群有一个辅助名称节点,为什么我们不能将hadoop称为可用.如果名称节点已关闭,则辅助名称节点可用于写入.
名称节点和辅助名称节点之间的主要区别是什么使hadoop不可用.
提前致谢.
我正在尝试在Ubuntu上安装Hadoop的单节点设置.我开始按照Hadoop 2.3文档中的说明进行操作.
但我似乎错过了一些非常简单的事情.
首先,它说
要获得Hadoop发行版,请从其中一个Apache下载镜像下载最新的稳定版本.
然后,
解压缩下载的Hadoop发行版.在分发中,编辑文件conf/hadoop-env.sh以至少将JAVA_HOME定义为Java安装的根目录.
但是,我似乎无法找到该conf目录.
我在其中一个镜像下载了2.3版本.然后解压缩tarball,ls内部返回:
$ ls
bin etc include lib libexec LICENSE.txt NOTICE.txt README.txt sbin share
Run Code Online (Sandbox Code Playgroud)
我能够找到他们引用的文件,而不是在conf目录中:
$ find . -name hadoop-env.sh
./etc/hadoop/hadoop-env.sh
Run Code Online (Sandbox Code Playgroud)
我错过了什么,还是我抓错了包裹?或者文档是否过时了?
如果是这样,任何人都知道哪些更新的文档是什么?
我在运行Ubuntu 14.04LTS的笔记本电脑上安装了hadoop 2.6.0.我通过运行成功启动了hadoop守护进程start-all.sh并WourdCount成功运行了一个示例,然后我尝试运行一个不能与我一起使用的jar示例,所以我决定使用格式 hadoop namenode -format并重新开始,但是当我使用start-dfs.sh && start-yarn.shjps 启动所有守护进程时所有守护进程运行但不是如下所示的datanode:
hdferas@feras-Latitude-E4310:/usr/local/hadoop$ jps
12628 NodeManager
12110 NameNode
12533 ResourceManager
13335 Jps
12376 SecondaryNameNode
Run Code Online (Sandbox Code Playgroud)
怎么解决?
hadoop ×10
hadoop2 ×10
hdfs ×3
amazon-s3 ×2
hadoop-yarn ×2
mapreduce ×2
amazon-ec2 ×1
apache-spark ×1
java ×1
linux ×1
ubuntu ×1