hadoop单机与集群搭建

云计算、大数据、互联网的技术交流Q群54224889

一、软件:

stable版本的hadoop包,ssh, rsyn, java
帮助文档:在http://hadoop.apache.org下 -> 左边document->stable下

二、注意问题:

(1) ssh做到不用密码登陆。

(2) hadoop namenode与datanode的关系,也就是master与slave的关系。

(3) hadoop模式:单机/伪分布式,真分布式。

(4)  配置:

  core-site.xml主要是namenode(master)的位置;

  hdfs-site.xml主要是namenode与datanode的存取位置,数据在哪,hdfs的配置;

  mapred-site.xml主要是job.tracker的设置,mapreduce的配置。

(5) 安装/启动hadoop的用户,理论上是不要使用root。但我使用了,还是成功了。还是专业点新建用户hadoop吧。
  $ useradd hadoop
 设置密码
  $ passwd hadoop

(6) hadoop安装的位置,别人都说要建在home下。但我个人觉得什么地方都行,只要每个机器的位置一样就行。

(7)JAVA_HOME的设置,在hadoopXXX/conf/hadoop-env.sh中设置。

(8)看java进程有没有在运行
 $ ps -e|grep java
 关闭进程:
 $ kill -9 pid

三. hadoop是什么?

  hadoop包括 分布式文件系统hdfs 和 分布式并行算法mapreduce 二部分。


四. 单机/伪分布式

在官网这说得很清楚 http://hadoop.apache.org/docs/stable/single_node_setup.html

1. 单机

单机就是很简单,下载解压后,设置好JAVA_HOME和localhost就行了。

a. 解压:去到下载文件的文件夹,或把压缩的文件移动到指定文件夹,解压  $ tar xvf hadoop-1.0.4-bin.tar

b. 修改JAVA_HOME: 修改hadoop-env.sh , 修改这一行 export  JAVA_HOME=/usr/java/jdk1.6.0_26

c. 修改localhost: ,$ vi /etc/hosts

加上 127.0.0.1 localhost


d. 运行

$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'       
$ cat output/*

有东西就成功。

 

2. 伪分布式

1.安装

Ubuntu Linux:

$ sudo apt-get install ssh
$ sudo apt-get install rsync

检查是否要密码:
$ ssh localhost
设置不要密码:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
再检查一下是否要密码。


2. hadoop的配置
Configuration

Use the following:       

conf/core-site.xml:
<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property>
</configuration>


 conf/hdfs-site.xml:
<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>


 conf/mapred-site.xml:
<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

3. 运行
要先格式化
$ bin/hadoop namenode -format
启动
$ bin/start-all.sh

网页查看:
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/

添加文件到系统
bin/hadoop fs -put conf input
下载文件
$ bin/hadoop fs -get output output
$ cat output/*
查看文件
bin/hadoop fs -cat output/*

关闭
bin/stop-all.sh


五、真分布式
安装目录:opt/hbase/hadoop-1.0.4
linux用户:hadoop

集群结构:1个namenode, 2个datanode
master(192.168.137.128): 作为namenode和datanode
slave1(192.168.137.129): 作为datanode

1.配置hosts
master和slave1都要设置。
192.168.137.128 master
192.168.137.129 slave1

2.设置ssh
检查是否要密码:
$ ssh master
$ ssh slave1
设置不要密码:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
再检查一下是否要密码。
要同步到slave1
scp -r conf slave1:/home/hadoop/.ssh/authorized_keys

3.配置hadoop

hadoop-env.sh文件:
export  JAVA_HOME=/usr/java/jdk1.6.0_26


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://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hbase/hdfs/tmp</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>/opt/hbase/hdfs/name</value>
  </property>
  <property>
    <name>dfs.data.dir</name>
    <value>/opt/hbase/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>master:9001</value>
  </property>
  <property>
    <name>mapred.local.dir</name>
    <value>/op/hbase/hdfs/mapred/local</value>
  </property>
</configuration>

masters文件:
master

slaves文件:
master
slave1

同步到slave1:
$ cd hadoop*
$ scp -r conf slave1:/opt/hbase/hadoop-1.0.4/

4.运行
要先格式化
$ bin/hadoop namenode -format
成功时,在master的dfs.name.dir下有name文件
启动
$ bin/start-all.sh
成功后,在master和slave1的dfs.data.dir文件夹下有data。
查看
http://master:50070
http://master:50030


5、另外:
可以设置多个备份。
hdfs-site.xml文件:
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.name.dir</name>
    <value>/opt/hbase/hdfs/name1,/opt/hbase/hdfs/name2</value>
  </property>
  <property>
    <name>dfs.data.dir</name>
    <value>/opt/hbase/hdfs/data1,/opt/hbase/hdfs/data12</value>
  </property>
</configuration>


六、文献
【1】http://hadoop.apache.org/docs/stable/single_node_setup.html
【2】google: Hadoop集群配置(最全面总结)
【3】google: Hadoop:配置-linux-虚拟机Fedora-1master+2slaves - ForA - 博客园

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值