ubuntu安装与测试hadoop1.1.0版本

简介:

最近没什么事,就使用之前测试openstack的机器,测试一下hadoop,看看他到底是干嘛的?

测试环境为ubuntu 12.04 64位系统,hadoop版本是1.1.0

下面是安装过程

1、安装jdk

 
 
  1. apt-get install openjdk-7-jdk 
安装完成后测试一下

 
 
  1. root@openstack:~/hadoop/conf# java -version  
  2. java version "1.6.0_24"  
  3. OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)  
  4. OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)  
可以看到我的jdk是1.6版本的
2、下载hadoop

 
 
  1. wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.1.0/hadoop-1.1.0.tar.gz 

 

3、安装hadoop
先解压
 

 
 
  1. tart zxvf hadoop-1.1.0.tar.gz 
然后重命名

 
 
  1. mv hadoop-1.1.0 hadoop 
然后对hadoop进行配置
(1)修改conf/core-site.xml

 
 
  1. <configuration> 
  2. <property> 
  3. <name>fs.default.name</name> 
  4. <value>hdfs://localhost:9000</value> 
  5. </property> 
  6. <property> 
  7. <name>hadoop.tmp.dir</name> 
  8. <value>/home/hadoop/tmp</value> 
  9. </property> 
  10. </configuration> 
 注意:hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。它默认的位置是在/tmp/{$user}下面,在local和hdfs都会建有相同的目录,但是在/tmp路径下的存储是不安全的,因为linux一次重启,文件就可能被删除。导致namenode启动不起来。
(2)修改conf/hdfs-site.xml

 
 
  1. <configuration> 
  2. <property> 
  3. <name>dfs.replication</name> 
  4. <value>1</value> 
  5. </property> 
  6. </configuration> 
(3) 修改conf/mapred-site.xml

 
 
  1. <configuration> 
  2. <property> 
  3. <name>mapred.job.tracker</name> 
  4. <value>localhost:9001</value> 
  5. </property> 
  6. </configuration> 
(4)为了是hadoop能找到java,所以在conf/hadoop-env.sh最后一行添加jdk的路径,我的java路径为

 
 
  1. export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64 
然后再检测一下

 
 
  1. root@openstack:~/hadoop/conf# java -version  
  2. java version "1.6.0_24"  
  3. OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)  
  4. OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)  
可以看到我的jdk是1.6版本的
(5)在namenode端cd到hadoop文件夹下,格式化分布式文件系统:

 
 
  1. bin/hadoop namenode -format 
下面是我的操作结果

 
 
  1. root@openstack:~/hadoop/conf# cd ..  
  2. root@openstack:~/hadoop# bin/hadoop namenode -format  
  3. 12/11/27 14:10:43 INFO namenode.NameNode: STARTUP_MSG:   
  4. /************************************************************  
  5. STARTUP_MSG: Starting NameNode  
  6. STARTUP_MSG:   host = openstack/127.0.1.1  
  7. STARTUP_MSG:   args = [-format]  
  8. STARTUP_MSG:   version = 1.1.0  
  9. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1394289; compiled by 'hortonfo' on Thu Oct  4 22:06:49 UTC 2012  
  10. ************************************************************/  
  11. 12/11/27 14:10:43 INFO util.GSet: VM type       = 64-bit  
  12. 12/11/27 14:10:43 INFO util.GSet: 2% max memory = 17.77875 MB  
  13. 12/11/27 14:10:43 INFO util.GSet: capacity      = 2^21 = 2097152 entries  
  14. 12/11/27 14:10:43 INFO util.GSet: recommended=2097152actual=2097152 
  15. 12/11/27 14:10:44 INFO namenode.FSNamesystem: fsOwner=root 
  16. 12/11/27 14:10:44 INFO namenode.FSNamesystem: supergroupsupergroup=supergroup  
  17. 12/11/27 14:10:44 INFO namenode.FSNamesystem: isPermissionEnabled=true 
  18. 12/11/27 14:10:44 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 
  19. 12/11/27 14:10:44 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)  
  20. 12/11/27 14:10:44 INFO namenode.NameNode: Caching file names occuring more than 10 times   
  21. 12/11/27 14:10:44 INFO common.Storage: Image file of size 110 saved in 0 seconds.  
  22. 12/11/27 14:10:44 INFO namenode.FSEditLog: closing edit log: position=4editlog=/home/hadoop/tmp/dfs/name/current/edits  
  23. 12/11/27 14:10:44 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/home/hadoop/tmp/dfs/name/current/edits  
  24. 12/11/27 14:10:46 INFO common.Storage: Storage directory /home/hadoop/tmp/dfs/name has been successfully formatted.  
  25. 12/11/27 14:10:46 INFO namenode.NameNode: SHUTDOWN_MSG:   
  26. /************************************************************  
  27. SHUTDOWN_MSG: Shutting down NameNode at openstack/127.0.1.1  
  28. ************************************************************/  
(6)然后再启动服务,由于我的单节点安装,所以就全部启动

 
 
  1. bin/start-all.sh 
