我在运行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的初学者,使用hadoop的初学者指南作为教程.
我使用的是mac osx 10.9.2和hadoop 1.2.1版
我在终端中调用echo $ PATH时设置了所有相应的类路径:
这是我得到的结果:
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Users/oladotunopasina/hadoop-1.2.1/hadoop-core-1.2.1.jar:/Users/oladotunopasina/hadoop-1.2.1/bin:/ USR /股/ Grails的/ bin中:在/ usr /共享/常规/斌:/Users/oladotunopasina/.rvm/gems/ruby-2.1.1/bin:/Users/oladotunopasina/.rvm/gems/ruby-2.1.1 @全球/斌:/Users/oladotunopasina/.rvm/rubies/ruby-2.1.1/bin:在/ usr /本地/ Heroku的/ bin中:在/ usr/bin中:/ bin中:/ usr/sbin目录:/ sbin目录:/ USR /local/bin:/Users/oladotunopasina/.rvm/bin:/Users/oladotunopasina/.rvm/bin
我尝试编译WordCount1.java,我收到以下错误:
WordCount1.java:2: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configuration ;
^
WordCount1.java:3: package org.apache.hadoop.fs does not exist
import org.apache.hadoop.fs.Path;
^
WordCount1.java:4: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.IntWritable;
^
WordCount1.java:5: package org.apache.hadoop.io does not exist
import org.apache.hadoop.io.Text;
^
WordCount1.java:6: package org.apache.hadoop.mapreduce does not exist
import org.apache.hadoop.mapreduce.Job;
^
WordCount1.java:7: package org.apache.hadoop.mapreduce does not exist …Run Code Online (Sandbox Code Playgroud) 我在我有两个mapreduce工作的情况下.我更熟悉python并计划用它来编写mapreduce脚本并使用hadoop流.当使用hadoop流时,是否可以方便地将两个作业链接起来?
Map1 - > Reduce1 - > Map2 - > Reduce2
我在java中听说过很多方法可以实现这一点,但是我需要Hadoop流的东西.
这是关于我从Apache Spark查询Cassandra时遇到的问题.
来自Spark的正常查询工作正常,没有任何问题,但是当我查询条件是关键时,我得到以下错误.最初我尝试查询复合键列族,它也给出了与下面相同的问题.
"引起:InvalidRequestException(为什么:如果包含Equal,则empid不能被多个关系限制)"
专栏系列:
CREATE TABLE emp (
empID int,
deptID int,
first_name varchar,
last_name varchar,
PRIMARY KEY (empID));
Run Code Online (Sandbox Code Playgroud)
列族内容:
empID, deptID, first_name, last_name
104, 15, 'jane', 'smith'
Run Code Online (Sandbox Code Playgroud)
示例SCALA代码:
val job=new Job()
job.setInputFormatClass(classOf[CqlPagingInputFormat])
val host: String = "localhost"
val port: String = "9160"
ConfigHelper.setInputInitialAddress(job.getConfiguration(), host)
ConfigHelper.setInputRpcPort(job.getConfiguration(), port)
ConfigHelper.setInputColumnFamily(job.getConfiguration(), "demodb", "emp")
ConfigHelper.setInputPartitioner(job.getConfiguration(), "Murmur3Partitioner")
CqlConfigHelper.setInputColumns(job.getConfiguration(), "empid,deptid,first_name,last_name")
//CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), limit.toString)
CqlConfigHelper.setInputWhereClauses(job.getConfiguration(),"empid='104'")
// Make a new Hadoop RDD
val casRdd = sc.newAPIHadoopRDD(job.getConfiguration(),
classOf[CqlPagingInputFormat],
classOf[Map[String, ByteBuffer]],
classOf[Map[String, ByteBuffer]])
Run Code Online (Sandbox Code Playgroud)
我恳请你告诉我,如果有任何解决这种情况,因为我在过去几天努力克服这个问题.
谢谢

