Hadoop 单机以及伪分布式和完全分布式的环境搭建详细步骤
一、首先确保网络,确保虚拟机能 ping 通本机电脑。
以下为 IP 配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加以下内容:(有则修改)
IPADDR=192.168.1.163
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
注意:1、配置完成后使用命令 service network restart(让 ip 配置生效)
2、使用命令 service iptables stop 关闭防火墙
二、配置 yum(每台机器单独配置)
由于有些系统安装时未安装 SSH,导致不能无密登陆对方主机,需做一下操作。以下为
安装过程。
(注意下面这个操作是 red hat 版本的 linux,Centos 的方法有点不一样)
vi /etc/yum.repos.d/rhel-source.repo
[Base]
name=base
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
注意:在打开文件的时候 gpgkey 字段已经存在,千万不要修改。且 Centos 与红帽系统
的 linux 的 repo 配置有所不同。
使用命令 mount /dev/cdrom /mnt(挂在光盘)
mount: block device /dev/xvdd is write-protected, mounting read-only(以上命令系统显示
内容)
安装 openssh
[root@instsvr1 Packages]# rpm -ivh ftp*
yum install openssh* 安装 openssh 的所有文件(为了能够无秘登陆)
如果没有 iso 安装光盘,需单独下载 ftp*及 openssh*文件。且文件的结尾是 rpm 文件。
三.搭建环境准备完毕,Hadoop(HA)集群的搭建
3.1 集群内配置域名解析,配置好后能达到 ping mast2 或 ping mast3 能到达对方主机,
配置详细
vi /etc/hosts
192.168.1.246
master
且需修改本主机名:(每个主机名要根据对应的 IP 地址修改 HOSTNAME)
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
3.2 配置 ntp 时间同步(确保所有主机时间一致,每台都用相同的配置)
安装 yum install ntp* -y ntp 服务(纯净的 Linux 使没有安装这些服务的)
[root@mast1 ~]# vi /etc/ntp.conf (同时把 server 0 到 server 4 都注释掉)
server 192.168.1.246
让修改时间生效:
[root@mast1 ~]# /etc/init.d/ntpd restart (也可以这样 service ntpd restart)
[ OK ]
Starting ntpd:
让同步时间开机启动:
[root@mast1 ~]# chkconfig ntpd on
查看 ntpd 的 list
[root@mast1 ~]# chkconfig --list ntpd
ntpd
0:off 1:off 2:on 3:on 4:on 5:on 6:off
3.3 配置 SSH 免密码登录
生成秘钥:(直接四步回车,中间有些要输入 yes)
[root@mast1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_rsa):
Created directory '/home/grid/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/grid/.ssh/id_rsa.
Your public key has been saved in /home/grid/.ssh/id_rsa.pub.
The key fingerprint is:
d1:9d:45:e6:7c:a8:b0:8f:4d:f0:70:a5:14:b5:d6:e5 grid@dehadp01
The key's randomart image is:
+--[ RSA 2048]----+
|
|
|
|
|
|
|
|
|
o+* .|
. o O =.|
. = = * E|
. B o . |
S . +
|
=
. o
|
|
|
|
+-----------------+
配置秘钥完成后,把公钥发送到所有的对方主机。
[root@mast1 ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub master
完成后用:ssh+主机名验证是否可以直接登录,不提示输入密码(例如 ssd master)。
3.4 安装 jdk
安装 jdk,配置环境变量,版本不要太低,最好用 JDK.1.7.0 以后的产品。
[root@mast1 ~]# tar zxvf jdk.1.7.tar.gz -C /usr/
配置环境变量:(以下包含了 JDK、hadoop、sqoop、flume 的 home 路径)
[root@mast1 ~]$ vi .bash_profile
export JAVA_HOME=/usr/jdk1.7.0_25
export PATH=$PATH:$JAVA_HOME/bin:
1.伪分布式基本运行环境与单机环境一致
2.Hadoop 伪分布式需要修改配置文件 core-site.xml 和 hdfs-site.xml 等。
(1)cd Hadoop 安装路径/etc/hadoop 然后 ls
(注意要配置 hadoop 的环境变量,和配置 java 的一样:
Export HADOOP_HOME=/usr/hadoop2.6.0
在 PATH 后面追加上:$HADOOP_HOME/bin:$HADOOP/sbin
)
(2)需要编辑的文件有 hadoop-env.sh core-site.xml
hdfs-site.xml (mapred-site.xml.template)词典
yarn-site.xml
slaves
(3) vi hadoop-env.sh 把 java 环境写成绝对路径,以免没有配置 JAVA_HOME 的时候,找
不到 jdk
(4)配置 core-site.xml 配置 Common 组件的属性
hadoop.tmp.dir
file:///usr/hadoop/hadoop-2.6.0/tmp
fs.defaultFS
hdfs://master:9000
fs.checkpoint.period
3600
(5)配置 hdfs-site.xml
dfs.replication
1
dfs.namenode.name.dir
file:/usr/hadoop/hadoop-2.6.0/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/hadoop/hadoop-2.6.0/tmp/dfs/data
(6)配置文件 mapred-site.xml(需要先将原本的文件 mapred-site.xml.template cp
mapred-site.xml,然后更改 mapred-site.xml 即可 )
mapreduce.framework.name
yarn
(7)接着修改配置文件 yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
master
yarn.log-aggregation-enable
true
3.配置完成后
(1)执行 Namenode 的格式化操作
bin/hdfs namenode -format
(2)开启 NameNode 和 DataNode 守护进程
sbin/start-dfs.sh
(3)开启 yarn 运算框架 sbin/start-yarn.sh
出现 jps SecondaryNamenode DataNode Namenode ResourceManager NodeManager 说明
启动 yarn 运算框架成功
(4)成功启动后,可以访问 Web 界面 http://master:50070 查看 NameNode 和 Datanode
信息,还可以在线查看 HDFS 中的文件。
(5)启动 YARN 可以通过 Web 界面查看任务的运行情况:http://master:8088/查看