hadoop环境集群搭建与ssh免密码登录

一、Centos系统安装

1)安装VMware-workstation-full-12.5.7-5813279

2)安装scrt_sfx80

3) 在虚拟机中装入Centos版的Linux系统

4)进入Centos系统,进行网络配置(根目录下)

[root@centos01  /]#

vi  /etc/sysconfig/network-scripts/ifcfg-eth0

修改:ONBOOT=yes

5)重启网络服务

[root@centos01  /]# service network restart

  1. 配置windows下的主机映射

C:\Windows\System32\drivers\etc

打开hosts文件,末尾添加以下内容:

192.168.137.129 centos01

192.168.137.128 centos02

【ip地址为centos系统的动态ip地址】

 

二、搭配hadoop环境

1)关闭防火墙(root目录下)

查看防火墙状态 service iptables status

查看防火墙是否开机自启动 chkconfig iptables --list

本次关闭防火墙 service iptables stop

永久关闭防火墙 chkconfig iptables off

重启才生效:reboot

【提示永久打开防火墙】 chkconfig iptables on

 

2)安装Java开发环境(以下都是在SFTP环境下操作)

1.alt + p进入SFTP

2.把JDK安装包拖入SFTP开始上传

3.创建java目录 mkdir /usr/java(cd /返回到根目录,cd usr进入用户目录,创建java文件)

4.解压JDK到java目录 [root@centos01 ~]#

tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/java

  1. 删除上传的压缩包:[root@centos01 ~]#

rm -rf  jdk-8u151-linux-x64.tar.gz

  1. 配置环境变量[root@centos01 ~]#

vi  /etc/profile

末行添加 export JAVA_HOME=/usr/java/jdk1.8.0_151

末行添加 export PATH=$PATH:$JAVA_HOME/bin

  1. 刷新环境变量 [root@centos01 ~]#

source  /etc/profile

8.检查java环境是否搭建成功

查看java环境:java

查看java版本:java -version

【注意】装入jdk Linux命令失效

输入:

export

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bi

 

三)Hadoop伪分布式搭建

1.家目录下创建bigdata

[root@centos01 ~]# mkdir bigdata

  1. 解压hadoop压缩包到

[root@centos01 ~]#

bigdatatar -zxvf hadoop-2.6.5.tar.gz -C bigdata

  1. 删除压缩包

[root@centos01 ~]#

rm -rf hadoop-2.6.5.tar.gz

  1. 进入创建的bigdata文件夹,查看解压情况

[root@centos01 ~]# cd bigdata

[root@centos01 bigdata]# ll

drwxrwxr-x. 9 1000 1000 4096 10月  3 2016 hadoop-2.6.5

5.进入解压后的hadoop-2.6.5文件

[root@centos01 bigdata]# cd hadoop-2.6.5

[root@centos01 hadoop-2.6.5]# ll

drwxrwxr-x. 3 1000 1000  4096 10月  3 2016 etc

6.进入etc文件夹中

[root@centos01 hadoop-2.6.5]# cd etc

[root@centos01 etc]# ll

drwxrwxr-x. 2 1000 1000 4096 10月  3 2016 hadoop

7.进入hadoop文件夹中

[root@centos01 etc]# cd hadoop

[root@centos01 hadoop]# ll

-rw-rw-r--. 1 1000 1000   774 10月  3 2016 core-site.xml

-rw-rw-r--. 1 1000 1000  4234 7月  30 23:52 hadoop-env.sh

-rw-rw-r--. 1 1000 1000   775 10月  3 2016 hdfs-site.xml

-rw-rw-r--. 1 1000 1000   758 10月  3 2016 mapred-site.

xml.template

-rw-rw-r--. 1 1000 1000   690 10月  3 2016 yarn-site.xml

(1)配置jdk路径(进入hadoop-env.sh文件配置jdk)

[root@centos01 hadoop]# vi hadoop-env.sh

修改 export JAVA_HOME=/usr/java/jdk1.8.0_151

