刚刚开始接触Hadoop,发现 上好多安装教程都是适用1.x版本的,但现在都hadoop版本都已经到3.0了,不太适用于一个初学者,查了些资料,看了一些相关视频,才对Hadoop有一个初步了解,简单的配置了Hadoop,我使用的是Hadoop2.7.3,现在将Hadoop的安装配置总结如下:
Hadoop的安装配置(伪分布模式)总共分为三个步骤:
1. 安装Linux(使用CentOS 6.5 64位)
2. 安装JDK(使用jdk-8u101-linux-x64.tar.gz)
3. 安装Hadoop并配置文件(hadoop-2.7.3.tar.gz)
开始之前,还可以使用一些软件,为了便于传输文件:
1. winSCP:用于从windows向linux中传输文件
2. Xshell
使用winSCP将hadoop-2.7.3.tar.gz和jdk-8u101-linux-x64.tar.gz到CentOS中/opt(目录随意)
安装Linux并配置相关项
-
安装虚拟机和CentOS就不再赘述,为了简单 络连接使用的桥接
-
修改主机名(为了便于区分和之后配置文件)
# vim /etc/sysconfig/network
NETWORKING=yes -
修改IP地址,两种方式:
- 第一种:
# setup(CentOS独有的)
etwork configuration –> Device configuration —>选择 卡,设置IP地址, 关等
#ifconfig eth0 up(启动eth0 卡)
是这样,重启后eth0不会自动启动,需要修改配置文件 - 第二种:
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:6e:fa:2d
TYPE=Ethernet
UUID=145ec129-2505-4e64-b97b-24a9bae43fec
ONBOOT=yes #默认自动启动
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.1.100 #IP地址
NETMASK=255.255.255.0 #掩码
GATEWAY=192.168.1.1 # 关
DNS1=202.106.0.20
IPV6INIT=no
USERCTL=no
退出后更新配置:#source /etc/sysconfig/network-scripts/ifcfg-eth0
- 第一种:
-
修改主机名和IP的映射关系
# vim /etc/hosts
192.168.1.100 master -
关闭防火墙
查看防火墙状态
# service iptables status
关闭防火墙
# service iptables stop
查看防火墙开机启动状态
# chkconfig iptables –list
关闭防火墙开机启动
# chkconfig iptables off
安装JDK
- 首先卸载自带的JDK(好像不卸载也没有问题)
#rpm -qa | grep java查看jdk版本
显示如下信息:
jtzdata-java-2013g-1.el6.noarch
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
卸载JDK:
# rpm -e –nodeps tzdata-java-2013g-1.el6.noarch
# rpm -e –nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
# rpm -e –nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 -
解压JDK
# tar -zxvf /opt/jdk-8u101-linux-x64.tar.gz
为了方便,重命名为jdk
# mv jdk-8u101-linux-x64.tar.gz jdk -
将java添加到环境变量中
# vim /etc/profile
在文件最后添加:
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin -
更新配置
#source /etc/profile
安装配置Hadoop
-
解压hadoop-2.7.3.tar.gz
# tar -zxvf hadoop-2.7.3.tar.gz
重命名
#mv hadoop-2.7.3.tar.gz hadoop -
配置环境
# vim /etc/proflie
export JAVA_HOME=/opt/jdk
export HADOOP_HOME=/ipt/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
更新配置
#source /etc/profile
这样,Hadoop的独立模式就配置完成了。 -
伪分布模式需要配置5个文件,都在HADOOP_HOME/etc/profile中
- xml文件配置的内容都在中添加
- xml文件的格式:
(1)hadoop-env.sh,hadoop环境文件,这里需要配置Java环境:
# vim hadoop-env.sh
he java implementation to use.
export JAVA_HOME=/opt/jdk
(2)core-site.xml,核心配置文件:(3) hdfs-site.xml
(4)mapred-site.xml
里面只有一个mapred-site.xml.template文件,执行
# cp mapred-site.xml.template mapred-sit.xml(5)yarn-site.xml
(6)slaves
i. slaves指定哪些机器上要启动datanodes
ii. 它的默认值是localhost
iii. 第一行设置namenode、其余行设置datanodes -
hdfs是一个文件系统,初次使用要格式化:
#hdfs namenode -format-
出现has been successfully formated,格式化成功
-
这样Hadoop的伪分布模式就安装、配置并且启动成功了!!
测试
-
在浏览器中(如果没有安装CentOS的桌面,可以用你的windows中浏览器)打开http://master:50070,(windows中可以使用http://192.168.1.100:50070)看到如下界面说明成功:
配置SSH无密钥访问
这个配置以及ssh的原理在 上很多,这里只简单写一下配置的过程:
- 假设namenode节点的主机是master(192.168.1.100),其余datanode的主机分别为slaver1(192.168.1.101),slaver2(192.168.1.102),slaver3(192.168.1.103)
- 配置hosts:#vim /etc/hosts,添加如下内容
192.168.1.100 master
192.168.1.101 slaver1
192.168.1.102 slaver2
192.168.1.103 slaver3
- 配置hosts:#vim /etc/hosts,添加如下内容
- 分别在各主机检查ssh服务状态(CentOS默认开启)
- # service sshd status
- 如果没有安装:# yum install openssh-server openssh-clients
- 如果没有启动:# service sshd start
- 分别在各主机生成密钥
- ssh-keygen -t rsa #生成密钥的方法是rsa,一直按回车知道结束
- 务必在每个主机上都生成,生成目录在家目录的.ssh目录中,其中id_rsa文件为私钥,id_rsa文件为公钥
-
在每个slaver中(第i个)执行如下命令:
- 将每个公钥重命名
# scp ~/.ssh/id_rsa.pub ~/.ssh/slaveri.id_rsa.pub - 将每个datanode的公钥发送给master
# scp ~/.ssh/slaveri.id_rsa.pub master:~/.ssh
- 将每个公钥重命名
-
在master中执行,切换到.ssh目录下:
- 将master自己的公钥放入authorized_keys中:# cp id_rsa.pub authorized_keys
- 将每个slaver的公钥放入authorized_keys
# cat slaver1.id_rsa.pub >>authorized_keys
# cat slaver2.id_rsa.pub >>authorized_keys
# cat slaver3.id_rsa.pub >>authorized_keys
- 将authorized_keys再发送给每一个slaver
# scp authorized_keys slaver1:~/.ssh
# scp authorized_keys slaver2:~/.ssh
# scp authorized_keys slaver3:~/.ssh
这样ssh无密钥访问就配置完成了!!就不用每次都输入密码确认了
- 配置其它datanodes:
- 在master中配置完成JDK后,使用ssh将jdk发送到其他每个主机(#scp -r /opt/jdk slaver:/opt/,放到同样目录,便于配置),在/etc/profile中添加同样内容即可
- 在master中将hadoop配置完成后(在slaver文件中添加这三个节点名),同样的将hadoop发送到其他节点,然后在/etc/profile中添加同样内容即可
- 启动hadoop只需要在master中启动
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!