下面是我的操作

 
 
  1. root@openstack:~/hadoop# bin/start-all.sh   
  2. starting namenode, logging to /root/hadoop/libexec/../logs/hadoop-root-namenode-openstack.out  
  3. localhost: starting datanode, logging to /root/hadoop/libexec/../logs/hadoop-root-datanode-openstack.out  
  4. localhost: starting secondarynamenode, logging to /root/hadoop/libexec/../logs/hadoop-root-secondarynamenode-openstack.out  
  5. starting jobtracker, logging to /root/hadoop/libexec/../logs/hadoop-root-jobtracker-openstack.out  
  6. localhost: starting tasktracker, logging to /root/hadoop/libexec/../logs/hadoop-root-tasktracker-openstack.out  
然后再输入jps查看本机的启动情况

 
 
  1. root@openstack:~/hadoop# jps  
  2. 9340 SecondaryNameNode  
  3. 9665 TaskTracker  
  4. 9426 JobTracker  
  5. 9822 Jps  
  6. 8853 NameNode  
  7. 9091 DataNode  
可以看到namenode与datanode都启动了
如果你不是单机模式,多节点的话,你在namenode看到的就只有namenode而没有datanode,反之在datanode也是一样。
然后再打开http://localhost:50030与http://localhost:50070查看运行情况,由于我的机器的ip是192.168.1.30,所以我如果不在本机查看的话,就可以使用http://192.168.1.30:50030查看
下面是 http://192.168.1.30:50030的界面

下面是http://192.168.1.30:50070的界面

4、测试hadoop
我是使用hadoop自带的wordcount测试
(1)、通过hadoop的命令在HDFS上创建/tmp/test目录,命令如下:bin/hadoop dfs -mkdir /tmp/test
(2)、先在系统里创建test1与test2文件,内容分别为:
test1 "hello world,this is my hadoop test"
test2 "welcome to hadoop world"
创建的命令为

 
 
  1. echo "hello world,this is my hadoop test">/tmp/test1  
  2. echo "welcome to hadoop world">/tmp/test2  
(3)、然后再通过copyFromLocal命令把本地的test1与test2复制到HDFS上,命令如下:bin/hadoop dfs -copyFromLocal /tmp/test[1-2]  /tmp/test
然后再到hds里查看一下

 
 
  1. root@openstack:~/hadoop# bin/hadoop dfs -ls /tmp/test  
  2. Found 2 items  
  3. -rw-r--r--   1 root supergroup         35 2012-11-27 15:01 /tmp/test/test1  
  4. -rw-r--r--   1 root supergroup         24 2012-11-27 15:01 /tmp/test/test2  
可以看到test1与test2已经上传到了hds里
(4)在执行wordcount

 
 
  1. root@openstack:~/hadoop# bin/hadoop jar hadoop-examples-1.1.0.jar wordcount /tmp/test/test* /tmp/test/result  
  2. 12/11/27 15:28:21 INFO input.FileInputFormat: Total input paths to process : 2  
  3. 12/11/27 15:28:21 INFO util.NativeCodeLoader: Loaded the native-hadoop library  
  4. 12/11/27 15:28:21 WARN snappy.LoadSnappy: Snappy native library not loaded  
  5. 12/11/27 15:28:21 INFO mapred.JobClient: Running job: job_201211271500_0002  
  6. 12/11/27 15:28:22 INFO mapred.JobClient:  map 0% reduce 0%  
  7. 12/11/27 15:28:31 INFO mapred.JobClient:  map 100% reduce 0%  
  8. 12/11/27 15:28:40 INFO mapred.JobClient:  map 100% reduce 33%  
  9. 12/11/27 15:28:42 INFO mapred.JobClient:  map 100% reduce 100%  
  10. 12/11/27 15:28:44 INFO mapred.JobClient: Job complete: job_201211271500_0002  
  11. 12/11/27 15:28:44 INFO mapred.JobClient: Counters: 29  
  12. 12/11/27 15:28:44 INFO mapred.JobClient:   Job Counters   
  13. 12/11/27 15:28:44 INFO mapred.JobClient:     Launched reduce tasks=1 
  14. 12/11/27 15:28:44 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=12789 
  15. 12/11/27 15:28:44 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0  
  16. 12/11/27 15:28:44 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0  
  17. 12/11/27 15:28:44 INFO mapred.JobClient:     Launched map tasks=2 
  18. 12/11/27 15:28:44 INFO mapred.JobClient:     Data-local map tasks=2 
  19. 12/11/27 15:28:44 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=10558 
  20. 12/11/27 15:28:44 INFO mapred.JobClient:   File Output Format Counters   
  21. 12/11/27 15:28:44 INFO mapred.JobClient:     Bytes Written=70 
  22. 12/11/27 15:28:44 INFO mapred.JobClient:   FileSystemCounters  
  23. 12/11/27 15:28:44 INFO mapred.JobClient:     FILE_BYTES_READ=125 
  24. 12/11/27 15:28:44 INFO mapred.JobClient:     HDFS_BYTES_READ=261 
  25. 12/11/27 15:28:44 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=71664 
  26. 12/11/27 15:28:44 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=70 
  27. 12/11/27 15:28:44 INFO mapred.JobClient:   File Input Format Counters   
  28. 12/11/27 15:28:44 INFO mapred.JobClient:     Bytes Read=59 
  29. 12/11/27 15:28:44 INFO mapred.JobClient:   Map-Reduce Framework  
  30. 12/11/27 15:28:44 INFO mapred.JobClient:     Map output materialized bytes=131 
  31. 12/11/27 15:28:44 INFO mapred.JobClient:     Map input records=2 
  32. 12/11/27 15:28:44 INFO mapred.JobClient:     Reduce shuffle bytes=131 
  33. 12/11/27 15:28:44 INFO mapred.JobClient:     Spilled Records=20 
  34. 12/11/27 15:28:44 INFO mapred.JobClient:     Map output bytes=99 
  35. 12/11/27 15:28:44 INFO mapred.JobClient:     CPU time spent (ms)=3620  
  36. 12/11/27 15:28:44 INFO mapred.JobClient:     Total committed heap usage (bytes)=302252032  
  37. 12/11/27 15:28:44 INFO mapred.JobClient:     Combine input records=10 
  38. 12/11/27 15:28:44 INFO mapred.JobClient:     SPLIT_RAW_BYTES=202 
  39. 12/11/27 15:28:44 INFO mapred.JobClient:     Reduce input records=10 
  40. 12/11/27 15:28:44 INFO mapred.JobClient:     Reduce input groups=9 
  41. 12/11/27 15:28:44 INFO mapred.JobClient:     Combine output records=10 
  42. 12/11/27 15:28:44 INFO mapred.JobClient:     Physical memory (bytes) snapshot=431722496 
  43. 12/11/27 15:28:44 INFO mapred.JobClient:     Reduce output records=9 
  44. 12/11/27 15:28:44 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=3213344768 
  45. 12/11/27 15:28:44 INFO mapred.JobClient:     Map output records=10 
