Hadoop 2.2.0和HBase 0.98.11伪分布式
来源:互联网 发布:淘宝促销源码 编辑:程序博客网 时间:2024/05/21 08:03
拖了那么久,现在不得不开始了。sadly。
前期准备
Hadoop系列软件
Hadoop version support matrix
• “S” = supported
• “X” = not supported
• “NT” = Not tested
from:http://hbase.apache.org/book.html
软件选择
虚拟机,centos 6.5 32bit,Hadoop 2.2.0,hbase-0.98.11-hadoop2-bin.tar.gz。
安装jdk,添加java环境变量,配置ssh。
安装Hadoop 2.2.0,并伪分布式运行
解压Hadoop,重命名为apple,修改apple/etc/hadoop/下的配置文件。
配置并启动
hadoop-env.sh修改以下内容:
export JAVA_HOME=/usr/java/default
core-site.xml添加以下内容:
<property> <name>fs.default.name</name> <value>hdfs://localhost.localdomain:9000</value></property><property> <name>hadoop.native.lib</name> <value>true</value></property>
hdfs-site.xml添加以下内容:
<property> <name>dfs.replication</name> <value>1</value></property><property> <name>dfs.namenode.name.dir</name> <value>file:/home/tom/apple/hdfs/namenode</value></property><property> <name>dfs.datanode.data.dir</name> <value>file:/home/tom/apple/hdfs/datanode</value></property>
这里的两个地址,是你namenode和datanode两个节点上,希望hdfs文件存储的位置。
mapred-site.xml.template改为mapred-site.xml,添加以下内容:
<property> <name>mapreduce.framework.name</name> <value>yarn</value></property>
yarn-site.xml添加以下内容:
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value></property><property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value></property>
执行start-all.sh启动Hadoop。jps查看java进程应有
访问8088端口可以查看job信息,访问50070端口可以查看namenode信息。
错误提示:
1. 提示找不到JAVA_HOME的错误。在hadoop-env.sh中JAVA_HOME是这样表示的:export JAVA_HOME=${JAVA_HOME},我以为在profile里设置了JAVA_HOME就没问题了,可事实不是这样,需要改成export JAVA_HOME=/usr/java/default。
2. 在第一次启动Hadoop前要格式化HDFS,hadoop namenode -format。
3. 似乎hostname总是localhost.localdomain,也罢,每次启动手动更改为localhost好了,或者就用localhost.localdomain。
4. hadoop不推荐直接用start-all.sh启动,而应用start-dfs.sh和start-yarn.sh。
5. JobHistoryServer需要单独启动,通过它可以看到每个application的详细日志。启动命令如是,mr-jobhistory-daemon.sh start historyserver。
运行wordcount示例
hadoop fs -put input/file* /inputhadoop jar apple/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output
如果自己编译wordcount程序
import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;public class WordCount{ public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> { private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } result.set(sum); context.write(key, result); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); }}
javac -cp $(hadoop classpath) -d temp WordCount.javajar -cvf sort.jar -C temp .hadoop jar sort.jar WordCount /input /output
/etc/profile的配置
我并没有配置下面的东西,但在教程里这些是配置了的。
打开/etc/profile,添加以下内容:
export HADOOP_HOME=/home/tom/appleexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"export YARN_HOME=$HADOOP_HOME
执行source /etc/profile,使更改后的profile生效。
不过暂时,profile文件中我只是修改了PATH而已,将java的bin,hadoop的bin和sbin,hbase的bin添加到PATH,甚至连CLASSPATH都没有设置,现在还未出现什么异常。
HBase
下载解压,将bin添加到PATH里。
打开hbase/conf/hbase-env.sh,添加以下内容:
export JAVA_HOME=/usr/java/default
export HBASE_MANAGES_ZK=true
表示使用hbase默认自带的 Zookeeper
打开hbase/conf/hbase-site.xml,添加以下内容:
<property> <name>hbase.rootdir</name> <value>hdfs://localhost.localdomain:9000/hbase</value></property><property> <name>hbase.cluster.distributed</name> <value>true</value></property><property> <name>hbase.master</name> <value>localhost.localdomain:60000</value></property><property> <name>hbase.zookeeper.quorum</name> <value>localhost.localdomain</value></property>
用如下命令启动和关闭Hbase:start-hbase.sh和stop-hbase.sh
注意:必须先启动Hadoop,再启动Hbase;先关闭Hbase,再关闭Hadoop
打开http://localhost:60010,如果能进去,说明安装成功。
验证HBase
进入Hbase: hbase shell
查看所有表名:list
参考文献
Hadoop2.2.0+Hbase0.98.1+Sqoop1.4.4+Hive0.13完全安装手册_百度文库
http://www.dwz.cn/DZ4rq
hbase安装配置(整合到hadoop)
http://blog.csdn.net/hguisu/article/details/7244413
- Hadoop 2.2.0和HBase 0.98.11伪分布式
- 安装hadoop+hbase伪分布式
- Hadoop伪分布式-----HBase的安装和配置
- [Hadoop]Hadoop+HBase 伪分布式安装配置
- Hadoop-2.2.0 + hbase-0.98.4-hadoop2 RedHat x64 伪分布式安装小札(及配置文件)
- Hadoop 2.6.0 HBase 0.98 VMware单机伪分布式式环境搭建(作业用)
- hadoop+hbase 伪分布式安装配置
- Hadoop+HBase 伪分布式安装配置
- Hadoop HBase 伪分布式安装 配置
- Hadoop HBase 伪分布式安装 配置
- hadoop 2.2.0伪分布式安装
- mac本地搭建伪分布式Hadoop和HBase遇到的问题
- 0-1 伪分布hadoop和hbase搭建
- HBase基础和伪分布式安装配置
- 伪分布式hadoop平台上hbase的安装配置
- hadoop 大数据开发5 --伪分布式hbase配置异常
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- 伪分布式集群环境hadoop、hbase、zookeeper搭建(全)
- io Object流
- jQWidgets的TreeGrid 心得:
- 黑马程序员——面向对象
- 欢迎使用CSDN-markdown编辑器
- ThreadLocal-分析-总结
- Hadoop 2.2.0和HBase 0.98.11伪分布式
- Ueditor上传配置
- MySQL_GUI_Tools可视化工具的使用!!
- RAC-DG1-DG2 切换
- 非负矩阵分解NMF
- 博客的第一篇___
- android studio的详细使用
- 《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源
- Windows查看端口占用及杀掉进程