1)JDK软件

下载地址:http://www.oracle.com/technetwork/java/javase/index.html

2)Hadoop软件

下载地址:http://hadoop.apache.org/common/releases.html

环境如下:

ubuntu-12.04.2-server-amd64

hadoop-1.0.4

VirtualBox

1、在VBox中安装Ubuntu Server,用户名和密码都是hadoop,安装完成后,克隆两份,这样就有三台机器,一台master,两台slave。克隆后的slave打开不能上网,原因是克隆的时候,“重新初始化所有网卡的MAC地址”,而Ubuntu系统中网卡缓存中的MAC地址也新的MAC地址不一致,解决方法是在克隆后的机器中删除一个文件,使用如下命令:

sudo rm /etc/udev/rules.d/70-persistent-net.rules

然后重启,机器就能连网了。

2、安装jdk,使用如下命令:

sudo apt-get install openjdk-6-jdk

master和slave都要安装。

3、修改机器名称,编辑/etc/hostname,把master机器修改成master.Hadoop,slave机器修改成slave1.Hadoop和slave2.Hadoop。

4、修改机器网络配置,编辑/etc/network/interfaces。master的网络配置如下:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). # The loopback network interface
auto lo
iface lo inet loopback # The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.40
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8

slave1和slave2的配置只需要修改IP地址,分别是192.168.0.41和192.168.0.42。

5、配置master和slave的hosts文件,编辑/etc/hosts,在文件中追加如下内容:

192.168.0.40    master.Hadoop
192.168.0.41 slave1.Hadoop
192.168.0.42 slave2.Hadoop

三台机器的hosts配置相同。

6、配置master无密码登录所有slave

在master上执行:

ssh-keygen -t rsa -P ''

这个命令用于生成无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对为id_rsa和id_rsa.pub,默认存储在/home/hadoop/.ssh目录下。接着在master上做如下配置,把id_rsa.pub追加到授权的key里:

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

修改权限:authorized_keys的权限和.ssh目录的权限,使用如下命令:

chmod 600 .ssh/authorized_keys
chmod 700 .ssh

在slave机器上创建.ssh目录,使用如下命令:

mkdir .ssh

把authorized_keys复制到slave1机器的/home/hadoop/.ssh中,使用如下命令:

 scp .ssh/authorized_keys slave1.Hadoop:/home/hadoop/.ssh/authorized_keys

修改权限,同master上的权限配置,在slave2上做同样的操作。

7、在master上安装hadoop

解压hadoop-1.0.4.tar.gz:

tar -zxvf hadoop-1.0.4.tar.gz

8、配置hadoop

编辑conf/hadoop-env.sh,修改JAVA_HOME的值:

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64/

编辑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>http://master.hadoop:9001</value>
</property> </configuration>

编辑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>/home/hadoop/name</value>
</property> <property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data</value>
</property> <property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

编辑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://master.Hadoop:9000</value>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-1.0.4/tmp</value>
</property>
</configuration>

编辑conf/masters,删除localhost,添加内容:

master.Hadoop

编辑conf/slaves,删除localhost,添加内容:

slave1.Hadoop
slave2.Hadoop

9、把master的hadoop-1.0.4拷贝到slave

在master上执行:

scp -r hadoop-1.0.4 slave1.Hadoop:/home/hadoop/
scp -r hadoop-1.0.4 slave2.Hadoop:/home/hadoop/

10、在master上格式化HDFS文件系统,使用如下命令:

hadoop-1.0.4/bin/hadoop namenode -format

11、启动所有结点

在master上执行:

hadoop-1.0.4/bin/start-all.sh

在master上执行jps命令,输出如下:

1974 JobTracker
2101 Jps
1602 NameNode
1893 SecondaryNameNode

说明master上hadoop正常启动。

在slave上执行jps命令,输出如下:

2007 Jps
1423 DataNode
1636 TaskTracker

说明slave上hadoop正常启动。

也可以在浏览器中打开192.168.0.40:50030或者192.168.0.40:50070查看master和slave是否正常启动。

12、关闭所有节点

在master上执行:

hadoop-1.0.4/bin/stop-all.sh

参考链接:

http://blog.chinaunix.net/uid-26867092-id-3213709.html

http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html

