一、安装前准备

本次安装所使用软件:

虚拟机:VirtualBox-4.3.8-92456-Win.exe

JDK:jdk-6u24-linux-i586.bin

Hadoop:hadoop-1.1.2.tar.gz

Linux版本:CentOS-5.5-i386-bin-DVD.iso

Hadoop组件依赖关系



Linux系统的安装就不介绍了,下面默认为已经安装好Linux系统了。

设置Linux的静态IP

编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改为如下内容:

  1. DEVICE=eth0
  2. BOOTPROTO="static"
  3. HWADDR=08:00:27:22:13:54
  4. IPV6INIT="no"
  5. ONBOOT=yes
  6. DNS=192.168.1.1
  7. IPADDR=192.168.1.150
  8. NETMASK=255.255.255.0
  9. GATEWAY=192.168.1.1

然后执行网络重启命令:

  1. service network restart

最后执行ifconfig命令查看是否修改成功

  1. [root@hadoop-master software]# ifconfig
  2. eth0 Link encap:Ethernet HWaddr 08:00:27:22:13:54
  3. inet addr:192.168.1.150 Bcast:192.168.1.255 Mask:255.255.255.0
  4. inet6 addr: fe80::a00:27ff:fe22:1354/64 Scope:Link
  5. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  6. RX packets:3078 errors:0 dropped:0 overruns:0 frame:0
  7. TX packets:423 errors:0 dropped:0 overruns:0 carrier:0
  8. collisions:0 txqueuelen:1000
  9. RX bytes:230636 (225.2 KiB) TX bytes:56128 (54.8 KiB)
  10. lo Link encap:Local Loopback
  11. inet addr:127.0.0.1 Mask:255.0.0.0
  12. inet6 addr: ::1/128 Scope:Host
  13. UP LOOPBACK RUNNING MTU:16436 Metric:1
  14. RX packets:76 errors:0 dropped:0 overruns:0 frame:0
  15. TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
  16. collisions:0 txqueuelen:0
  17. RX bytes:6266 (6.1 KiB) TX bytes:6266 (6.1 KiB)
  18. [root@hadoop-master software]#

修改VirtualBox的虚拟网卡地址

该步骤需保证虚拟机中的Linux能与客户机在同一网段并且ping通。

设置VirtualBox虚拟机的网络连接方式为Host-Only



再修改VirtualBox虚拟出那块网卡的ip地址



修改为如下内容:



最后需要验证宿主机和虚拟机是否能够互通

宿主机ping虚拟机:



虚拟机ping宿主机:

  1. [root@hadoop-master software]# ping -c3 192.168.1.100
  2. PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
  3. 64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.366 ms
  4. 64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.357 ms
  5. 64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.189 ms
  6. --- 192.168.1.100 ping statistics ---
  7. 3 packets transmitted, 3 received, 0% packet loss, time 2000ms
  8. rtt min/avg/max/mdev = 0.189/0.304/0.366/0.081 ms
  9. [root@hadoop-master software]#

修改主机名

修改当前会话主机名(当前会话生效):hostname 主机名

修改配置文件主机名(永久生效):vi /etc/sysconfig/network

  1. [root@hadoop-master software]# cat /etc/sysconfig/network
  2. NETWORKING=yes
  3. NETWORKING_IPV6=no
  4. HOSTNAME=hadoop-master
  5. [root@hadoop-master software]# hostname
  6. hadoop-master

把hostname和ip绑定

修改hosts文件:vi /etc/hosts文件,增加一行

  1. 192.168.1.150 hadoop-master

关闭防火墙:service iptables stop

  1. 查看防火墙状态:service iptables status
  2. 关闭防火墙:service iptables stop
  3. 关闭防火墙的自运行:

    1. 查看自运行状态:chkconfig –list | grep ‘iptables’

      1. [root@hadoop-master sysconfig]# chkconfig --list | grep 'iptables'
      2. iptables 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
    2. 关闭防火墙:chkconfig iptables off

      1. [root@hadoop-master sysconfig]# chkconfig iptables off
    3. 再次查看自运行状态:chkconfig –list | grep ‘iptables’

      1. [root@hadoop-master sysconfig]# chkconfig --list | grep 'iptables'
      2. iptables 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭

这样下次开机的时候就会不开启防火墙了

二、SSH免密码登陆

生成秘钥文件

进入~/.ssh文件夹,使用ssh-keygen -t rsa命令

注意:

1.如果没有.ssh文件夹,就使用ssh协议登录一次试试

2.如果还是没有.ssh文件夹,就自己创建一个。修改文件夹权限为700

