完全分布式部署Hadoop

分析:

1)准备3台客户机(关闭防火墙、静态ip、主机名称)

2)安装jdk

3)配置环境变量

4)安装hadoop

5)配置环境变量

6)安装ssh

7)集群时间同步

7)配置集群

8)启动测试集群

  1. 1.      虚拟机准备

准备三台装有Centos系统的虚拟机,可以参考https://www.cnblogs.com/Transkai/p/10404127.html

然后对静态ip进行配置,可以参考  https://www.cnblogs.com/Transkai/p/10404253.html

  1. 2.      主机名设置

0)查看主机名基本语法:

[root@hadoop-001 /]#hostname

1)修改linux的hosts文件

(1)进入Linux系统查看本机的主机名。通过hostname命令查看

[root@hadoop ~]# hostname

hadoop-001

(2)如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/sysconfig/network文件

[root@hadoop-001 /]# vi /etc/sysconfig/network

文件中内容

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME= hadoop-001

注意:主机名称不要有“_”下划线

(3)打开此文件后,可以看到主机名。修改此主机名为我们想要修改的主机名hadoop-001。

(4)保存退出。

(5)打开/etc/hosts

[root@hadoop-001 /]# vim /etc/hosts

添加如下内容

192.168.137.188  hadoop001

(6)并重启设备,重启后,查看主机名,已经修改成功

2)修改window10的hosts文件

(1)进入C:\Windows\System32\drivers\etc路径

(2)打开hosts文件并添加如下内容

192.168.137.188 hadoop-001

并按以上步骤配置好hadoop-002,hadoop-003

  1. 3.      安装jdk,Hadoop,配置环境变量

配置jdk文件

1、解压jdk软件

jdk-8u161-linux-x64.tar.gz

1、配置环境变量

export JAVA_HOME=/home/hadoop/bigdatasoftware/jdk1.8.0_161

PATH=$PATH:$JAVA_HOME/bin

配置hadoop(本地模式)

1、解压hadoop软件

tar -zxvf hadoop-2.7.2.tar.gz

2、配置hadoop的环境变量

a、vi ~/.bash_profile

添加以下内容:

export HADOOP_HOME=/home/hadoop/bigdatasoftware/hadoop-2.7.2

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

b、source ~/.bash_profile

3、hadoop version

Hadoop 2.7.2

 

 

  1. 4.      SSH无密码登录

 

(1)进入到我的home目录

cd  ~/.ssh

(2)生成公钥和私钥:

ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(3)将公钥拷贝到要免密登录的目标机器上

ssh-copy-id 192.168.1.102

.ssh文件夹下的文件功能解释

(1)~/.ssh/known_hosts   :记录ssh访问过计算机的公钥(public key)

(2)id_rsa    :生成的私钥

(3)id_rsa.pub    :生成的公钥

(4)authorized_keys  :存放授权过得无秘登录服务器公钥

 

  1. 5.     配置集群

1)集群部署规划

hadoop-001

hadoop-002

hadoop-003

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

2)配置文件

(1)core-site.xml

<!-- 指定HDFS中NameNode的地址 -->

<property>

<name>fs.defaultFS</name>

<value>hdfs:// hadoop-001:9000</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/module/hadoop-2.7.2/data/tmp</value>

</property>

(2)Hdfs

hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value> hadoop-003:50090</value>

</property>

</configuration>

slaves

hadoop-001

hadoop-002

hadoop-003

(3)yarn

yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<!-- reducer获取数据的方式 -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 指定YARN的ResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>Hadoop-002</value>

</property>

</configuration>

(4)mapreduce

mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

mapred-site.xml

<configuration>

<!-- 指定mr运行在yarn上 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

 

6.scp指令

 

1)scp可以实现服务器与服务器之间的数据拷贝。

2)案例实操

(1)将hadoop-001中/home/hadoop文件拷贝到hadoop-002、hadoop-003上。

[hadoop@hadoop-001 /]# scp -r /home/hadoop/bigdatasoftware  hadoop@hadoop-002:/home/hadoop/

[hadoop@hadoop-001 /]# scp -r /home/hadoop/bigdatasoftware  hadoop@hadoop-003:/home/hadoop/

(2)将192.168.1.102服务器上的文件拷贝到当前用户下。

