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版本。

标签:Hadoop,伪分布式
0
投稿

猜你喜欢

  • SpringBoot2.1.4中的错误处理机制

    2023-11-06 02:48:47
  • 一文告诉你为什么要重写hashCode()方法和equals()方法

    2021-09-05 07:05:55
  • java 方法重写与权限修饰符以及多态和抽象类详解概念和用法

    2023-12-01 15:54:53
  • C sharp (#) 数据类型获取方式

    2022-03-29 00:33:10
  • Android 使用gradle打包Assets目录的案例

    2023-08-05 22:29:45
  • Android编程实现屏幕禁止休眠的方法

    2022-11-19 09:21:31
  • C# Winform选项卡集成窗体详解

    2021-08-12 17:13:55
  • android自动化测试知识点总结

    2022-12-28 03:51:50
  • SpringBoot整合Mybatis与thymleft实现增删改查功能详解

    2023-01-06 00:22:59
  • springboot整合通用Mapper简化单表操作详解

    2022-08-19 19:24:19
  • 命令行编译java文件方式

    2023-01-18 18:35:47
  • 简述Mybatis增删改查实例代码

    2023-03-06 18:07:53
  • Java 从Set里面取出有序的记录详解及实例

    2021-07-08 09:07:33
  • JAVA中JSONObject对象和Map对象之间的相互转换

    2023-07-13 15:04:28
  • VisualStudio Community2019在安装的过程中无法进入安装界面的解决方法

    2023-02-09 11:24:34
  • Android设置PreferenceCategory背景颜色的方法

    2021-09-24 10:13:29
  • Flutter 如何正确显示SnackBar

    2023-06-23 13:00:40
  • SpringBoot项目启动时如何读取配置以及初始化资源

    2021-11-19 04:04:11
  • JAVA实现经典扫雷游戏的示例代码

    2022-01-26 04:20:18
  • java的基本数据类型及属性

    2021-08-10 19:31:49
  • asp之家 软件编程 m.aspxhome.com