Hadoop单机部署方法
安装Java JDK:
到sun网站上下载jdk
chmod +x jdk-6u30-linux-x64.bin
./jdk-6u30-linux-x64.bin
下载Hadoop
wget http://labs.renren.com/apache-mirror/hadoop/common/hadoop-0.20.205.0/hadoop-0.20.205.0.tar.gz
tar zxvf hadoop-0.20.205.0.tar.gz
安装必要软件
yum install ssh rsync
修改配置文件
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
conf/ hadoop-env.sh
export JAVA_HOME=/root/jdk1.6.0_30
bin/hadoop
以root用户运行会报-jvm参数不存在的错误,故将
if [[ $EUID -eq 0 ]]; then
HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"
else
HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"
fi
修改为
elif [ "$COMMAND" = "datanode" ] ; then
CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'
HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"
SSH设置
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
启动hadoop
$ bin/hadoop namenode -format
$ bin/start-all.sh
此时,通过本地的50070和50030端口就可以分别浏览到NameNode和JobTracker:
- NameNode - http://localhost:50070/
- JobTracker - http://localhost:50030/
测试wordcount
生成测试数据:
[root hadoop-0.20.205.0]# mkdir input
[root hadoop-0.20.205.0]# echo "hello world" >> input/a.txt
[root hadoop-0.20.205.0]# echo "hello hadoop" >> input/b.txt
将本地数据复制到HDFS中:
[root hadoop-0.20.205.0]# bin/hadoop fs -put input in
执行测试任务:
[root hadoop-0.20.205.0]# bin/hadoop jar hadoop-examples-0.20.205.0.jar wordcount in out
12/02/05 21:00:47 INFO input.FileInputFormat: Total input paths to process : 2
12/02/05 21:00:48 INFO mapred.JobClient: Running job: job_201202052055_0001
12/02/05 21:00:49 INFO mapred.JobClient: map 0% reduce 0%
12/02/05 21:01:07 INFO mapred.JobClient: map 100% reduce 0%
12/02/05 21:01:19 INFO mapred.JobClient: map 100% reduce 100%
12/02/05 21:01:24 INFO mapred.JobClient: Job complete: job_201202052055_0001
12/02/05 21:01:24 INFO mapred.JobClient: Counters: 29
12/02/05 21:01:24 INFO mapred.JobClient: Job Counters
12/02/05 21:01:24 INFO mapred.JobClient: Launched reduce tasks=1
12/02/05 21:01:24 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=22356
12/02/05 21:01:24 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
12/02/05 21:01:24 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
12/02/05 21:01:24 INFO mapred.JobClient: Launched map tasks=2
12/02/05 21:01:24 INFO mapred.JobClient: Data-local map tasks=2
12/02/05 21:01:24 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=10801
12/02/05 21:01:24 INFO mapred.JobClient: File Output Format Counters
12/02/05 21:01:24 INFO mapred.JobClient: Bytes Written=25
12/02/05 21:01:24 INFO mapred.JobClient: FileSystemCounters
12/02/05 21:01:24 INFO mapred.JobClient: FILE_BYTES_READ=55
12/02/05 21:01:24 INFO mapred.JobClient: HDFS_BYTES_READ=235
12/02/05 21:01:24 INFO mapred.JobClient: FILE_BYTES_WRITTEN=64345
12/02/05 21:01:24 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=25
12/02/05 21:01:24 INFO mapred.JobClient: File Input Format Counters
12/02/05 21:01:24 INFO mapred.JobClient: Bytes Read=25
12/02/05 21:01:24 INFO mapred.JobClient: Map-Reduce Framework
12/02/05 21:01:24 INFO mapred.JobClient: Map output materialized bytes=61
12/02/05 21:01:24 INFO mapred.JobClient: Map input records=2
12/02/05 21:01:24 INFO mapred.JobClient: Reduce shuffle bytes=61
12/02/05 21:01:24 INFO mapred.JobClient: Spilled Records=8
12/02/05 21:01:24 INFO mapred.JobClient: Map output bytes=41
12/02/05 21:01:24 INFO mapred.JobClient: CPU time spent (ms)=2900
12/02/05 21:01:24 INFO mapred.JobClient: Total committed heap usage (bytes)=398852096
12/02/05 21:01:24 INFO mapred.JobClient: Combine input records=4
12/02/05 21:01:24 INFO mapred.JobClient: SPLIT_RAW_BYTES=210
12/02/05 21:01:24 INFO mapred.JobClient: Reduce input records=4
12/02/05 21:01:24 INFO mapred.JobClient: Reduce input groups=3
12/02/05 21:01:24 INFO mapred.JobClient: Combine output records=4
12/02/05 21:01:24 INFO mapred.JobClient: Physical memory (bytes) snapshot=422445056
12/02/05 21:01:24 INFO mapred.JobClient: Reduce output records=3
12/02/05 21:01:24 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1544007680
12/02/05 21:01:24 INFO mapred.JobClient: Map output records=4
查看结果:
[root hadoop-0.20.205.0]# bin/hadoop fs -cat out/*
hadoop 1
hello 2
world 1
cat: File does not exist: /user/root/out/_logs
将结果从HDFS复制到本地并查看:
[root hadoop-0.20.205.0]# bin/hadoop fs -get out output
[root hadoop-0.20.205.0]# cat output/*
cat: output/_logs: Is a directory
hadoop 1
hello 2
world 1
此时,从JobTracker网页中也可以看到任务的执行情况:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
几十条业务线日志系统如何收集处理?
在互联网迅猛发展的今天 各大厂发挥十八般武艺的收集用户的各种信息,甚至包括点击的位置,我们也经常发现自己刚搜完一个东西,再打开网页时每个小广告都会出现与之相关联的商品或信息,在感叹智能的同时不惊想 什么时候泄露的行踪。 许多公司的业务平台每天都会产生大量的日志数据。收集业务日志数据,供离线和在线的分析系统使用,正是日志收集系统的要做的事情。 用户的数据除了这种后台默默的收集外,还有各种运行的日志数据和后台操作日志,因此每个业务可以算是一种类型的日志,那稍大点的公司就会有几十种日志类型要收集,而且业务都分布到不同的服务器上,这就导致了日志的汇集的困难, 在此可以用Flume来解决此类问题,参考以下架构。 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,目前已经是Apache的一个子项目。 Flume作为一个日志收集工具,非常轻量级,基于一个个Flume Agent,能够构建一个很复杂很强大的日志收集系统,它的灵活性和优势,高可用性,高可靠性和可扩展性是日志收集系统所具有的基本特征。主要体现在如下几点: 模块化设计:在其Flume Agen...
- 下一篇
MaxCompute如何实现跨项目授权
实际的企业使用场景里,可能需要把不同项目里的数据、函数、计算资源等一起使用。那如何实现这种跨项目的使用呢,本文用实际例子来说明下。 准备 项目空间:grant_from,需要授权的数据、函数、资源都在这个项目里 项目空间:grant_to,被授权的用户需要在这个项目里执行计算。 用户:aliyun$xxxx@aliyun.com,grant_from项目的project owner,后续的授权操作是这个账号执行的。 用户:ram$xxxx@aliyun.com:chuanxue2,通过在大数据开发套件里授权了grant_to项目的开发角色,现在在使用grant_to项目进行计算的时候,需要用到grant_from项目里的数据、函数和资源。 表:dual,在grant_from和grant_to里都有的一张表,里面就一条数据,用于测试UDF用的
相关文章
文章评论
共有0条评论来说两句吧...