浅墨散人 浅墨散人
  • 基础
  • 设计模式
  • JVM
  • Maven
  • SpringBoot
  • 基础
  • Flask
  • Diango
  • Pandas
  • SqlAlchemy
  • Sqoop
  • Flume
  • Flink
  • Hadoop
  • Hbase
  • Hive
  • Kafka
  • Kylin
  • Zookeeper
  • Tez
  • MySQL
  • Doris
  • Chrome
  • Eclipse
  • IDEA
  • iTerm2
  • Markdown
  • SublimeText
  • VirtualBox
  • WebStrom
  • Linux
  • Mac
  • Hexo
  • Git
  • Vue
  • VuePress
  • 区块链
  • 金融
数据仓库
数据治理
读书笔记
关于我
GitHub (opens new window)
  • 基础
  • 设计模式
  • JVM
  • Maven
  • SpringBoot
  • 基础
  • Flask
  • Diango
  • Pandas
  • SqlAlchemy
  • Sqoop
  • Flume
  • Flink
  • Hadoop
  • Hbase
  • Hive
  • Kafka
  • Kylin
  • Zookeeper
  • Tez
  • MySQL
  • Doris
  • Chrome
  • Eclipse
  • IDEA
  • iTerm2
  • Markdown
  • SublimeText
  • VirtualBox
  • WebStrom
  • Linux
  • Mac
  • Hexo
  • Git
  • Vue
  • VuePress
  • 区块链
  • 金融
数据仓库
数据治理
读书笔记
关于我
GitHub (opens new window)
  • Hadoop

    • Hadoop
    • Hadoop介绍
    • Hadoop的hdfs
    • Hadoop本地安装
    • Hadoop1.1.2伪分布式安装笔记
      • 安装前准备
        • 设置Linux的静态IP
        • 修改VirtualBox的虚拟网卡地址
        • 修改主机名
        • 把hostname和ip绑定
        • 关闭防火墙
        • SSH免密码登陆
        • 生成秘钥文件
        • 测试免密码登陆是否成功
      • 安装JDK
        • 授予执行权限
        • 解压缩
        • 配置环境变量
        • 测试安装
      • 安装Hadoop
        • 解压缩hadoop-1.1.2.tar.gz
        • 添加到环境变量中
        • 使设置立即生效
        • 修改hadoop的配置文件
        • 配置hadoop-env.sh
        • 配置core-site.xml
        • 配置hdfs-site.xml
        • 配置mapred-site.xml
        • 配置masters
        • 配置slaves
        • 格式化NameNode
      • 测试Hadoop安装是否成功
        • 启动Hadoop
        • 消除start-all.sh时候的警告信息
        • 查看Hadoop的进程
        • 登陆WEB管理页面
  • BigData
  • Hadoop
2018-03-30
目录

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组件依赖关系 Jietu20180330-164404.jpg Linux系统的安装就不介绍了,下面默认为已经安装好Linux系统了。

# 设置Linux的静态IP

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

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

然后执行网络重启命令:

service network restart
1

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

