Hadoop体系结构中的Namenode是单点故障
拥有大型Hadoop集群的人如何处理这个问题
是否有一个业界公认的解决方案能够很好地工作,其中一个辅助Namenode在主Namenode出现故障的情况下接管?Yahoo有针对不同集群大小的配置设置,以将Namenode故障考虑在内。例如:
Hadoop集群中的单点故障是NameNode。虽然任何其他机器的丢失(间歇性或永久性)不会导致数据丢失,但NameNode丢失会导致群集不可用。NameNode数据的永久丢失将导致集群的HDFS无法运行
我已经通过Cygwin在Windows上配置了Hadoop和Hive。
但我面临着一些问题,比如:
配置单元内终端(CLI):
蜂巢>
当我输入query时,查询不执行,终端保持忙碌状态
如果我输入如下查询:
bin/hive -e 'LOAD DATA INPATH 'kv1.txt' OVERWRITE INTO TABLE pokes;'
输出如下:
有什么问题吗?试试看
bin/hive -e 'LOAD DATA INPATH kv1.txt OVERWRITE INTO TABLE
伙计们,我是蜂巢的新手,对此有些怀疑
通常,我们在配置单元中为特定数量的列编写自定义UDF。(假设UDF是用Java编写的)。意味着它对该特定列执行某些操作
我在想,我们是否可以编写这样的UDF,通过它我们可以将特定列作为某个查询的输入,我们是否可以从UDF返回该查询,该查询将通过将列作为输入在Hive CLI上执行
我们可以这样做吗?如果是,请建议我。
感谢并为我糟糕的英语感到抱歉。这是不可能的,因为在配置单元查询运行时,已经生成了一个将要执行的计划。您建议在运行时动态更改该计划,这不仅因为该
最近,我想将日志文件加载到配置单元表中,我希望有一个工具可以从某个目录读取数据并自动将它们加载到配置单元中。此目录可能包括许多子目录,例如,特定目录为“/log”,子目录为“/log/20130115”、“/log/20130116”、“/log/20130117”。是否有一些ETL工具可以实现这样的功能:一旦新数据存储在某个目录中,该工具就可以自动检测这些数据并将其加载到配置单元表中。有这样的工具吗?我必须自己编写脚本吗?您可以使用配置单元外部表轻松完成这项工作,并每天对表进行分区。例如,创建
尝试在hbase中创建表时出现以下错误
创建“ed”、“EDS”
错误:org.apache.hadoop.hbase.PleaseHoldException:org.apache.hadoop.hbase.PleaseHoldException:主机正在初始化
我的配置文件是
<name>hbase.rootdir</name>
<value>file:///home/bingo/hbase</value>
hbase.rootdir
fil
我有一堆前缀不同的字符串,包括“unknown:”我真的很想过滤掉我的Pig脚本中以“unknown:”开头的所有字符串,但它似乎不起作用
simpleFilter=NOT筛选记录(mystr匹配“^unknown”)
我尝试了一些其他的正则表达式排列,但似乎匹配不能很好地使用NOT。我错过什么了吗
使用Pig 0.9.2是因为匹配操作符的操作与Java的字符串#匹配完全相同,即它尝试匹配整个字符串,而不仅仅是其中的一部分(在您的例子中是前缀)。只需更新正则表达式,使整个字符串与指定前缀匹配,如
配置单元支持条件语句-
但是,我希望使用块条件语句。例如,我有两个具有相似列的表A和表B(尽管列名不相同)。我希望从a和B创建一个新表,以便B具有更高的优先级。因此,如果B中存在一行,我希望从B中选择它,否则从a中选择该行。
i、 e
选择
如果(B.idNULL,
(B.id作为id,
B.价值1作为价值),
(A.id作为id,
a、 价值2(作为价值)
从完全外部连接B开始(A.id=B.id)
上面的查询不起作用。是因为配置单元不支持块条件语句吗?如何实现上述功能?我不知道块条件语句,
我已经安装了hadoop和hbase。在配置单元外壳中运行showtables和comand时,出现以下错误
Hive version 0.10.0
Hbase version 0.90.6
Hadoop version 1.1.2
hive> show tables;
FAILED: Error in metadata: MetaException(message:Got exception: org.apache.hadoop.hive.metastore.api.MetaEx
我很难弄清楚,为什么在使用配置单元查询运行查询时,以及在使用hcatalog在同一配置单元表上运行MR时,会得到不同数量的映射器
Difference is significant for same input volume
With Hive Query : 913 mapper
With MR+hcatalog : 3106 mapper
我使用RC文件作为我正在访问的表上的存储格式。
而且我也没有在两个位置(蜂巢或MR)对输入分割大小进行任何调整
任何点击,为什么会发生这种情况,我在运行
我正在使用Flume1.4.0和Hadoop2.2.0。
当我启动Flume并写入HDFS时,我会遇到以下异常:
(SinkRunner-PollingRunner-DefaultSinkProcessor) [ERROR - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:460)] process failed
java.lang.VerifyError: class org.apache.hadoop.
我正在尝试以伪分布式模式运行配置单元脚本。当我以交互模式运行脚本时,脚本中的命令运行得非常好。但是,当我在脚本中添加所有这些命令并运行时,会出现一个错误
剧本:
add jar /path/to/jar/file;
create table flights(year int, month int,code string) row format serde 'com.bizo.hive.serde.csv.CSVSerde';
load data inpath '/tmp/hive-u
我是hadoop世界的新手,在一个简单的任务中苦苦挣扎,却找不到实现它的方法
我们有一个场景,在这个场景中,有不同的客户呼叫不同的客户
人员(使用不同的移动运营商)。每个电话通话详细信息都有通话开始时间
日期、通话结束时间和日期、拨打电话的各种操作员姓名
我们有以下格式的输入文件:
客户电话号码|带日期的通话开始时间|带日期的通话结束时间|
已拨打电话的多家移动运营商
例如,输入文件如下所示:
9898765467| 03:14 12/10/2013 | 03:40 12/10/2013 | a
我只是想知道这件事。假设我正在将一个80 GB的文件复制到HDFS,而我的块大小是64 MB。现在,在收集了块的数据之后,namenode将块写入datanode。我的问题是:namenode以什么方式选择块应该写入哪个datanode。是随机选择还是循环选择?NameNode将根据负载分布系数选择datanode上的块。它将以平衡所有正在运行的datanodes上的负载的方式选择块
此外,NameNode不会收集块的数据并将其写入datanode。当向NameNode发送写入请求时,它会将要写
我打算使用org.apache.Hadoop.mapreduce API在Hadoop 2.3.0中实现一个简单的map reduce函数,但是当我尝试运行它时,我得到了以下错误
org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit.
因为我在mapreduce函数中调用的是
import org.apache.hadoop.fs.Path;
如何将文件从windows操作系统复制到cloudera?我还想将.csv文件导入到配置单元中,如何才能做到这一点?请帮我完成。要将文件导入Linux,您需要将其ftp到CentOS CLoudera box,或者装载一个文件共享并从那里复制
进入CentOS/Cloudera框后,您可以打开web浏览器并登录Cloudera Manager和Hue,这是Hive/Pig等的用户界面。顶部有图标,左侧第三个是蜂蜡/Hive。单击该图标并从那里开始
在Cloudera框中保存文件后,您的另一个选择
标签: Hadoop
hdfsclouderaflumeflume-ng
我是hadoop和Flume NG的新手,需要一些帮助。
我不明白hdfs安全性是如何实现的
以下是Flume用户指南中的配置行:
#hdfs-Cluster1-sink的属性
agent_foo.sinks.hdfs-Cluster1-sink.type=hdfs
代理程序\u foo.sinks.hdfs-Cluster1-sink.hdfs.path=hdfs://namenode/flume/webdata
这是否意味着任何知道我的hdfs路径的人都可以将任何数据写入我的hdfs?这个问
我正在尝试在不同机器上的两个代理之间使用Avro源/接收器建立一个简单的分层数据流
vm-host-01节点上名为agent的第一个代理具有netcat源、内存通道和avro接收器
vm-host-02节点上名为collector的第二个代理具有avro源、内存通道和hdfs接收器
这是第一个代理的配置
agent.sources=s1
agent.channels=c1
agent.sinks=k1
agent.sources.s1.type=netcat
agent.sources.s1.
我已经使用AWS EMR实现了一个集群。我有一个主ndoe,有两个核心节点,具有hadoop引导操作。现在,我想使用自动缩放,并根据cpu阈值和其他一些约束动态调整集群大小。但是,我不知道,因为web上没有太多关于如何在现有集群上使用自动缩放的信息。任何帮助。当前,您无法在自动缩放组中启动EMR群集。但是,您可以通过将CloudWatch警报通知发送到SQS队列和使用AWS CLI或SDK修改集群的队列中的脚本来实现一个非常类似的目标。可以尝试这样做。但这应该是困难的。谢谢,不是真的。。。请看:
我想知道Map Reduce 1算法相对于MR2的缺点
Here are two exciting and significant additions to the Hadoop framework:
• HDFS Federation: provides a name service that is both scalable and reliable.
• YARN: Yet Another Resource Negotiator,it divides the two maj
我有输入文本文件的数据作为
0000856214AB25 256吨PL1423AS
2563458547CD12 748 S AK2523YU
在正则表达式查询下面使用以获取输出
hive> CREATE TABLE test_regex(
>f1 STRING,f2 STRING,
>f3 STRING,f4 STRING,
>f5 STRING,f6 STRING,
>f7 STRING) ROW FORMAT SERDE 'org.apache.hadoop.
我刚刚开始学习Hadoop。在一本书中,有一个我并不完全理解的例子
范例
Consider processing 200 GB of data with 50 nodes, in which each node processes 4 GB
of data located on a local disk. Each node takes 80 seconds to read the data (at the
rate of 50 MB per second). No matter how f
我知道在配置单元中将表保存为csv或其他文本文件时,分隔符存在已知问题。所以我想知道你们能不能帮我解决这个问题
我有一个现有的表A,我想将它以csv格式保存到hdfs。通过阅读其他回复,我认为我必须首先创建一个外部表,但我不确定整个事情会是什么样子
有人能帮忙吗?在hive shell中试试这个:
INSERT OVERWRITE LOCAL DIRECTORY '/path/to/hive/csv' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' S
我有一组Tableau文件.twbx文件,我想将它们存储到Hadoop中。有没有一种方法可以存储它们,然后通过Tableau桌面访问它们?可能就是您在这里寻找的内容。同样,您有两种选择。在我的设置中,我将我的摘录保存在Tableau服务器上,然后每天有一项任务将它们推送到Git repo;不过,这更多是为了备份
如果您希望将活动工作簿存储在S3存储桶中,则可以使用“工作节点”配置Tableau服务器来完成此任务。请参阅指向Tableau服务器管理员的链接。在下面的指南中,有一整章是关于设置分布式
是否可以为配置单元查询获取所有MapReduce作业的应用程序id?我可以查看历史记录或时间线服务器,并获取每个应用程序id的配置单元查询字符串。但是,我想知道是否可以从配置单元的post挂钩获取用户id、所有应用程序id?有解决方案吗?谢谢你这有解决办法吗?非常感谢。
我一直在尝试在Amazon EMR上运行多个步骤的猪作业。以下是我的环境的详细信息:
节点数:20
AMI版本:3.1.0
Hadoop发行版:2.4.0
pig脚本有多个步骤,它生成一个长期运行的map-reduce作业,该作业同时具有map阶段和reduce阶段。运行一段时间(有时一个小时,有时三到四个小时)后,作业被终止。有关作业的资源管理器的信息如下:
在处从hadoop(auth:SIMPLE)接收的Kill作业
作业在运行状态下收到终止消息
显然,我没有杀了它:)
我的问题是:我该如
随着spark在当今市场的发展,我可以看到spark在Hadoop上的主要使用案例,如:
机器学习中的迭代算法
交互式数据挖掘与数据处理
Spark是一个与Apache Hive完全兼容的数据仓库系统
运行速度比Hive快100倍
流处理:实时流中的日志处理和欺诈检测
用于警报、聚合和分析
传感器数据处理:从中提取和连接数据
多个源,内存数据集非常有用,因为它们很容易
处理速度快
我的问题是:
spark会在未来几天取代Hadoop吗
Hadoop在spark并行运行时同时工作?(是真的吗?)
我正试图通过oozie工作流执行一个简单的pig脚本,该工作流导入一个python jar和一些其他jar,最终得到如下错误:
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.PigMain], exception invoking main(), java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.PigMain not
我已经建立了一个3节点的ApacheHadoop集群。在主节点上,我可以看到
[hadoop-conf]$ jps
16856 DataNode
17051 SecondaryNameNode
16701 NameNode
21601 ResourceManager
21742 NodeManager
18335 JobHistoryServer
在从属节点上,我明白了
[fedora20-template dfs]$ jps
28677 Jps
28510 NodeManager
27449
我正在尝试使用hadoop流执行一个仅映射器的作业。
基本上我有一个csv输入文件,有6个字段,第6个字段是薪水。我想把工资档案按降序排列。它与shell脚本“task1.1_map.sh”(tr-d'$'| sort-t,-n-r-k6)配合使用效果非常好
输入文件:
DPT ,NAME ,ADDRESS ,TTL # ,PC ,SAL-RATE
868,B J SANDIFORD,DEPARTMENT OF CITYWIDE ADM,12702,X,$5.0
我对Hadoop 2.7.1中的平均合并时间有一个疑问
我在7节点的集群上运行了一个wordcount示例,其中包含一个txt文件(1.5GB)
如下图所示,一个作业有12个映射任务和一个缩减任务,平均合并时间是多少?
这是否意味着12个映射输出的排序或合并为零
请引导我不
平均合并时间为平均值(sortFinishTime shuffleFinishTime)
Reducer在洗牌过程中接收来自多个映射器的输入。一旦接收到输入,这些文件将附加到reducer(本地)的单个文件中并进行排序。排
我正在尝试使用2.7.1设置一个3-workers-1主hadoop集群。启动群集时,主机会运行以下守护进程:
2792 NameNode
3611 NodeManager
4362 Jps
3346 ResourceManager
2962 DataNode
3169 SecondaryNameNode
在三个工作节点中
2163 NodeManager
2030 DataNode
2303 Jps
问题是当我查看web UI时,集群无法识别这3个worker。它表示1个
给我一些帮助
我现在只是在操作一些例子。
在《数据算法》一书中
我在HDFS上上传了我的文本文件,并且已经创建了一个run.sh文件,但是当我在spark上运行时,它会使erorr变成这样
:
Mkdirs无法创建文件:/output/2/_temporary/0/_temporary/trust\u 201603120204\u 0000\u m\u000000\u 3(exists=false,cwd=file:/home/hadoop/spark-1.6.0/work/app-201603
我有一个java应用程序,我想将其作为工作流中的一个操作运行。
我知道我可以在JAVA action节点中运行JAVA类,但是有没有一种方法可以运行一个在我的工作流中有许多类的JAVA应用程序。Oozie是一个工作流协调器,它允许您执行任何操作,例如pig、hive、JAVA类或shell脚本
Java操作将执行指定主Java类的publicstaticvoidmain(String[]args)方法
下面是Java操作的语法:
<action name='java1'>
&
有人能解释一下hadoop配置的用途吗
并向我解释以下代码:
// Create a new JobConf
JobConf job = new JobConf(new Configuration(), MyJob.class);
// Specify various job-specific parameters
job.setJobName("myjob");
FileInputFormat.setInputPaths(job, new Path("in"));
FileOut
我试图在特定队列中创建一个Sqoop作业运行,但它不起作用
我试过两件事:
1st:在作业创建中声明队列
sqoop job \
--create myjob \
-- import \
--connect jdbc:teradata://RCT/DATABASE=MYDB \
-Dmapred.job.queue.name=shortduration \
--driver com.teradata.jdb
我对通过辩论进行搜索的准则有这种怀疑
context.getConfiguration().get(“Uid2Search”)的含义是什么
我不知道你是怎么写驱动程序的。但根据我的经验,
如果您试图从命令行使用-D选项或通过system.setproperty方法获取系统属性,默认情况下,这些值将设置为上下文配置
配置由资源指定。资源包含一个集合
作为XML数据的名称/值对。每个资源都由一个
字符串或路径。如果由字符串命名,则类路径为
已检查是否存在具有该名称的文件。如果由路径命名,则本地
我试图将数据从Greenplum外部表插入到物理(或普通表)表中。外部表指向一个包含大约1.32亿数据的配置单元文件。但是,当我的外部表仅显示6600万个计数时。因此,当插入到物理表中时,我只插入了6600万条记录。为什么会这样?是否与外部表的表属性有关?如果是这样,如何计算?通过hive计算时,您会看到6600万条记录。假设您刚刚做了一次count(*),这应该足够严格了
现在你不满意这个,因为你有1.32亿“数据”,正好是两倍
我不会担心任何只允许加载前6600万条记录的设置,所以让我们看看
我正在hadoop 2集群的开发环境中使用Thread执行13个表映射连接。所有表连接都与主表保持外部连接。总共有15个连接
由于大多数小表小于200-300 MBs,因此我使用“复制”来执行脚本代码。它执行速度很快,但超过了95-99%。当我检查应用程序url时,两个还原程序未能抛出错误,如“
GC开销限制超出了ApplicationMaster杀死的容器。容器在请求时被杀死。退出代码为143,容器退出时的退出代码为非零143”
其他reducer失败,错误在ApplicationMaster
我用kerberos和AD配置了hdp群集。所有hdp服务帐户都生成了主体和键表,包括spark
我知道服务帐户将不会有密码并设置为未过期。
现在在执行kinit-kt spark.keytab-p spark PRINCIPAL时,我得到了以下错误(参见标题)
我在麻省理工学院的网站上读到,这是由于多次登录尝试失败或KDC默认策略中设置的帐户到期。可以使用kadmin命令(如kadmin:modprincispark/princil)解锁帐户,但我已经与AD管理员进行了交叉检查。他说我们不使用
我正在将相当多的数据处理作业从DB2迁移到Hive
我在DB2中遇到了一个以子句“with ur”结尾的“select”查询,如下所示:
select field1, field2 from table1 where field3=value1 with ur
已知“with ur”子句用于未提交的读取
我没有在配置单元中使用“事务”
有趣的是,我看到了下面的HiveJavadocs链接,其中提到“选择”中的“with ur”选项。
但是,以下链接中的语言手册未提及此选项:
有人能告诉我如
只是想得到澄清,如果
spark submit--keytab--principal&&--proxy用户参数可以共存吗
我们需要以真正的业务用户身份提交作业,但该用户在hadoop kdc中没有主体
每当同时使用代理用户和kerberos主体时,我都会遇到异常
17/02/09 13:51:43 INFO DFSClient: Created HDFS_DELEGATION_TOKEN token 379 for atlas on 10.12.118.92:8020
Exception in
使用HADOOP\u HOME/HADOOP dfsadmin-saveNamespace在HADOOP集群中合并fsimage和编辑而不重新限制namenode是否正确
如果我错了,请更正。是的,保存名称空间的命令用法是
hdfs dfsadmin -saveNamespace
此命令将名称空间映像(从内存)直接保存到磁盘,这比将编辑与存储在磁盘中的fsimage滚动和合并要快
保存名称空间之前,请确保启用了safemode
hdfs dfsadmin -safemode enter
保存
我正在尝试使用一个单节点集群Psuedo来安装Hadoop,并使用它来完成这一任务。现在我正在尝试运行MapReduce作业,并使用它提供的示例bin/hadoop jar share/hadoop/MapReduce/hadoop-MapReduce-examples-3.0.0-alpha3.jar grep输入输出'dfs[a-z]+'
在网上查找此问题时,其他有此问题的人似乎都有此问题,但MapReduce没有。我的hdfs-site.xml与指南中提到的相同:
<configur
我发现MAP Reduce有问题,我还没有找到任何解决方案,
在REDUCE方法中,我只能使用MAX或MIN,当我尝试将它们连接到文本中时,我有一个错误,它不起作用
请有人帮我tkx 文件(.txt)
重复:
错误:
错误:java.lang.NumberFormatException:对于输入字符串,请提供代码的相关部分,然后提供所获得错误的详细信息。
请你能帮我理解什么是512mb(高亮度粗体)在蜂巢环境中?
它的内存大小是多少?
我已经在我的hive site.xml文件中设置了export HADOOP\u HEAPSIZE=4192
hadoop@master:~/hive/conf$ps-ef | grep'hive'
hadoop 5587 14年2月10日?00:05:27
/usr/lib/jvm/default jdk/bin/java-Xmx4192m
-Djava.net.preferIPv4Stack=true-Dhad
我们有Hadoop集群版本HDP–26,在redhat机器版本7.x上
我们运行以下命令来捕获具有损坏块的文件
hdfs fsck / | egrep -v '^\.+$' | grep -v eplica
hdfs fsck /path/to/corrupt/file -locations -blocks -files
例1
[root@master_3 ~]# su hdfs
[hdfs@master_3 root]$ hdfs fsck -list-corruptfilebloc
我按照官方安装指南在HDP sandbox 2.6中安装了ApacheKylin
当我运行脚本$KYLIN_HOME/bin/KYLIN.sh start时,出现以下错误:
我可以做什么来修复此错误
提前感谢Kylin使用find-hive-dependency.sh脚本设置类路径。这个脚本使用了一个配置单元CLI命令,我用beeline对它进行了测试,以查询配置单元环境变量并从中提取类路径
使用kylin_Hive_conf.xml上的属性直接连接到配置单元,但由于某些原因,可能是由于HDP
hadoop 3.1上的My hive shell(3.1.2)在启动和执行任何查询时都会显示许多日志/警告
启动
2020-05-10 12:10:26988信息[main]会话状态:创建的HDFS目录:/tmp/hive hduser/hduser/022ddbe2-5580-4b63-be1b-2cd82dfe9f0f/\u tmp\u space.db
2020-05-10 12:10:27037 INFO[main]conf.HiveConf:使用为日志id传递的默认值:022ddbe
我在Ubuntu机器上安装了一个本地单节点Hadoop实例(Hadoop 3.2.1),以试验基本的hdfs功能,但当我尝试使用hdfs cli导入文件(copyFromLocal)时,它返回:
copyFromLocal: No FileSystem for scheme "null"
所有其他基本命令似乎都能正常工作,我能够:
导出带有“get”的文件
使用“mkdir”创建新文件夹
使用web“浏览目录实例”导入文件
我曾尝试更改Hadoop配置文件中的多个设置,
我创建了一个带有5个createexternaltable查询的hql文件,并跟踪select查询以检查数据。当我在配置单元中运行hql文件时,已将tbl文件上载到HDFS。前3个表正常,但后2个表从文件夹中的第一个tbl文件读取数据,类似于:
ext tab1 reading from tab1
ext tab2 reading from tab2
ext tab3 reading from tab3
ext tab4 reading from tab1
ext tab5 reading fr
1 2 3 4 5 6 ...
下一页 最后一页 共 315 页