hadoop-搭建(转)--亲测好用 (一)的更多相关文章

  1. hadoop HA集群搭建(亲测)

    1.hadoop-env.sh 2.core-site.xml <configuration> <!-- 指定hdfs的nameservice为ns1 --> <prop ...

  2. Swagger Liunx环境搭建(亲测百分百可用)

    一.安装nodejs 下载编译好的nodejs安装包,下载地址: https://nodejs.org/dist/v10.10.0/ (作者下载的10.10.0,可根据自己需要下载不同版本) 将下载好 ...

  3. samba服务器红帽5.4搭建,亲测可用!!!

    samba服务器搭建 服务器的环境 红帽5.4 vm15 挂载光盘 mount mount -t iso9660 设备目录 /mnt 表示挂载 软件包安装 samba服务器只需安装两个软件包,先找到软 ...

  4. Cocos2d-X游戏开发之Windows7+VS2010环境搭建(亲测)

    Cocos2d—X游戏引擎,提供Mac系统下的Xcode开发和Windows系统的VS开发,应该是比较常用的2种. 使用Mac以后,就会发现使用Xcode开发实在是福分啊.VS开发步骤繁琐,调试效率低 ...

  5. 思科ACS5.8最新搭建教程-亲测可用

    1.需要准备的相关软件 ACS5.8安装包:http://ouo.io/MWB0R ACS5.8破解包:http://ouo.io/FaiGgj Centos7:下载地址(破解时需要):http:// ...

  6. centos7.2 mysql tar.gz 搭建 (亲测成功)

    1.安装依赖:yum -y install libaioyum search libaio 2.卸载系统自带的Mariadb数据库:rpm -qa | grep mariadbrpm -e --nod ...

  7. mysql 一主多从环境搭建(亲测)

    前期准备 三台服务器,服务器使用的是 centos7 mysql-5.7.24-linux-glibc2.12-x86_64 安装包 使用是版本是 mysql-5.7.24 数据库安装 将 mysql ...

  8. 本人亲测-SSM环境搭建(使用eclipse作为示例,过程挺全的,可作为参考)

    本人亲测-SSM环境搭建(使用eclipse作为示例,过程挺全的,可作为参考) 本人亲测-SSM环境搭建(使用eclipse作为示例,过程挺全的,可作为参考) 本人亲测-SSM环境搭建(使用eclip ...

  9. 搭建 docker + nginx + keepalived 实现Web应用的高可用(亲测)

    1. 环境准备     下载 VMware : https://www.vmware.com/go/getplayer-win        下载 Centos : https://mirrors.a ...

  10. 基于伪分布式Hadoop搭建Hive平台详细教程

    一.搭建环境的前提条件 环境:Linux系统 Hadoop-2.6.0 MySQL 5.6 apache-hive-2.3.7 这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包 ...

随机推荐

  1. Hive 配置显示表头和数据库信息

    在 conf/hive-site.xml 中添加如下配置 <property> <name>hive.cli.print.header</name> <val ...

  2. javascript入门笔记5-事件

    1.继续循环continue; continue的作用是仅仅跳过本次循环,而整个循环体继续执行. 语句结构: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) { continue ...

  3. 在xampp修改密码

    1.选择 服务器--账号--修改密码 2.在密码 一栏输入新密码 3.刷新页面会得到如下页面 此时,该页面提醒我们检查配置文件中的主机.用户名和密码 4.打开配置文件 路径为 xampp -> ...

  4. 交换机基础配置之stp生成树实验

    实验的要求是以上面的拓扑图为例,查看当前根桥的所在并把三成交换机switch1指定为根桥 我们可以用show spanning-tree来查看stp的信息 输入后会显示两部分 上面一部分为当前交换机自 ...

  5. layer 点击弹出图片

    今天做东西有一个功能:在列表点击图片弹出并放大显示,使用到了layer的页面层,下边是个小demo success:function (e) { var url = e.qrcode_url; //a ...

  6. 【php】关于trim,rtrim,ltrim,substr 的字符串切割导致 json,_encode无法 识别数据的问题

    示例 <?php $a = rtrim('南宁 .',' .'); echo $a; //输出 南�� echo json_encode($a); //输出空白 $b = ['name'=> ...

  7. 一行代码将两个列表拼接出第三个列表(两个可迭代对象相加产生第三个可迭代对象)--map()方法

    map()方法 map(func, *iterables) --> map object lambda方法: lambda  参数 :返回值 a = map(',7]) print(list(a ...

  8. 笔记-python-多线程-深入-1

    笔记-python-多线程-深入-1 1.      线程池 1.1.    线程池:控制同时存在的线程数量 threading没有线程池,只能自己控制线程数量. 基本有两种方式: 每间隔一段时间创建 ...

  9. 15.5,centos下redis安全相关

      博文背景: 由于发现众多同学,在使用云服务器时,安装的redis3.0+版本都关闭了protected-mode,因而都遭遇了挖矿病毒的攻击,使得服务器99%的占用率!! 因此我们在使用redis ...

  10. html+css调用服务器端字体

    在浏览网页时,由于客户端没有安装某些特殊字体,导致网页文字无法按设计正常显示,这时我们可以使用服务器字体来避免这种现象的发送 语法 @font-face { /* 自定义字体名称 */ font-fa ...