【提示】显示行数:set nu

(2)配置hadoop运行时产生数据的存储目录(不是临时的数据)(core-site.xml文件配置)

[root@centos01 hadoop]# vi core-site.xml

fs.defaultFS

hdfs://centos01:9000

hadoop.tmp.dir

/root/bigdata/tmp

配置主机

[root@centos01 hadoop]# vi /etc/hosts

添加:192.168.137.129  centos01

刷新网络配置:[root@centos01 hadoop]# service network restart

(3)指定hdfs存储数据的副本数据量(对hdfs-site.xml文件进行配置)

[root@centos01 hadoop]# vi hdfs-site.xml

dfs.replication

1

  1. 指定mapreduce编程模型运行在yarn上(对mapred-site.xml.

template进行配置)

可以将其重命名为:mapred-site.xml 再进行配置

[root@centos01 hadoop]#

mv  mapred-site.xml.template  mapred-site.xml

[root@centos01 hadoop]# vi mapred-site.xml

mapreduce.framework.name

yarn

(5)指定yarn(ResourceManager)的地址,mapreduce执行shuffle时获取数据的方式(配置yarn-site.xml)

[root@centos01 hadoop]# vi yarn-site.xml

yarn.resourcemanager.hostname

centos01

yarn.nodemanager.aux-services

mapreduce_shuffle

格式化hdfs文件

[root@centos01 hadoop-2.6.5]# ll

drwxrwxr-x. 2 1000 1000  4096 10月  3 2016 bin

[root@centos01 hadoop-2.6.5]# cd bin

[root@centos01 bin]# ll

-rwxr-xr-x. 1 1000 1000  11142 10月  3 2016 hdfs

[root@centos01 bin]# ./hdfs

namenode -format     format the DFS filesystem

[root@centos01 bin]# ./hdfs namenode -format

8.安装SSH(在sbin文件中安装)

[root@centos01 sbin]# yum -y install openssh-clients

9.启动hadoop

[root@centos01 sbin]# ./start-all.sh

[root@centos01 sbin]# jps

1920 DataNode

2196 ResourceManager

1813 NameNode

2534 Jps

2470 NodeManager

2063 SecondaryNameNode

【有五个进程表示启动成功】

验证查看:

http:192.168.137.129:50070 (看Live Nodes:1)

http:192.168.137.129:8088 (Active Nodes:1)

10.关闭所有进程

[root@centos01 sbin]# ./stop-all.sh

 

4)配置集群

集群:多台机器协同工作,一起完成同一一个功能或任务

负载均衡:让集群的多台机器平摊工作任务

分布式:集群的多台机器能够完成同一个功能

Centos01作为主机

Centos02作为从机(也要装好jdk、从centos01复制hadoop到centos02)

1.centos02配置好jdk、装好ssh

[root@centos02 ~]# yum -y install openssh-clients

2.centos01重新更改主机配置

[root@centos01 ~]# vi /etc/hosts

192.168.137.129  centos01

192.168.137.128  centos02

将centos02设置为从主机:

[root@centos01 ~]# scp /etc/hosts centos02:/etc/

在centos02查看主机配置:

[root@centos02 ~]# vi /etc/hosts

192.168.137.129  centos01

192.168.137.128  centos02

(自动添加了主机配置)

查看centos01 bigdata文件夹增加了tmp文件

[root@centos01 ~]# cd bigdata

[root@centos01 bigdata]# ll

drwxrwxr-x. 10 1000 1000 4096 7月  31 18:48 hadoop-2.6.5

drwxr-xr-x.  4 root root 4096 7月  31 18:49 tmp

3.centos02中创建bigdata文件夹(用户复制文件)

[root@centos02 ~]# mkdir bigdata

4.从centos01的bigdata文件中将hadoop复制到centos02的bidata中去

[root@centos01 bigdata]#

scp -r hadoop-2.6.5/ centos02:/root/bigdata

5.更改主机centos01的profile配置,添加hadoop路径

[root@centos01 ~]# vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_151