[root@hadoop-master software]## ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:22:13:54  
          inet addr:192.168.1.150  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe22:1354/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3078 errors:0 dropped:0 overruns:0 frame:0
          TX packets:423 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:230636 (225.2 KiB)  TX bytes:56128 (54.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:76 errors:0 dropped:0 overruns:0 frame:0
          TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6266 (6.1 KiB)  TX bytes:6266 (6.1 KiB)
[root@hadoop-master software]##
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 修改VirtualBox的虚拟网卡地址

该步骤需保证虚拟机中的Linux能与客户机在同一网段并且ping通。 设置VirtualBox虚拟机的网络连接方式为Host-Only WX20180330-164504@2x.png

再修改VirtualBox虚拟出那块网卡的ip地址 WX20180330-164523@2x.png

修改为如下内容: WX20180330-164531@2x.png 最后需要验证宿主机和虚拟机是否能够互通

宿主机ping虚拟机: WX20180330-164543@2x.png

虚拟机ping宿主机:

[root@hadoop-master software]## ping -c3 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.366 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=0.357 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=0.189 ms

--- 192.168.1.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.189/0.304/0.366/0.081 ms
[root@hadoop-master software]## 
1
2
3
4
5
6
7
8
9
10

# 修改主机名

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

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

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

# 把hostname和ip绑定

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

192.168.1.150   hadoop-master
1

# 关闭防火墙

service iptables stop

  1. 查看防火墙状态:service iptables status
  2. 关闭防火墙:service iptables stop
  3. 关闭防火墙的自运行:
    • 3.1 查看自运行状态:chkconfig --list | grep 'iptables'
[root@hadoop-master sysconfig]## chkconfig --list |  grep 'iptables'
iptables        0:关闭  1:关闭  2:启用  3:启用  4:启用   5:启用  6:关闭
1
2
  • 3.2 关闭防火墙:chkconfig iptables off
[root@hadoop-master sysconfig]## chkconfig iptables off
1
  • 3.3 再次查看自运行状态:chkconfig --list | grep 'iptables'
[root@hadoop-master sysconfig]## chkconfig --list | grep 'iptables'
iptables        0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
1
2

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

# SSH免密码登陆

安装前准备

# 生成秘钥文件

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

注意:

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

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

  3. authorized_keys文件的权限为644

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

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

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

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

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

# 测试免密码登陆是否成功

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

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

# 安装JDK

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

# 授予执行权限

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

# 解压缩

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

# 配置环境变量

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

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

然后使设置立即生效:

source /etc/profile
1

# 测试安装

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

# 安装Hadoop

Hadoop伪分布式的安装也很简单 解压缩,配置环境变量。修改配置文件即可

# 解压缩hadoop-1.1.2.tar.gz

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

解压完成后,可以看下Hadoop1.x的目录结构 WX20180330-164556@2x.png

# 添加到环境变量中

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

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

# 使设置立即生效

source /etc/profile
1

# 修改hadoop的配置文件

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

  1. Hadoop脚本配置文件:hadoop-env.sh
  2. 核心配置文件:core-site.xml
  3. HDFS的配置文件:hdfs-site.xml
  4. MapReduces的配置文件:mapred-site.xml
  5. 管理节点配置文件:masters
  6. 工作节点配置文件:slaves

# 配置hadoop-env.sh

打开${HADOOP_HOME}/conf/hadoop-env.sh 修改JAVA_HOME变量为自己安装的JDK的位置

export JAVA_HOME=/opt/modules/jdk1.6.0_24
1

# 配置core-site.xml

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

为什么要设置HDFS的工作目录呢? 因为不设置的话,Hadoop的HDFS默认的工作目录是在Linux系统的/tmp目录下, WX20180330-164605@2x.png 这个目录在Linux重启后内容会被清空。所以你还需要重新再格式化。所以,这里我们指定HDFS的工作目录为我们自定义的目录。

<?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://hadoop-master:9000</value>
        <description>hadoop-master</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/data/tmp</value>
    </property>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 配置hdfs-site.xml

${HADOOP_HOME}/conf/hdfs-site.xml中主要配置: 文件块的副本数(dfs.replication):由于是伪分布式,主节点和从节点都在同一台机器上,所以副本数为1 是否进行权限检查(dfs.permissions):false

<?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.permissions</name>
        <value>false</value>
    </property>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13

# 配置mapred-site.xml

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

<?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>hadoop-master:9001</value>
    </property>
</configuration>
1
2
3
4
5
6
7
8
9

# 配置masters

指定SecondaryNameNode的位置(主机名)。 打开${HADOOP_HOME}/conf/masters文件,增加如下内容:

hadoop-master
1

# 配置slaves

指定DataNode和TaskTracker的位置(主机名)。 打开${HADOOP_HOME}/conf/slaves文件,增加如下内容:

hadoop-master
1

# 格式化NameNode

配置完成后需要格式化NameNode,第一次使用时需要格式化,之后再次使用时就不再需要。 在${HADOOP_HOME}/bin/目录下执行

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

# 测试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

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

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

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

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

  1. 以log结尾的日志 通过log4j采用每日滚动的方式来记录日志,主要记录了启动和停止的日志信息。
  2. 以out结尾的日志 记录标准输出和标准错误的日志,内容比较少。

日志文件名格式: hadoop-root-datanode-hadoop-master.log hadoop-用户名-守护进程名称-运行守护进程的节点名称.log

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

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

Warning: $HADOOP_HOME is deprecated
1

出现该警告的原因为:${HADOOP_HOME}/bin/hadoop-config.sh文件中的如下代码 WX20180330-164618@2x.png 主要是:$HADOOP_HOME_WARN_SUPPERSS变量内容为空的原因, 解决办法是设置其不为空即可! 修改vi /etc/profile文件,增加如下代码

export  HADOOP_HOME_WARN_SUPPRESS=1
1

然后使设置生效

source /etc/profile
1

# 查看Hadoop的进程

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

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

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

# 登陆WEB管理页面

在Windwos系统的hosts文件中配置ip地址和hostname的映射 打开C:\Windows\System32\drivers\etc\hosts文件,增加如下内容。这样在访问192.168.1.150时,可以直接输入hadoop-master来访问了。

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

http://hadoop-master:50070 WX20180330-164639@2x.png

# MapReduce的管理页面

http://hadoop-master:50030 WX20180330-164657@2x.png

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

#Hadoop
最后更新时间: 2022/7/23 10:17:11
Hadoop本地安装

← Hadoop本地安装

最近更新
01
分区分桶
08-21
02
数据模型(重要)
08-21
03
安装和编译
08-21
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式