[root@hadoop101 opt]# scp  root@hadoop102:/etc/profile  /opt/tmp/

(3)实现两台远程机器之间的文件传输(hadoop103主机文件拷贝到hadoop104主机上)

[hadoop@hadoop102 test]$ scp hadoop@hadoop103:/opt/test/haha hadoop@hadoop104:/opt/test/

 

7.集群启动及测试

 

1)启动集群

(0)如果集群是第一次启动,需要格式化namenode

[root@hadoop-001hadoop-2.7.2]# bin/hdfs namenode -format

(1)启动HDFS:

[root@hadoop-001 hadoop-2.7.2]# sbin/start-dfs.sh

[root@hadoop-001 hadoop-2.7.2]# jps

4166 NameNode

4482 Jps

4263 DataNode

[root@hadoop-002 桌面]# jps

3218 DataNode

3288 Jps

[root@hadoop-003 桌面]# jps

3221 DataNode

3283 SecondaryNameNode

3364 Jps

(2)启动yarn

sbin/start-yarn.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

2)集群基本测试

(1)上传文件到集群

上传小文件

bin/hdfs dfs -mkdir -p /home/hadoop/tmp/conf

bin/hdfs dfs -put etc/hadoop/*-site.xml /home/hadoop/tmp/conf

上传大文件

[hadoop@hadoop-001 hadoop-2.7.2]$ bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz  /user/hadoop/input

(2)上传文件后查看文件存放在什么位置

文件存储路径

[hadoop@hadoop102 subdir0]$ pwd

/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0

查看文件内容

[hadoop@hadoop102 subdir0]$ cat blk_1073741825

hadoop

hadoop

hadoop

(3)拼接

-rw-rw-r--. 1 hadoop hadoop 134217728 5月  23 16:01 blk_1073741836

-rw-rw-r--. 1 hadoop hadoop   1048583 5月  23 16:01 blk_1073741836_1012.meta

-rw-rw-r--. 1 hadoop hadoop  63439959 5月  23 16:01 blk_1073741837

-rw-rw-r--. 1 hadoop hadoop    495635 5月  23 16:01 blk_1073741837_1013.meta

[hadoop@hadoop102 subdir0]$ cat blk_1073741836>>tmp.file

[hadoop@hadoop102 subdir0]$ cat blk_1073741837>>tmp.file

[hadoop@hadoop102 subdir0]$ tar -zxvf tmp.file

(4)下载

[hadoop@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -get /user/hadoop/input/hadoop-2.7.2.tar.gz

3)性能测试集群

写海量数据

读海量数据

7集群时间同步

时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每日十分钟,同步一次时间。

配置时间同步:

1)时间服务器配置

(1)检查ntp是否安装

[root@hadoop102 桌面]# rpm -qa|grep ntp

ntp-4.2.6p5-10.el6.centos.x86_64

fontpackages-filesystem-1.41-1.1.el6.noarch

ntpdate-4.2.6p5-10.el6.centos.x86_64

(2)修改ntp配置文件

vi /etc/ntp.conf

修改内容如下

a)修改1

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

b)修改2

server 0.centos.pool.ntp.org iburst

server 1.centos.pool.ntp.org iburst

server 2.centos.pool.ntp.org iburst

server 3.centos.pool.ntp.org iburst为

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

c)添加3

server 127.127.1.0

fudge 127.127.1.0 stratum 10

3)修改/etc/sysconfig/ntpd 文件

vim /etc/sysconfig/ntpd

增加内容如下

SYNC_HWCLOCK=yes

4)重新启动ntpd

[root@hadoop102 桌面]# service ntpd status

ntpd 已停

[root@hadoop102 桌面]# service ntpd start

正在启动 ntpd:                                            [确定]

5)执行:

chkconfig ntpd on

2)其他机器配置(必须root用户)

(1)在其他机器配置10分钟与时间服务器同步一次

[root@hadoop103 hadoop-2.7.2]# crontab -e

编写脚本

*/10 * * * * /usr/sbin/ntpdate hadoop102

(2)修改任意机器时间

date -s "2019-2-26"

(3)十分钟后查看机器是否与时间服务器同步

date