export HADOOP_HOME=/root/bigdata/hadoop-2.6.5

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

6.更改从机centos02的profile配置,添加hadoop路径

[root@centos02 ~]# vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_151

export HADOOP_HOME=/root/bigdata/hadoop-2.6.5

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

7.刷新主从机

[root@centos01 ~]# source /etc/profile

[root@centos02 ~]# source /etc/profile

进入centos01的bigdata文件夹,查看etc文件夹中的hadoop文件,可以看到增加了

-rw-rw-r--. 1 1000 1000    10 10月  3 2016 slaves

文件

8.更改centos01中的slaves文件,添加从机centos02

[root@centos01 hadoop]# vi slaves

添加:centos02

9.进入centos01的hadoop-2.6.5文件夹下sbin文件夹中,告诉从从机启动那几个进程

[root@centos01 bigdata]# cd hadoop-2.6.5

[root@centos01 hadoop-2.6.5]# cd sbin

告诉从机需要启动的进程:

[root@centos01 sbin]# ./hadoop-daemon.sh start datanode

[root@centos01 sbin]# ./yarn-daemon.sh start nodemanager

查看主机是否把指定进程启动

[root@centos01 sbin]# jps

1368 Jps

1245 NodeManager

1166 DataNode

此时从机什么进程也还没有启动:

[root@centos02 ~]# jps

1606 Jps

10.centos01启动所有进程

[root@centos01 sbin]# ./start-all.sh

查看集群是否成功

http:192.168.137.129:50070 (看Live Nodes变为了:2)

http:192.168.137.129:8088 (Active Nodes变为了:2)

11.从主机centos01关闭所有进程

[root@centos01 sbin]# ./stop-all.sh

【主机可以关掉从机,从机只能自己关掉自己,关与开都在主机进行】

 

三、SSH免密码登录

  1. 查看centos01所有目录(包括隐藏)

[root@centos01 ~]# ll -la

drwx------.  2 root root  4096 7月  31 18:48 .ssh

  1. 打开.ssh文件

[root@centos01 ~]# cd .ssh

[root@centos01 .ssh]# ll

-rw-r--r--. 1 root root 1592 7月  31 19:23 known_hosts

【说明】known_hosts文件只是记录追踪访问机器历史的作用,与免密码无关,删了也还会自动生成记录

3)生成公钥与私钥(先返回root目录下)

[root@centos01 .ssh]# cd

[root@centos01 ~]# ssh-keygen -t rsa

按Enter键三次,即可生成公钥与私钥

The key's randomart image is:

再次查看.ssh文件,可以看到新增了文件

[root@centos01 ~]# cd .ssh

[root@centos01 .ssh]# ll

-rw-------. 1 root root 1675 7月  31 21:52 id_rsa

-rw-r--r--. 1 root root  395 7月  31 21:52 id_rsa.pub

-rw-r--r--. 1 root root 1592 7月  31 19:23 known_hosts

  1. 从centos01主机复制公钥到centos02从机(实现从机免密码)

[root@centos01 .ssh]# ssh-copy-id [email protected]

查看centos02从机中的.ssh文件可以看到:

[root@centos02 .ssh]# ll

-rw-------. 1 root root 395 7月  31 22:07 authorized_keys

-rw-r--r--. 1 root root 397 7月  31 22:01 known_hosts

  1. centos01把公钥自己也复制一份(实现自己免密码登录)

[root@centos01 .ssh]# ssh-copy-id [email protected]

[root@centos01 .ssh]# ll

-rw-------. 1 root root  395 7月  31 22:14 authorized_keys

-rw-------. 1 root root 1675 7月  31 21:52 id_rsa

-rw-r--r--. 1 root root  395 7月  31 21:52 id_rsa.pub

-rw-r--r--. 1 root root 1592 7月  31 19:23 known_hosts

  1. 重启集群(首次还是需要密码,以后就不需要了)

[root@centos01 sbin]# ./start-all.sh

你可能感兴趣的:(大数据)