我正在努力学习"如何在Hadoop中实现Kerberos?" 我曾经使用过此文档不见了 https://issues.apache.org/jira/browse/HADOOP-4487 我还通过基本Kerberos的东西不见了(https://www.youtube.com/watch?v=KD2Q-2ToloE)
在从这些资源中学习之后,我得出了一个结论,我通过图表来表示.场景: - 用户登录到他的计算机通过Kerberos身份验证进行身份验证并提交地图缩减工作(请阅读图表的说明,它几乎不需要5分钟的时间)我想解释图表并提出与几个相关的问题步骤(粗体) 黄色背景中的数字表示整个流程(数字1到19)DT(带红色背景)表示委托令牌BAT(带绿色背景)表示块访问令牌JT(带有棕色背景)表示作业令牌
步骤1,2,3和4表示: - 请求TGT(票证授予票证)请求名称节点的服务票证. 问题1)KDC应该在哪里?它可以在我的名称节点或作业跟踪器所在的机器上吗?
步骤5,6,7,8和9表示: - 显示名称节点的服务票证,获得确认.名称节点将发出委托令牌(红色)用户将告知令牌更新程序(在这种情况下,它是作业跟踪器)
问题2)用户将此授权令牌与作业一起提交给Job Tracker.授权令牌是否会与任务跟踪器共享?
步骤10,11,12,13和14表示: - 询问服务票据以获取作业跟踪器,从KDC获取服务票证将此票证显示给Job Tracker并从JobTracker获取ACK将作业+委派令牌提交给JobTracker.
步骤15,16和17表示: - 生成块访问令牌并分布在所有数据节点上.将blockID和Block Access Token发送到Job Tracker,Job Tracker会将其传递给TaskTracker
问题3)谁将从名称节点请求BlockAccessToken和Block ID?JobTracker或TaskTracker
对不起,我错误地错过了18号.Step19表示: - 作业跟踪器生成作业令牌(棕色)并将其传递给TaskTrackers.
问题4)我可以得出结论,每个用户将有一个代表队令牌,它将分布在整个集群中,每个作业会有一个作业令牌吗?因此,用户将只有一个委托令牌和许多作业令牌(等于他提交的作业数量).
请告诉我,如果我错过了某些内容,或者在我的解释中某些方面我错了.
hadoop kerberos hadoop-plugins kerberos-delegation mit-kerberos
我使用以下教程在ubuntu 12.04 LTS上设置并配置了sudo节点hadoop环境 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#formatting-the -hdfs-文件系统经由最名称节点
键入hadoop/bin $ start-all.sh之后一切正常,然后我检查了Jps,然后NameNode,JobTracker,TaskTracker,SecondaryNode已经启动但是DataNode没有启动...
如果有任何人知道如何解决这个问题,请告诉我..
我对猪的知识很少.我有protobuf格式的数据文件.我需要将此文件加载到pig脚本中.我需要编写一个LoadFunc UDF来加载它.说功能是Protobufloader().
我的PIG脚本会是
A = LOAD 'abc_protobuf.dat' USING Protobufloader() as (name, phonenumber, email);
Run Code Online (Sandbox Code Playgroud)
我想知道的是如何获取文件输入流.一旦我掌握了文件输入流,我就可以将数据从protobuf格式解析为PIG元组格式.
PS:提前谢谢
如何在ubuntu 12.04上安装mahout?
sudo apt-get install mahout
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package mahout
https://ccp.cloudera.com/display/CDHDOC/Mahout+Installation
To install Mahout on an Ubuntu or other Debian system:
$ sudo apt-get install mahout
Run Code Online (Sandbox Code Playgroud) 我在MapReduce驱动程序的addInputPath方法中收到错误.错误是
"The method addInputPath(Job, Path) in the type FileInputFormat is not applicable for the arguments (JobConf, Path)"
Run Code Online (Sandbox Code Playgroud)
这是我的驱动程序代码:
package org.myorg;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
public class WordCount extends Configured implements Tool{
public int run(String[] args) throws Exception
{
//creating a JobConf object and assigning a job name for identification purposes
JobConf conf = new JobConf(getConf(), org.myorg.WordCount.class);
conf.setJobName("WordCount");
//Setting configuration object …Run Code Online (Sandbox Code Playgroud) 我想在Hadoop中为我的地图任务共享大内存静态数据(RAM lucene索引)?有几种map/reduce任务共享同一个JVM的方法吗?
我正在尝试执行以下代码
package test;
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.util.*;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class Diction {
public static class WordMapper extends Mapper<Text,Text,Text,Text>
{
private Text word = new Text();
public void map(Text key, Text value, Context context) throws IOException, InterruptedException
{
StringTokenizer itr = new StringTokenizer(value.toString(),",");
while (itr.hasMoreTokens())
{
word.set(itr.nextToken());
context.write(key, word);
}
}
}
public static class AllTranslationsReducer
extends Reducer<Text,Text,Text,Text>
{
private …Run Code Online (Sandbox Code Playgroud) 我刚刚复制hadoop-eclipse-plugin-1.0.3.jar到eclipse/plugins目录以便开始工作.但不幸的是,它对我不起作用.当我尝试将eclipse连接到我的Hadoop Version 1.1.1集群时,它抛出了这个错误:
An internal error occurred during: "Map/Reduce location status updater". org/codehaus/jackson/map/JsonMappingException
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
hadoop ×12
hadoop-plugins ×12
mapreduce ×3
apache-pig ×1
apache-spark ×1
cassandra ×1
eclipse ×1
hadoop2 ×1
hive ×1
java ×1
javac ×1
jvm ×1
kerberos ×1
lucene ×1
mahout ×1
mit-kerberos ×1
python ×1
scala ×1
ubuntu ×1
word-count ×1