Hadoop在Linux下伪分布式的安装以及wordcount实例的运行与Eclipse的使用

2019-03-28 12:58|来源: 网络

Hadoop版本:hadoop-0.20.2

1、hadoop伪分布式的安装
1.安装配置java1.6。配置完毕后,在命令行中输入java -version,如出现下列信息说明java环境安装成功。
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)

2.配置ssh免密码登录

(1)安装ssh:sudo apt-get install ssh

(2)配置可以无密码登陆本机:

首先查看在u用户下是否存在.ssh文件夹(注意ssh前面有“.”,这是一个隐藏文件夹),输入命令:

cd /home/wangxing。

接下来,输入命令:

ssh-keygen -t dsa -P '' –f~/.ssh/id_dsa

这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub,这是ssh的一对私钥和公钥,类似于钥匙及锁,把id_da.pub(公钥)追加到授权的key里面去,

输入命令:cat ~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys

这段话的意思是把公钥加入到用于认证的公钥文件中,这里authorized_keys是用于认证的公钥文件。至此无密码登陆本机以安装完成。

(3)验证ssh已安装成功及无密码登陆本机

 输入命令:ssh –version

显示结果:

OpenSSH_5.1p1 Debian-6Ubuntu2, OpenSSL 0.9.8g 19Oct 2007

Bad escape character 'rsion'.

这显示了ssh已经安装成功

输入命令:

ssh localhost

会有如下显示:

The authenticity of host 'localhost (::1)' can't beestablished.

RSA key fingerprint is8b:c3:51:a5:2a:31:b7:74:06:9d:62:04:4f:84:f8:77.

Are you sure you want to continue connecting(yes/no)? yes

Warning: Permanently added 'localhost' (RSA) to thelist of known hosts.

Linux master 2.6.31-14-generic #48-Ubuntu SMP FriOct 16 14:04:26 UTC 2009 i686 

To access official Ubuntu documentation, pleasevisit:

http://help.ubuntu.com/ 

Last login: Mon Oct 18 17:12:40 2010 from master

如上显示,说明已经安装成功,第一次登录时会询问你是否继续链接,输入yes即可以进入。

 实际上,在hadoop的安装过程中,是否无密码登陆不是必须的,但是如果不配置无密码登陆的话,每次启动hadoop,都需要输入密码以登陆到每台daotanode,考虑到一般的hadoop集群动辄数十数百台机器,因此一般来说都会配置ssh的无密码登陆。

3.下载hadoop-0.20.2.tar.gz,放在用户根目录下,例如:/home/wangxing/hadoop-0.20.2:
下载地址:http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.20.2/
解压:tar –zvxf hadoop-0.20.2.tar.gz
 
4.配置hadoop,hadoop 的主要配置都在hadoop-0.20.2/conf 下。
(1)在conf/hadoop-env.sh 中配置Java 环境以及HADOOP_HOME、PATH,例如
export JAVA_HOME=/usr/local/jre1.6.0_24
export HADOOP_HOME=/home/wangxing/hadoop-0.20.2
export PATH=$PATH:/home/wangxing/hadoop-0.20.2/bin
(2)配置conf/core-site.xml、conf/hdfs-site.xml、conf/mapred-site.xml

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>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/wangxing/hadoop-0.20.2/tmpdir</value>
    </property>
</configuration>

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.replication</name>
        <value>1</value>
    </property>
   
    <property> 
        <name>dfs.name.dir</name>
        <value>/home/wangxing/hadoop-0.20.2/tmpdir/hdfs/name</value> 
    </property> 
   
    <property> 
        <name>dfs.data.dir</name> 
        <value>/home/wangxing/hadoop-0.20.2/tmpdir/hdfs/data</value> 
    </property>
</configuration>

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>
    </property>

    <property> 
        <name>mapred.local.dir</name> 
        <value>/home/wangxing/hadoop-0.20.2/tmpdir/mapred/local</value> 
    </property> 
   
    <property> 
        <name>mapred.system.dir</name> 
        <value>/home/wangxing/hadoop-0.20.2/tmpdir/mapred/system</value> 
    </property>

</configuration>