然后再查看一下

 
 
  1. root@openstack:~/hadoop# bin/hadoop dfs -ls /tmp/test  
  2. Found 3 items  
  3. drwxr-xr-x   - root supergroup          0 2012-11-27 15:28 /tmp/test/result  
  4. -rw-r--r--   1 root supergroup         35 2012-11-27 15:01 /tmp/test/test1  
  5. -rw-r--r--   1 root supergroup         24 2012-11-27 15:01 /tmp/test/test2  
可以看到2个文件一个文件夹
文件夹的内容为

 
 
  1. root@openstack:~/hadoop# bin/hadoop dfs -ls /tmp/test/result  
  2. Found 3 items  
  3. -rw-r--r--   1 root supergroup          0 2012-11-27 15:28 /tmp/test/result/_SUCCESS  
  4. drwxr-xr-x   - root supergroup          0 2012-11-27 15:28 /tmp/test/result/_logs  
  5. -rw-r--r--   1 root supergroup         70 2012-11-27 15:28 /tmp/test/result/part-r-00000  
然后我们在看之前的运行结果,也就是part-r-00000的内容

 
 
  1. root@openstack:~/hadoop# bin/hadoop dfs -cat  /tmp/test/result/part-r-00000  
  2. hadoop  2  
  3. hello   1  
  4. is  1  
  5. my  1  
  6. test    1  
  7. to  1  
  8. welcome 1  
  9. world   1  
  10. world,this  1  
在对比一下test1与test2的内容

 
 
  1. root@openstack:~/hadoop# cat /tmp/test1  
  2. hello world,this is my hadoop test  
  3. root@openstack:~/hadoop# cat /tmp/test2  
  4. welcome to hadoop world  
可以发现hadoop对这2个文本进行了word的统计,左侧是单词,右侧是出现的次数。
然后我们在查看一下web界面的显示

 

可以发现有之前的操作了,为什么有2个job,是因为我又做了其他的操作
查看第一个job

操作都有各自的描述,我就不多说了。
现在我只是使用wordcount简单的测试一下hadoop,了解他的一下简单的概念与作用。

BTW:如果大家认为我写的不错,希望能给我的博客投个票,谢谢!

http://blog.51cto.com/contest2012/2382721




 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1072963,如需转载请自行联系原作者




相关文章
|
1天前
|
Ubuntu Linux Docker
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
17 0
|
1天前
|
NoSQL Ubuntu 网络安全
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
13 1
|
7天前
|
Ubuntu TensorFlow 算法框架/工具
如何在Ubuntu上安装TensorFlow 24.04
如何在Ubuntu上安装TensorFlow 24.04
31 1
|
7天前
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
18天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
107 25
|
19天前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
40 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
1月前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
344 15
|
2月前
|
弹性计算 Ubuntu Java
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
59 6
|
2月前
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
179 86
|
2月前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
87 7

热门文章

最新文章