Hadoop1.2中配置伪分布式的实例

 更新时间:2014年04月28日 08:44:20   作者:  
这篇文章主要介绍了Hadoop1.2中配置伪分布式的实例,使用的系统是linux mint 15 64bit,hadoop使用的是1.2.1版本,需要的朋友可以参考下


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

相关文章

  • 关于Springboot在新增和修改下上传图片并显示的问题

    关于Springboot在新增和修改下上传图片并显示的问题

    这篇文章主要介绍了关于Springboot在新增和修改下上传图片并显示的问题及解决方法,在这里 springboot中已经内嵌了上传图片的依赖包,因此不需要再添加额外依赖,具体实现代码跟随小编一起看看吧
    2021-04-04
  • Java使用Jdbc连接Oracle执行简单查询操作示例

    Java使用Jdbc连接Oracle执行简单查询操作示例

    这篇文章主要介绍了Java使用Jdbc连接Oracle执行简单查询操作,结合实例形式详细分析了java基于jdbc实现Oracle数据库的连接与查询相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Idea中SpringBoot多模块项目的建立实现

    Idea中SpringBoot多模块项目的建立实现

    这篇文章主要介绍了Idea中SpringBoot多模块项目的建立实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java中浮点数精度问题的解决方法

    Java中浮点数精度问题的解决方法

    这篇文章给大家介绍了Java中浮点数精度问题的解决方法,本文给大家介绍的非常详细,有问题描述有原因分析,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • Spring Security实现验证码登录功能

    Spring Security实现验证码登录功能

    这篇文章主要介绍了Spring Security实现验证码登录功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 详解SpringBoot如何统一后端返回格式

    详解SpringBoot如何统一后端返回格式

    今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常,感兴趣的可以了解一下
    2021-07-07
  • PostMan post请求发送Json数据的方法

    PostMan post请求发送Json数据的方法

    下面小编就为大家分享一篇PostMan post请求发送Json数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Springboot整合通用mapper过程解析

    Springboot整合通用mapper过程解析

    这篇文章主要介绍了springboot整合通用mapper过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java核心编程之文件随机读写类RandomAccessFile详解

    Java核心编程之文件随机读写类RandomAccessFile详解

    这篇文章主要为大家详细介绍了Java核心编程之文件随机读写类RandomAccessFile,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Java程序开发中abstract 和 interface的区别详解

    Java程序开发中abstract 和 interface的区别详解

    abstract class和interface在Java语言中都是用来进行抽象类。但是两者有什么区别呢,接下来小编给大家带来了abstract 和 interface的区别详解,感兴趣的朋友一起学习吧
    2016-06-06

最新评论