5.格式化namenode、datanode:bin/hadoop namenode -format、bin/hadoop datanode -format

6.启动hadoop所有进程:bin/start-all.sh

7.验证hadoop是否安装成功

打开浏览器,分别输入网址

http://localhost:50030 (mapreduce的web页面)

http://localhost:50070 (hdfs的web页面)

如果都能查看,说明hadoop已经安装成功。

8.查看hadoop进程启动情况:jps。正常情况下应该有NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTracker

Hadoop在Linux下伪分布式的安装以及wordcount实例的运行与Eclipse的使用

9.查看集群状态:bin/hadoop dfsadmin  -report

Hadoop在Linux下伪分布式的安装以及wordcount实例的运行与Eclipse的使用

相关问答

更多
  • 先回答你标题的提问:hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。hadoop伪分布式:一个节点看了以上两点相信你已经明白了,“用vm多装几个unbuntu配置完全分布式,然后做实验”这是完全可行的。实际上我们通常也是这么做的,当然可能要求你的电脑cpu和内存足够支撑你这一计划。一点建议:如果你要开发基于Hadoop的分布式程序,伪分布式足够你实验了。如果你要做很多其他事情,比如玩玩cm,玩玩oozie,玩玩hbase,建议装多个虚拟机。
  • 1、能搭好环境说明水平还不错。 2、下边应该分以下几步走: 一,依据示例程序,自己手写wordcount之类的示例程序,以此充分了解m/r和hdfs的简单原理。 二,针对某些知识点,如hadoop应用场景、hadoop的简单应用等,去百度一下搞定,这样的问题最关键、最需要做的。 三,深入阅读hadoop的源码,把框架的数据流或说工作流搞个大致清楚。 四,试着用hadoop解决一些实际问题和项目应用。 参考下吧。
  • 先回答你标题的提问:hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。hadoop伪分布式:一个节点看了以上两点相信你已经明白了,“用vm多装几个unbuntu配置完全分布式,然后做实验”这是完全可行的。实际上我们通常也是这么做的,当然可能要求你的电脑cpu和内存足够支撑你这一计划。一点建议:如果你要开发基于Hadoop的分布式程序,伪分布式足够你实验了。如果你要做很多其他事情,比如玩玩cm,玩玩oozie,玩玩hbase,建议装多个虚拟机。
  • 启动hdfs,mr和yarn服务看是否能够正常启动,然后用hadoop fs -ls /是否能够正常执行
  • 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后去进行分布式运行(您也可以自己写java代码去设置job的configuration属性)。   若不拷贝,工程中bin目录没有完整的xml配置文件,则windows执行的mapreduce程序全部通过本机的jvm执行,作业名也是带有“local"字眼的作业,如 job_local2062122004_0001。 这不是真正的分布式运行mapred ...
  • 启动hdfs,mr和yarn服务看是否能够正常启动,然后用hadoop fs -ls /是否能够正常执行
  • 在 /usr/local/hadoop/ 下面启动,找到是/opt/Hadoop/下面的hadoop安装包,是不是HADOOP_HOME环境变量配置的有问题。 可以到海牛部落交流,那里有好多学习hadoop的朋友
  • mahout 和 hadoop没有啥关系,非得说关系的话,你得弄清二者是干啥的 mahout是一个机器学习算法库,人家是做一些经典的机器学习的算法实现的; hadoop是一个开源的分布式的数据处理引擎(HadoopV1来说,是MapReduce),人家很多时候是做大规模数据处理的; 所以,Mahout上的一些算法支持用mapreduce的编程模型实现,所以就可以运行在Hadoop平台上; 这样说你就可以明白了吧,二者不是一个层级上的东西,所发挥的作用也是不一样的,而且你运行的实例的确也没有用到Hadoop。 ...
  • 请参阅上面的Lorand的评论。 远程调试仅适用于独立模式。 See Lorand's comment above. Remote debugging will only work in standalone mode.
  • 要知道您是以独立还是伪分布模式运行hadoop,请验证您的配置文件。 以下信息可能有帮助。 To know if you are running hadoop in Standalone or Pseudo distributed mode, verify your configuration files. Below information might help.