Hadoop环境搭建(centos7,java1.6,Hadoop 1.2.1)

1、安装VMware Workstation Pro12,以及centos7。
 

 直接下一步。。。,网络类型这里注意选择NAT模式:

 

 然后直接下一步。。。,磁盘类型这里选择存储为单个文件,方便后续拷贝:

 
2、虚拟机安装完成后,启动虚拟机。在VMware选择编辑--虚拟机网络编辑器,查看vMnet8。
 
点击更改配置,选择NAT设置,记录当前子网掩码,和网关:
 
 
3、进入cd /etc/sysconfig/network-scripts/目录,vi ifcfg-eno16777736,修改网卡配置如下:
# HWADDR=00:0C:29:B7:34:5E
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPADDR=192.168.72.170
NETMASK=255.255.255.0
GATEWAY=192.168.72.2
DNS1=8.8.8.8
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
#IPV6_FAILURE_FATAL=no
NAME=eno16777736
DEVICE=eno16777736
UUID=20d57e47-ca2c-4c84-9e7d-e9c59460489a
ONBOOT=yes
其中IPADDR 为当前主机需要设置的IP地址,NETMASK、GATEWAY为步骤2中查看的子网掩码和网关。BOOTPROTO设置为静态获取IP,ONBOOT设置为yes表示在系统启动时是否激活网卡。UUID可以根据 uuidgen 网卡名称 命令自动生成。Name和device为配置的网卡名称。
 
4、配置好之后用ifconfig查看ip情况:

 

5、将虚拟机关机,在本地文件夹将master 文件夹复制另外两个节点,slaver1和slaver2:
6、虚拟机添加slaver1和slaver2,启动之前现在VMware--虚拟机--虚拟机配置这里移除硬盘和网络适配器,然后分别添加slaver1目录的硬盘,新建网络适配器选择NAT模式,slaver2同样操作。(为什么需要这一步,因为启动过程中,发现slaver用的是master的硬盘,同时启动会起冲突,网络适配器是因为需要从先分配网卡mac地址,防止重复)

 

7、和步骤2、3、4一样配置slaver节点的IP地址信息。安装好之后,三台主机的IP信息如下:
192.168.72.170 master
192.168.72.171 slaver1
192.168.72.172 slaver2
 
8、(先删除centos7自带的open jdk,rpm -qa|grep java查看安装目录,yum -y remove 目录名称     的命令删除),配置java环境变量:vim ~/.bashrc,在后面添加:
export JAVA_HOME=/usr/src/jdk1.6.0_45
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
保存退出,执行source ~/.bashrc命令,然后输入java -version 命令验证:
即jdk 安装成功。
三个节点依次操作。
 
9、进入Hadoop conf目录,修改6个文件:
masters 文件:指定master节点的主机名,本例写入master

slaves文件:指定slave节点的主机名,本例写入slaver1 salver2

core-site.xml:增加property节点,两个分别为hadoop.tmp.dir和fs.default.name,一个是运行目录(指定之前要先在Hadoop目录下创建tmp目录),另一个是hdfs访问地址(hdfs://IP地址:9000)。

  <property>
     <name>hadoop.tmp.dir</name>
     <value>/usr/src/hadoop-1.2.1/tmp</value>
  </property> 
  <property>
     <name>fs.default.name</name>
     <value>hdfs://192.168.72.170:9000</value>
  </property>

mapred-site.xml:配置job tracker访问URL,地址要以http打头。

<property>
    <name>mapred.job.tracker</name>
    <value>http://192.168.183.10:9001</value>
</property>

hdfs-site.xml:配置hdfs文件保存的副本数,默认为3

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

hadoop-env.sh文件:指定java的安装目录。

export JAVA_HOME=/usr/local/src/jdk1.6.0_45

master配置好的Hadoop文件夹,拷贝到slaver1和slaver2

10、修改主机名和主机配置信息,修改两个文件:

/etc/hosts:配置IP地址与主机名的映射关系;

/etc/sysconfig/network:永久修改主机名;

(centos7 采用hostnamectl set-hostname 主机名命令,永久设置主机名)

hostname + 主机名的方式,修改主机名知识临时生效,要永久生效需要修改/etc/sysconfig/network文件中的HOSTNAME的值。

执行hostname 主机名命令,让修改的主机名立即生效(这样不用重启系统)。

依次修改slaver1和slaver2节点的hosts和network文件。运行hostname命令。

 

11、关闭防火墙

 执行命令(每台机器都需要):/etc/init.d/iptables stop

检查当前防火墙信息,iptables -L

执行命令:setenforce 0 (每台机器)

检查命令:getenforce,输出Permissive

 centos7命令(与上面不一致):

 关闭防火墙:systemctl stop firewalld.service

查看防火墙状态:firewall-cmd --state
禁止防火墙开机启动:systemctl disable firewalld.service
 
关闭SELINUX,编辑etc/selinux/config文件,将SELINUX置为disabled:(SELinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问。否则即使权限是777,也是不能访问的。)

 

 12、配置ssh

建立每台机器之前的互信关系(远程其他机器的时候不需要输入密码,直接ssh hostname即可登录):

执行ssh-keygen命令,从输出信息可以看到,公钥public key 保存在/root/.ssh/id_rsa.pub中。

cd ~/.ssh/ 进入目录,将公钥文件拷贝给本机私钥(执行命令 cat id_rsa.pub > authorized_keys

查看主机的公钥文件和私钥文件,内容一致。

依次用密令生成slaver1和slaver2节点的公钥,将它们的公钥内容拷贝到master节点的私钥文件中(authorized_keys),相当于master节点的私钥文件中包含了master、slaver1、slaver2三个节点的公钥。

然后将master节点配置的私钥文件拷贝给slaver1和slaver2,分别覆盖它们的私钥文件,这样三个节点的私钥文件都包含的各自和自己的公钥。

验证:在各节点直接用ssh 主机名的方式,登录其他主机,不用输入密码,直接登录。

 

13、进入master节点的Hadoop 目录bin目录下:

第一次启动需要对Hadoop namenode 进行格式化,输入命令 ./hadoop namenode -format

格式化之后 执行./start-all.sh 将整个集群启动。

 

14、输出jps命令:

matser节点:

NameNode

SecondaryNameNode

JobTracker

slaver节点:

TaskTracker

DataNode

./hadoop fs -ls /                    查看当前集群hdfs是否可用

../hadoop fs -put /etc/passwd /

./hadoop fs -ls /

./hadoop fs -act /passwd

Hadoop集群安装完毕。


 

posted @ 2018-10-12 13:02  Clerver  阅读(706)  评论(0编辑  收藏  举报