3.authorized_keys文件的权限为644

  1. [root@hadoop-master software]# cd ~/.ssh/
  2. [root@hadoop-master .ssh]# ssh-keygen -t rsa

查看.ssh文件夹中已经多出了两个文件id_rsa和 id_rsa.pub

  1. [root@hadoop-master .ssh]# ls
  2. id_rsa id_rsa.pub
  3. [root@hadoop-master .ssh]#

将id_rsa.pub公钥文件内容放入到authorized_keys中,变成私钥

  1. [root@hadoop-master .ssh]# cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

测试免密码登陆是否成功

使用:ssh localhost命令连接本机,第一次连接时会让输入yes。以后就不用输入了。

  1. [root@hadoop-master .ssh]# ssh localhost
  2. The authenticity of host 'localhost (127.0.0.1)' can't be established.
  3. RSA key fingerprint is 8c:f4:bf:b5:c4:95:30:7b:1c:d7:cc:f8:69:15:e1:ab.
  4. Are you sure you want to continue connecting (yes/no)? yes
  5. Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
  6. Last login: Sun Apr 5 17:45:25 2015

三、安装JDK

JDK的安装很简单,解压缩。然后配置环境变量即可。

安装步骤如下:

1. 授予执行权限

  1. [root@hadoop-master software]# chmod u+x jdk-6u24-linux-i586.bin

2. 解压缩

  1. [root@hadoop-master software]# ./jdk-6u24-linux-i586.bin

3. 配置环境变量

编辑/etc/profile文件,增加如下代码

  1. # JAVA_HOME
  2. export JAVA_HOME=/opt/modules/jdk1.6.0_24
  3. export PATH=$JAVA_HOME/bin:$PATH
  4. export CLASS_PATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后使设置立即生效:

  1. source /etc/profile

4. 测试安装

  1. [root@hadoop-master software]# java -version
  2. java version "1.6.0_24"
  3. Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
  4. Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
  5. [root@hadoop-master software]#

四、安装Hadoop

Hadoop伪分布式的安装也很简单

解压缩,配置环境变量。修改配置文件即可

1、解压缩hadoop-1.1.2.tar.gz

  1. [root@hadoop-master software]# tar -zxvf hadoop-1.1.2.tar.gz

解压完成后,可以看下Hadoop1.x的目录结构

2、添加到环境变量中

编辑/etc/profile文件,在文件最后增加如下内容

  1. # HADOOP_HOME
  2. export HADOOP_HOME=/opt/modules/hadoop-1.1.2
  3. export PATH=$PATH:$HADOOP_HOME/bin

3、使设置立即生效

  1. source /etc/profile

4、修改hadoop的配置文件

伪分布式的安装需要修改Hadoop的6个配置文件(${HADOOP_HOME}/conf),如下:

Hadoop脚本配置文件:hadoop-env.sh

核心配置文件:core-site.xml

HDFS的配置文件:hdfs-site.xml

MapReduces的配置文件:mapred-site.xml

管理节点配置文件:masters

工作节点配置文件:slaves

配置hadoop-env.sh

打开${HADOOP_HOME}/conf/hadoop-env.sh

修改JAVA_HOME变量为自己安装的JDK的位置

  1. export JAVA_HOME=/opt/modules/jdk1.6.0_24
配置core-site.xml

