Tag: hadoop

如何将数据附加到现有的镶木地板文件

我正在使用以下代码创建ParquetWriter并将记录写入其中。 ParquetWriter parquetWriter = new ParquetWriter(path, writeSupport, CompressionCodecName.SNAPPY, BLOCK_SIZE, PAGE_SIZE); final GenericRecord record = new GenericData.Record(avroSchema); parquetWriter.write(record); 但它只允许创建新文件(在指定的路径上)。 有没有办法将数据附加到现有的镶木地板文件(路径)? 在我的情况下缓存parquetWriter是不可行的。

Hive,我如何检索所有数据库的表列

我想在Hive中编写这个sql请求的等价物: select * from information_schema.columns where table_schema=’database_name’ 如何访问配置单元的Metastore并检索存储在特定数据库中的所有表的所有列? 我知道我们可以通过describe [table_name]通过表来完成它,但是在同一个请求中是否有数据库中所有表的所有列?

不推荐使用HTable(config,tablename)类型。 有什么用呢?

我可以使用什么代替HTable(config,tablename) ? 不推荐使用此方法。 在每个例子中,我都可以找到他们使用的这个或另一个Constuctor,它也被弃用了。

JAVA _Home未设置在Hadoop中

我是hadoop的初学者,并尝试在我的Ubuntu中安装和运行hadoop作为单节点集群。 这是我的hadoop_env.sh中的JAVA_HOME # The java implementation to use. export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/ export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-“/etc/hadoop”} 但是当我运行它时,会出现以下错误 – Starting namenodes on [localhost] localhost: Error: JAVA_HOME is not set and could not be found. localhost: Error: JAVA_HOME is not set and could not be found. Starting secondary namenodes [0.0.0.0] 0.0.0.0: Error: JAVA_HOME is not set and could not be found. […]

如何阅读hadoop顺序文件?

我有一个顺序文件,它是hadoop map-reduce作业的输出。 在此文件中,数据以键值对forms写入,值本身是映射。 我想将值作为MAP对象读取,以便我可以进一步处理它。 Configuration config = new Configuration(); Path path = new Path(“D:\\OSP\\sample_data\\data\\part-00000”); SequenceFile.Reader reader = new SequenceFile.Reader(FileSystem.get(config), path, config); WritableComparable key = (WritableComparable) reader.getKeyClass().newInstance(); Writable value = (Writable) reader.getValueClass().newInstance(); long position = reader.getPosition(); while(reader.next(key,value)) { System.out.println(“Key is: “+textKey +” value is: “+val+”\n”); } 程序输出:键是:[这是关键]值是:{abc = 839177,xyz = 548498,lmn = 2,pqr = 1} 在这里我获得了作为字符串的价值,但我希望它作为地图的对象。

解析大于hdfs块大小的XmlInputFormat元素

我是Hadoop MapReduce的新手(确切地说是4天),我被要求在集群上执行分布式XML解析。 根据我在互联网上的(重新)搜索,使用Mahout的XmlInputFormat应该相当容易,但我的任务是确保系统适用于大型(~5TB)XML文件。 据我所知,发送给映射器的文件拆分不能大于hdfs块大小(或每个作业块大小)。 [纠正我如果我弄错了]。 我面临的问题是一些XML元素很大(~200MB)而一些很小(~1MB) 所以我的问题是:当XmlInputFormat创建的XML元素块大于块大小时会发生什么? 它会将整个大文件(比方说200MB)发送给映射器还是将它发送出三个分区(64 + 64 + 64 + 8)? 我目前无法访问该公司的hadoop集群(并且不会在某个时间之前),所以我无法执行测试并找出答案。 请帮助我。

使用map-reduce构建分布式KD树

我正在尝试使用map-reduce构建分布式KD树。 分布式KD树的描述可以在这里找到Dkd-Tree 我有一个维度为20的图像的特征向量。我必须根据上面的链接构建分布式kd树,也看看这个图像Kdtree 我有数百万张图片。 那么我可以使用什么方法来构建树的顶部(图像的第二部分)? 我对各个节点之间的图像分布感到困惑。 如果树在第一次map-reduce操作中构建了HDFS,那么如何在下一次map-reduce操作中访问它?

Map-Reduce中的二级排序

我理解了在键进入reducer之前对特定键的值进行排序的方法。 我了解到可以通过编写三种方法来完成,即keycomparator,partitioner和valuegrouping。 现在,当值分组运行时,它基本上将与自然键关联的所有值组合在一起,对吗? 因此,当它对自然键的所有值进行分组时,与一组排序值一起发送到reducer的实际键是什么? 自然密钥将与多种类型的实体(复合密钥的第二部分)相关联。 发送到减速机的复合键是什么? 美联社

CDH5.2:MR,无法初始化任何输出收集器

Cloudera CDH5.2快速启动VM Cloudera Manager显示所有节点state = GREEN 我在Eclipse上做了一个MR工作,包括Build Path中的所有相关cloudera jar:avro-1.7.6-cdh5.2.0.jar,avro-mapred-1.7.6-cdh5.2.0-hadoop2.jar,hadoop-common -2.5.0-cdh5.2.0.jar,hadoop-mapreduce-client-core-2.5.0-cdh5.2.0.jar 我做了以下工作 hadoop jar jproject1.jar avro00.AvroUserPrefCount -libjars ${LIBJARS} avro/00/in avro/00/out 我得到以下错误,是Java堆问题,任何评论? 先感谢您 14/11/14 01:02:40 INFO client.RMProxy: Connecting to ResourceManager at quickstart.cloudera/127.0.0.1:8032 14/11/14 01:02:43 INFO input.FileInputFormat: Total input paths to process : 1 14/11/14 01:02:43 INFO mapreduce.JobSubmitter: number of splits:1 14/11/14 01:02:44 INFO mapreduce.JobSubmitter: Submitting tokens for […]

测试java HBase连接

我正在尝试使用HBase Java API将数据写入HBase。 我通过Ambari安装了Hadoop / HBase。 以下是当前配置的配置方式: final Configuration CONFIGURATION = HBaseConfiguration.create(); final HBaseAdmin HBASE_ADMIN; HBASE_ADMIN = new HBaseAdmin(CONFIGURATION) 当我尝试写入HBase时,我会检查以确保该表存在 !HBASE_ADMIN.tableExists(tableName) 如果没有,请创建一个新的。 但是,似乎在尝试检查表是否存在时会抛出exception。 我想知道我是否没有正确连接到HBase …是否有任何好方法来validation配置是否正确以及我是否连接到HBase? 我得到的例外情况如下。 谢谢。 java.lang.RuntimeException: java.lang.NullPointerException at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:209) at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:288) at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:268) at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:140) at org.apache.hadoop.hbase.client.ClientScanner.(ClientScanner.java:135) at org.apache.hadoop.hbase.catalog.MetaReader.fullScan(MetaReader.java:597) at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:802) at org.apache.hadoop.hbase.catalog.MetaReader.tableExists(MetaReader.java:359) at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:287) at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:301) at com.business.project.hbase.HBaseMessageWriter.getTable(HBaseMessageWriter.java:40) at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:59) at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:54) […]