Hadoop1.2中配置伪分布式的实例
发布时间:2023-01-26 12:20:56
1、设置ssh
安装ssh相关软件包:
sudo apt-get install openssh-client openssh-server
然后使用下面两个命令之一启动/关闭sshd:
sudo /etc/init.d/ssh start|stop
sudo service ssh start|stop
若成功启动sshd,我们能看到如下类似结果:
$ ps -e | grep ssh
2766 ? 00:00:00 ssh-agent
10558 ? 00:00:00 sshd
这时候,如果运行如下ssh登录本机的命令,会提示输入密码:
ssh localhost
现在我们要做的就是让它不需要输入密码:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #一个空密码的SSH密钥
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
这样的话就行了。如果仍不凑效,可能是密钥文件的权限设置不当。
2、配置hadoop
将hadoop-1.2.1解压到~/下,同时在~/下建立目录hadoop-env,继续在hadoop-env下建立如下的目录结构:
├── dfs
│ ├── checkpoint1
│ ├── data1
│ ├── data2
│ └── name1
└── test
└── input
配置文件hadoop-1.2.1/conf/core-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<final>true</final>
</property>
</configuration>
fs.default.name来指定HDFS的uri,如果value中没有提供端口,默认为8020。
配置文件hadoop-1.2.1/conf/hdfs-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>~/hadoop-env/dfs/name1</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>~/hadoop-env/dfs/data1,~/hadoop-env/dfs/data2</value>
<final>true</final>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>~/hadoop-env/dfs/checkpoint1</value>
<final>true</final>
</property>
</configuration>
dfs.name.dir指定namenode存储元数据的目录,可以指定多个目录,这些目录要用逗号分开;dfs.data.dir指定datanode存放数据的目录,可以指定多个目录;fs.checkpoint.dir指定辅助namenode存放检查点的目录。
配置文件hadoop-1.2.1/conf/mapred-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
<final>true</final>
</property>
</configuration>
3、测试
先格式化HDFS:
./hadoop-1.2.1/bin/hadoop namenode -format
启动HDFS和MapReduce进程:
$ ./hadoop-1.2.1/bin/start-dfs.sh
$ ./hadoop-1.2.1/bin/start-mapred.sh
启动时候如果报错,例如localhost: Error: JAVA_HOME is not set.,需要在./hadoop-1.2.1/conf/hadoop-env.sh文件中export JAVA_HOME,例如:
export JAVA_HOME=~/jdk1.7.0_25
如何检查是否成功启动了: 第一种方法是使用jps命令(Java Virtual Machine Process Status Tool),应该有如下类似输出:
$ jps
13592 DataNode
13728 SecondaryNameNode
13837 JobTracker
12864 NameNode
13955 TaskTracker
16069 Jps
第二种方法是浏览器登录http://localhost:50030查看jobtracker,http://localhost:50070查看namenode。如果在使用 * ,那么在访问时可能会报错,最简单的解决方法是关掉 * 。 还有一种方法就是查看日志文件。
现在我们在~/hadoop-env/test/input目录下建立两个文件:
$ echo "hello world" > test1.txt
$ echo "hi,world" > test2.txt
把这两个文件导入HDFS:
./hadoop-1.2.1/bin/hadoop dfs -put hadoop-env/test/input/ output/
查看:
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /
Found 2 items
drwxr-xr-x - user supergroup 0 2013-10-22 22:07 /test
drwxr-xr-x - user supergroup 0 2013-10-22 21:58 /tmp
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /test
Found 2 items
-rw-r--r-- 3 user supergroup 12 2013-10-22 22:07 /test/test1.txt
-rw-r--r-- 3 user supergroup 9 2013-10-22 22:07 /test/test2.txt
OK,配置完成。
注:本文使用的系统是linux mint 15 64bit,hadoop使用的是1.2.1版本。


猜你喜欢
- 1.在java代码中(SplashActivity继承AppCompatActivity时无效)2.在manifest.xml中改Theme
- Android Notification的多种用法总结我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏
- 引言近期,Google 发布了 Android 11的平台稳定版本。Android 11 将在确保用户隐私安全的前提下,更好地让用户畅享最新
- 两个对象进行比较相等,有两种做法:1、情况一:当仅仅只是判断两个对象是否相等时,只需重写equals()方法即可。这里就不用说明2、情况二:
- 代码背景一个班级,有两类学生,A类:不学习,玩,但是玩的东西不一样,有的是做游戏,有的是看电视B类:放哨的学生,专门看老师的动向,如果老师进
- 两张表SystemParam(系统参数表) Suit (主题)SystemParam 与 Suit 是多对一Suit 的higerSuit字
- Android在自定义控件时,经常需要获得屏幕的宽高,每次都要写,不妨直接把他封装成工具类,直接拿来用,废话不说,直接上代码/** * &n
- 前言系统很多地方都会抛出异常, 而Java的异常体系目标就是与逻辑解耦,Spring提供了统一的异常处理注解,用户只需要在错误的时候提示信息
- java的String对象底层是有字符数组存储的,理论上char[] 最大长度是int的最大值,实际思路:首先,String字面
- 前言 在微信刚流行的时候,在摇一摇还能用来那啥的时候,我也曾深更半夜的拿着手机晃一晃。当时想的最多的就是
- 谈到 Java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.util.concurren
- 前言在平时的项目开发中,mybatis应用非常广泛,但一般都是直接CRUD类型sql的执行。本片博客主要说明一个另类的操作,注入sql,并使
- 先看效果图一、申请成为百度开发者,获得使用地图API接口的权限,获取(AK)码。1.打开百度地图开放平台打开网址:http://lbsyun
- 在安卓开发中,会碰到选开始日期和结束日期的问题。特别是在使用Pad时,如果弹出一个Dialog,能够同时选择开始日期和结束日期,那将是极好的
- 本文实例为大家分享了unity实现场景切换进度条显示的具体代码,供大家参考,具体内容如下一、UI。建立slider适当更改即可;二、新增lo
- 前言最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录。供大家学习参考。Synchronized修饰非静态方法Syn
- 本文实例讲述了C#实现控制Windows系统关机、重启和注销的方法。分享给大家供大家参考。具体分析如下:使用.NET和C#.NET,我们可以
- 先给大家展示下效果图,喜欢的朋友可以下载源码哦。完成这个效果的是使用了 IOS_Dialog_Library下载地址:http://xiaz
- MapTask工作机制如图所示。 (1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSpl
- Spring @Order进行排序直接上代码public class OrderAnnotationTest { &