Hadoop 完全分布式部署的更多相关文章

  1. ubuntu下hadoop完全分布式部署

    三台机器分别命名为: hadoop-master ip:192.168.0.25 hadoop-slave1 ip:192.168.0.26 hadoop-slave2 ip:192.168.0.27 ...

  2. Hadoop 完全分布式部署(三节点)

    用来测试,我在VMware下用Centos7搭起一个三节点的Hadoop完全分布式集群.其中NameNode和DataNode在同一台机器上,如果有条件建议大家把NameNode单独放在一台机器上,因 ...

  3. Hadoop伪分布式部署

    一.Hadoop组件依赖关系: 步骤 1)关闭防火墙和禁用SELinux 切换到root用户 关闭防火墙:service iptables stop Linux下开启/关闭防火墙的两种方法 1.永久性 ...

  4. ubuntu hadoop伪分布式部署

    环境 ubuntu hadoop2.8.1 java1.8 1.配置java1.8 2.配置ssh免密登录 3.hadoop配置 环境变量 配置hadoop环境文件hadoop-env.sh core ...

  5. hadoop完全分布式部署

    1.我们先看看一台节点的hdfs的信息:(已经安装了hadoop的虚拟机:安装hadoophttps://www.cnblogs.com/lyx666/p/12335360.html) start-d ...

  6. Hadoop+HBase分布式部署

    test 版本选择

  7. Hadoop伪分布式模式部署

    Hadoop的安装有三种执行模式: 单机模式(Local (Standalone) Mode):Hadoop的默认模式,0配置.Hadoop执行在一个Java进程中.使用本地文件系统.不使用HDFS, ...

  8. Hadoop 2.6.0分布式部署參考手冊

    Hadoop 2.6.0分布式部署參考手冊 关于本參考手冊的word文档.能够到例如以下地址下载:http://download.csdn.net/detail/u012875880/8291493 ...

  9. Apache Hadoop 2.9.2 完全分布式部署

    Apache Hadoop 2.9.2 完全分布式部署(HDFS) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.操作平台 [root@node101.y ...

随机推荐

  1. python-django的生命周期

    wsgi,请求封装后交给web框架(flask,django) 中间件,对请求进行校验或在请求对象中添加其他相关数据,列如(scrf[跨域],request,session) 路由匹配,根据浏览器发送 ...

  2. 2019-03-20-day015-序列化存储

    昨日回顾 序列化模块: json -- load dump dumps loads pickle -- load dump dumps loads shelve -- 文件 + 字典 f = shel ...

  3. [转]自然语言处理中的Attention Model:是什么及为什么

    自然语言处理中的Attention Model:是什么及为什么 https://blog.csdn.net/malefactor/article/details/50550211 /* 版权声明:可以 ...

  4. 【c++基础】从json文件提取数据

    前言 标注数据导出文件是json格式的,也就是python的dict格式,需要读取标注结果,可以使用c++或者python,本文使用c++实现的. JsonCpp简介 JsonCpp是一种轻量级的数据 ...

  5. POJ3525:Most Distant Point from the Sea(二分+半平面交)

    pro:给定凸多边形,求凸多边形内的点到最近边界的最远距离. sol:显然是二分一个圆,使得圆和凸多边形不相交,但是这样很难实现. 由于是凸多边形,我们可以把二分圆转化为二分凸多边形的移动. 如果每一 ...

  6. P1220 关路灯 (区间dp)

    题目链接:传送门 题目大意: 总共有N盏灯,老张从点C(1 ≤ C ≤ N)开始关灯(关灯不需要等待时间,C点的灯直接关掉),与此同时灯开始烧电(已知功率Pi). 老张每次可以往左走关最近的灯或者往右 ...

  7. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online -C:Halting Problem(模拟)

    C Halting Problem In computability theory, the halting problem is the problem of determining, from a ...

  8. Python基础线程和协程

    线程: 优点:共享内存,IO操作时,创造并发操作 缺点:枪战资源 线程不是越多越好,具体案例具体分析,请求上下文切换耗时 IO密集型适用于线程,IO操作打开文件网络通讯类,不需要占用CPU,只是由CP ...

  9. hdu2389 Rain on your Parade 二分图匹配--HK算法

    You’re giving a party in the garden of your villa by the sea. The party is a huge success, and every ...

  10. 【shell编程】之基础知识了解shell

    一.什么是shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了 ...