• Hadoop1.1.2伪分布式安装


    一、安装前准备

    本次安装所使用软件:
    虚拟机: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/{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:WindowsSystem32driversetchosts文件,增加如下内容。这样在访问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伪分布式安装成功!





  • 相关阅读:
    Jvm性能监控和常用工具
    JVM内存分配和回收策略
    从ExtensionLoader理解Dubbo扩展机制
    类的加载和双亲委派模型
    截器和过滤器的区别
    Struts2的工作原理
    Action
    StrutsPrepareAndExecuteFilter
    单例模式
    Web工作原理
  • 原文地址:https://www.cnblogs.com/meet/p/5467222.html
Copyright © 2020-2023  润新知