${HADOOP_HOME}/conf/core-site.xml中需要配置HDFS的默认主机名、端口和hadoop在本地的文件系统目录(目录需要存在

为什么要设置HDFS的工作目录呢?

因为不设置的话,Hadoop的HDFS默认的工作目录是在Linux系统的/tmp目录下,



这个目录在Linux重启后内容会被清空。所以你还需要重新再格式化。所以,这里我们指定HDFS的工作目录为我们自定义的目录。

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>fs.default.name</name>
  7. <value>hdfs://hadoop-master:9000</value>
  8. <description>hadoop-master</description>
  9. </property>
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>/opt/data/tmp</value>
  13. </property>
  14. </configuration>
配置hdfs-site.xml

${HADOOP_HOME}/conf/hdfs-site.xml中主要配置:

文件块的副本数(dfs.replication):由于是伪分布式,主节点和从节点都在同一台机器上,所以副本数为1

是否进行权限检查(dfs.permissions):false

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>dfs.replication</name>
  7. <value>1</value>
  8. </property>
  9. <property>
  10. <name>dfs.permissions</name>
  11. <value>false</value>
  12. </property>
  13. </configuration>
配置mapred-site.xml

${HADOOP_HOME}/conf/mapred-site.xml中主要配置MapReduce的jobTracker的主机和端口

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>mapred.job.tracker</name>
  7. <value>hadoop-master:9001</value>
  8. </property>
  9. </configuration>
配置masters

指定SecondaryNameNode的位置(主机名)。

打开${HADOOP_HOME}/conf/masters文件,增加如下内容:

  1. hadoop-master
配置slaves

指定DataNode和TaskTracker的位置(主机名)。

打开${HADOOP_HOME}/conf/slaves文件,增加如下内容:

  1. hadoop-master

5、格式化NameNode

配置完成后需要格式化NameNode,第一次使用时需要格式化,之后再次使用时就不再需要。

在${HADOOP_HOME}/bin/目录下执行

  1. [root@hadoop-master bin]# hadoop namenode -format

五、测试Hadoop安装是否成功

启动Hadoop

Hadoop的执行命令都在${HADOOP_HOME}/bin目录下,启动和停止的2种方式

  1. 全部启动或停止:

    启动:start-all.sh

    启动顺序为

    NameNode–>DataNode–>SecondaryNameNode–>JobTracker–>TaskTracker

    停止:stop-all.sh

    停止顺序为

    JobTracker–>TaskTracker–>NameNode–>DataNode–>SecondaryNameNode

  2. 单个启动:

    启动:start-dfs.sh start-mapred.sh

    停止:stop-dfs.sh stop-mapred.sh

这里我们直接全部启动:start-all.sh

  1. [root@hadoop-master bin]# start-all.sh
  2. starting namenode, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-namenode-hadoop-master.out
  3. hadoop-master: starting datanode, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-datanode-hadoop-master.out
  4. hadoop-master: starting secondarynamenode, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-secondarynamenode-hadoop-master.out
  5. starting jobtracker, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-jobtracker-hadoop-master.out
  6. hadoop-master: starting tasktracker, logging to /opt/modules/hadoop-1.1.2/libexec/../logs/hadoop-root-tasktracker-hadoop-master.out
  7. [root@hadoop-master bin]#

可以从控制台看到,启动后的日志信息都存在在了HADOOPHOME/logs/目录下,如果启动报错可以去查看相应的日志信息。当然这个日志目录可以自定义。默认是在HADOOPHOME/logs/目录下,如果启动报错可以去查看相应的日志信息。当然这个日志目录可以自定义。默认是在{HADOOP_HOME}/logs/目录下。打开${HADOOP_HOME}/conf/hadoop-env.sh文件,里面有如下一行配置:

  1. # Where log files are stored. $HADOOP_HOME/logs by default.
  2. # export HADOOP_LOG_DIR=${HADOOP_HOME}/logs

日志类型有2种,分别以log和out结尾。

  1. 以log结尾的日志

    通过log4j采用每日滚动的方式来记录日志,主要记录了启动和停止的日志信息。
  2. 以out结尾的日志

    记录标准输出和标准错误的日志,内容比较少。

日志文件名格式:

hadoop-root-datanode-hadoop-master.log

hadoop-用户名-守护进程名称-运行守护进程的节点名称.log

消除start-all.sh时候的警告信息

如果启动过程中出现如下警告信息

  1. Warning: $HADOOP_HOME is deprecated

出现该警告的原因为:${HADOOP_HOME}/bin/hadoop-config.sh文件中的如下代码



主要是:$HADOOP_HOME_WARN_SUPPERSS变量内容为空的原因,

解决办法是设置其不为空即可!

修改vi /etc/profile文件,增加如下代码

  1. export HADOOP_HOME_WARN_SUPPRESS=1

然后使设置生效

  1. source /etc/profile

通过jps命令查看Hadoop的5个守护进程

ps表示查看Linux系统中的进程。jps表示查看系统中的Java进程

  1. [root@hadoop-master bin]# jps
  2. 6432 DataNode
  3. 6639 JobTracker
  4. 6915 Jps
  5. 6316 NameNode
  6. 6545 SecondaryNameNode
  7. 6791 TaskTracker
  8. [root@hadoop-master bin]#

登陆WEB管理页面

在Windwos系统的hosts文件中配置ip地址和hostname的映射

打开C:\Windows\System32\drivers\etc\hosts文件,增加如下内容。这样在访问192.168.1.150时,可以直接输入hadoop-master来访问了。

  1. ## Hadoop1.1.2
  2. 192.168.1.150 hadoop-master
HDFS的管理页面

http://hadoop-master:50070

MapReduce的管理页面

http://hadoop-master:50030

各监控页面显示正常的话,表示Hadoop伪分布式安装成功!

Hadoop1.1.2伪分布式安装的更多相关文章

  1. Hadoop1.2.1 伪分布式安装

    Hadoop1.2.1 单机模式安装 Hadoop组件依赖图(从下往上看) 安装步骤: 详细步骤: 设置ssh自动登录(如下图): 1.输入命令 [ssh-keygen -t rsa],然后一直按回车 ...

  2. Hadoop1.1.2伪分布式安装笔记

    一.设置Linux的静态IP 修改桌面图标修改,或者修改配置文件修改 1.先执行ifconfig,得到网络设备的名称eth0 2.编辑/etc/sysconfig/network-scripts/if ...

  3. Hadoop1.0.4伪分布式安装

    前言: 目前,学习hadoop的目的是想配合其它两个开源软件Hbase(一种NoSQL数据库)和Nutch(开源版的搜索引擎)来搭建一个知识问答系统,Nutch从指定网站爬取数据存储在Hbase数据库 ...

  4. redhat 安装hadoop1.2.1伪分布式

    完整安装过程参考:http://www.cnblogs.com/shishanyuan/p/4147580.html 一.环境准备    1.安装linux.jdk      2.下载hadoop2. ...

  5. hadoop伪分布式安装之Linux环境准备

    Hadoop伪分布式安装之Linux环境准备 一.软件版本 VMare Workstation Pro 14 CentOS 7 32/64位 二.实现Linux服务器联网功能 网络适配器双击选择VMn ...

  6. Hadoop开发第3期---Hadoop的伪分布式安装

    一.准备工作 1. 远程连接工具的安装 PieTTY 是在PuTTY 基础上开发的,改进了Putty 的用户界面,提供了多语种支持.Putty 作为远程连接linux 的工具,支持SSH 和telne ...

  7. 第二章 伪分布式安装hadoop hbase

    安装单机模式的hadoop无须配置,在这种方式下,hadoop被认为是一个单独的java进程,这种方式经常用来调试.所以我们讲下伪分布式安装hadoop. 我们继续上一章继续讲解,安装完先试试SSH装 ...

  8. HBase基础和伪分布式安装配置

    一.HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的. 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 ...

  9. Zookeeper 初体验之——伪分布式安装(转)

    原文地址: http://blog.csdn.net/salonzhou/article/details/47401069 简介 Apache Zookeeper 是由 Apache Hadoop 的 ...

随机推荐

  1. 洛谷P1858 多人背包 多人背包板子题/多人背包学习笔记

    ,,,本来自以为,我dp学得还挺好的 然后今天一考发现都不会啊QAQ 连最基础的知识点都不清楚啊QAQ 所以就来写个题解嘛! 先放下板子题 其实我jio得,这题只要大概了解方法就不是很难鸭,,,毕竟是 ...

  2. Keras-图片预处理

    图片预处理 图片生成器ImageDataGenerator keras.preprocessing.image.ImageDataGenerator(featurewise_center=False, ...

  3. mysql 数据操作 多表查询 子查询 介绍

    子查询就是: 把一条sql语句放在一个括号里,当做另外一条sql语句查询条件使用 拿到这个结果以后 当做下一个sql语句查询条件mysql 数据操作  子查询 #1:子查询是将一个查询语句嵌套在另一个 ...

  4. [WorldWind学习]20.修改ShapeFileLayer类及托管D3D文字绘制方法

    PluginSDK\ShapeFileLayer.cs Line:1027char[] fieldDataChars = dbfReader.ReadChars(fieldHeaders[j].Fie ...

  5. 朴素贝叶斯算法原理及Spark MLlib实例(Scala/Java/Python)

    朴素贝叶斯 算法介绍: 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,在没有其它可用信息下,我 ...

  6. Hadoop mapreduce自定义分区HashPartitioner

    本文发表于本人博客. 在上一篇文章我写了个简单的WordCount程序,也大致了解了下关于mapreduce运行原来,其中说到还可以自定义分区.排序.分组这些,那今天我就接上一次的代码继续完善实现自定 ...

  7. 团队 作业6--展示(alpha阶段)

    团队作业6--展示博客(alpha阶段) 一.团队信息 团队码云地址: https://gitee.com/kezhiqing/soft_team_blog 成员介绍: 个人博客地址 团队成员 个人博 ...

  8. EditPlus 4.3.2477 中文版已经发布(11月3日更新)

    新的版本修复了之前版本文本库和自动完成功能中的“^!”符号在填充项前面时不能正常工作的问题.

  9. 去掉每行最后n个字符

    awk '{sub(/.{n}$/,"")}1' nation.tbl > nation.tbl2 把n替换成具体长度

  10. Java的Servlet、Filter、Interceptor、Listener

    写在前面: 使用Spring-Boot时,嵌入式Servlet容器可以通过扫描注解(@ServletComponentScan)的方式注册Servlet.Filter和Servlet规范的所有监听器( ...