Articles of hadoop

Hadoop可以在Nginx上运行吗?

有可能在Nginx上运行Hadoop吗? 如果是的话,有没有参考?

无法让ZooKeeper集群工作,选举从未发生

这是我第一次尝试ZooKeeper,虽然我可以轻松地将它设置为在一台机器上运行,但是让它在两台机器的集群中运行根本不起作用。 我认为这可能是我的configuration有问题,但看起来不像我能find它。 这里是服务器1的日志 这里是服务器2的日志 我的configuration如下两台服务器: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. dataDir=/var/lib/zookeeper […]

在运行hadoop群集的同时在Google云端平台上获取“sudo:未知用户:hadoop”和“sudo:无法初始化策略插件错误”

我试图在Google Cloud Platform上的https://github.com/GoogleCloudPlatform/solutions-google-compute-engine-cluster-for-hadoop上部署Google提供的示例Hadoop应用程序。 我按照步骤给出的所有设置说明。 我能够设置环境并成功启动群集。 但是我无法运行MapReduce部分。 我在我的terminal上执行这个命令: ./compute_cluster_for_hadoop.py mapreduce <project ID> <bucket name> [–prefix <prefix>] –input gs://<input directory on Google Cloud Storage> \ –output gs://<output directory on Google Cloud Storage> \ –mapper sample/shortest-to-longest-mapper.pl \ –reducer sample/shortest-to-longest-reducer.pl \ –mapper-count 5 \ –reducer-count 1 我收到以下错误: sudo: unknown user: hadoop sudo: unable to initialize policy plugin Traceback (most […]

Oozie:Sqoopdynamic目标目录

我从Oozie工作stream执行sqoop作业。 我可以在sqoop命令中使用静态名称创build目标目录,如下所示。 <action name="table1" cred=""> <sqoop xmlns="uri:oozie:sqoop-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <command>job –exec EMPLOYEE –meta-connect jdbc:hsqldb:hsql://<host>:<port>/sqoop — –target-dir /user/test/Employee/20150126</command> </sqoop> <ok to="end" /> <error to="kill" /> </action> 我需要用date创builddynamic目标目录。 我尝试跟随,但不工作。 <action name="table1" cred=""> <sqoop xmlns="uri:oozie:sqoop-action:0.2"> <job-tracker>${jobTracker}</job-tracker> <name-node>${nameNode}</name-node> <command>job –exec EMPLOYEE –meta-connect jdbc:hsqldb:hsql://<host>:<port>/sqoop — –target-dir /user/test/Employee/$(date +%Y%m%d)</command> </sqoop> <ok to="end" /> <error to="kill" /> </action> 运行时显示以下错误。 3622 [main] INFO […]

如何从基于Linux的Hadoop客户端使用Azure blob存储?

这是我的设置: 带有wasb://mybucket HDInsights Hadoop集群设置为默认的FS。 安装有HDP 2.2 RPM软件包的CentOS虚拟机。 (让我们称之为client1) 我想要做的是: local1 > ssh client1 client1> hadoop fs -ls / #list contents of blob storage bucket. 我已将以下密钥从hdinsights头节点上的core-site.xml复制到/etc/hadoop/conf/core-site.xml : fs.defaultFs – wasb:// … fs.azure.account.key.mybucket.blob.core.windows.net – 随机string fs.azure.account.keyprovider.mybucket.blob.core.windows.net – …ShellDecryptionKeyProvider 不幸的是,这需要一个ShellDecryptionKeyProvider来呼叫。 在Windows上,这是一个命令行可执行文件。 我不知道如何为Linux提供。 这是输出: [rathboma@client1 yum.repos.d]$ hadoop fs -ls / 15/03/04 23:02:12 INFO impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 15/03/04 […]

从Java代码运行Linux Hadoop fs命令

我试图从java代码运行一个命令两个合并到文件! 该命令是: hadoop fs -cat /user/clouder/Index_1/part-r-00000 /user/cloudera/Index_2/part-r-00000 | hadoop fs -put – /user/cloudera/mergedfile 该命令在Clouderaterminal上运行完美,但是当我从java代码运行相同的命令时,它会在控制台上显示合并内容,但不会在HDFS上的指定path中创buildmergedfile。 如果mergedfile已经存在,那么它输出文件的早期数据,而不是新合并的数据,如果文件不存在,则不会创build新文件。 在terminal上运行的上述命令创build新文件,如果不存在,则会导致文件错误。 我的java代码如下: process p; try{ p =Runtime.getRuntime().exec("hadoop fs -cat /user/cloudera/Index_1/part-r-00000 /user/cloudera/Index_2/part-r-00000 | hadoop fs -put – /user/cloudera/mergedfile"); BufferredReader br=new BufferedReader(new InputStreamReader(p.getInputStream())); while(s=br.readLine())!=null) { System.out.println(s); } } catch(Exception e) { System.out.println(e.getMessage()); } 我的目的是replace,如果有一个现有的文件或创build一个新的文件,如果不存在从Java代码。

我应该在hadoop用户+系统时间或花在hadoop工作计数器上的总CPU时间中使用哪一个基准testing任务?

在这个答案中写道:“同一个作业在同一个数据上运行,但在一个20个节点的集群上,然后是一个200个节点的集群。总的来说,在两个集群上都会使用相同数量的CPU时间。”有人可以解释这一点吗? 我用time命令来衡量实时。 有时我得到更多的cpu时间(hadoop计数器)比实际实时,反之亦然。我知道,实时测量实际时钟的时间已经过去,它可以比user+sys更大或更小。 我仍然没有得到什么总的cpu时间措施在hadoop。 对于时间命令这个答案写入用户+ sys为基准是很好的。 由于total cpu time taken by process = user+sys它应该和hadoop工作计数器的总CPU时间相同。 但是我得到不同的结果。 我应该考虑哪个时间,如果我在hadoop用户+系统或花费的CPU总时间(hadoop计数器)做一些基准types的任务? 注意:在apache configuration单元基准testing中,他们考虑了实时性,但也可能受到其他过程的影响。 所以我不能考虑实时。

在Hortonworks分发中归档HDFS文件时的AWK使用问题

我正在尝试将HDFS目录中超过3天的文件移动到HDFS中的存档文件夹中。 AWK脚本: hdfs dfs -ls hdfs://companycluster/data/src/purecloud/current | tail -n+2 | xargs -n 8 | awk '{ DAY_CONV=(60*60*24); X ="date +%s";X | getline ED;printf("") > "X";close("X"); Y="date -d \"$6\" +%s";Y | getline SD;printf("") > "Y";close("Y"); DIFF=(ED-SD)/DAY_CONV; print " SD=",SD" ED=",ED," DIFF=",DIFF," INPUT=",$6; if ( DIFF -gt 3) cmd="hdfs dfs -ls " $8; system(cmd); }' 注意:一旦这个脚本开始工作,cmdvariables将会有一个mv命令 问题: […]

将文件拆分为HDFS中的小文件

我在HDFS有一个名为test.txt的文件。 它包含1000logging。 我想将test.txt分成10个小文件,其中包含相同的logging数。 我可以在下面的Linux做到这一点 split -l $(($(wc -l < test.txt )/10 + 1)) test.txt HDFS是否有类似的function? 我如何在HDFS实现这一点

HBase不会运行./start-hbase.sh – 权限被拒绝?

我想运行HBase。 我已经完全安装了hadoop,当我运行start-all.sh ,它工作正常,给了我这个输出: hduser@CSLAP106:/usr/local/hadoop/bin$ jps 11956 SecondaryNameNode 12046 JobTracker 12193 TaskTracker 11800 DataNode 11656 NameNode 12254 Jps 但是,当我想运行start-hbase.sh ,它给了我一些权限被拒绝的错误,我不明白为什么: hduser@CSLAP106:/usr/local/hbase/hbase-0.94.6.1/bin$ ./start-hbase.sh localhost: starting zookeeper, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out localhost: /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.log: Permission denied localhost: head: cannot open '/usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out' for reading: No such file or directory /usr/local/hbase/hbase-0.94.6.1/bin/hbase-daemon.sh: line 150: /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-master-CSLAP106.log: Permission denied head: cannot open […]