Hadoop 完全分布式部署
完全分布式部署Hadoop
分析:
1)准备3台客户机(关闭防火墙、静态ip、主机名称)
2)安装jdk
3)配置环境变量
4)安装hadoop
5)配置环境变量
6)安装ssh
7)集群时间同步
7)配置集群
8)启动测试集群
- 1. 虚拟机准备
准备三台装有Centos系统的虚拟机,可以参考https://www.cnblogs.com/Transkai/p/10404127.html
然后对静态ip进行配置,可以参考 https://www.cnblogs.com/Transkai/p/10404253.html
- 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
- 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
- 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 :存放授权过得无秘登录服务器公钥
- 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 完全分布式部署的更多相关文章
- ubuntu下hadoop完全分布式部署
三台机器分别命名为: hadoop-master ip:192.168.0.25 hadoop-slave1 ip:192.168.0.26 hadoop-slave2 ip:192.168.0.27 ...
- Hadoop 完全分布式部署(三节点)
用来测试,我在VMware下用Centos7搭起一个三节点的Hadoop完全分布式集群.其中NameNode和DataNode在同一台机器上,如果有条件建议大家把NameNode单独放在一台机器上,因 ...
- Hadoop伪分布式部署
一.Hadoop组件依赖关系: 步骤 1)关闭防火墙和禁用SELinux 切换到root用户 关闭防火墙:service iptables stop Linux下开启/关闭防火墙的两种方法 1.永久性 ...
- ubuntu hadoop伪分布式部署
环境 ubuntu hadoop2.8.1 java1.8 1.配置java1.8 2.配置ssh免密登录 3.hadoop配置 环境变量 配置hadoop环境文件hadoop-env.sh core ...
- hadoop完全分布式部署
1.我们先看看一台节点的hdfs的信息:(已经安装了hadoop的虚拟机:安装hadoophttps://www.cnblogs.com/lyx666/p/12335360.html) start-d ...
- Hadoop+HBase分布式部署
test 版本选择
- Hadoop伪分布式模式部署
Hadoop的安装有三种执行模式: 单机模式(Local (Standalone) Mode):Hadoop的默认模式,0配置.Hadoop执行在一个Java进程中.使用本地文件系统.不使用HDFS, ...
- Hadoop 2.6.0分布式部署參考手冊
Hadoop 2.6.0分布式部署參考手冊 关于本參考手冊的word文档.能够到例如以下地址下载:http://download.csdn.net/detail/u012875880/8291493 ...
- Apache Hadoop 2.9.2 完全分布式部署
Apache Hadoop 2.9.2 完全分布式部署(HDFS) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.操作平台 [root@node101.y ...
随机推荐
- POJ 1287 Networking(最小生成树裸题有重边)
Description You are assigned to design network connections between certain points in a wide area. Yo ...
- table中head表头固定,body滚动
<style type="text/css"> .table-head { background-color: #; color: #; } .table-body { ...
- 正则表达式 —— Cases 与 Tricks
1. cases 匹配任意单词(两侧可以有多个空格): ( +[a-zA-Z]+ +) 上述表达式无法匹配句子末尾的单词,若想匹配句尾或者逗号前的单词,则可拓展为: ( +[a-zA-Z]+[?,.] ...
- Ioc容器beanDefinition-Spring 源码系列(1)
Ioc容器beanDefinition-Spring 源码系列(1) 目录: Ioc容器beanDefinition-Spring 源码(1) Ioc容器依赖注入-Spring 源码(2) Ioc容器 ...
- WINDOWS系统的正确安装-硬盘格式如何选择
有一种这样的说法,WIN7改装WIN10必须要重新分区,将硬盘格式化为GPT格式(GUID分区表 ), WIN10改装WIN7必须要重新分区,将硬盘格式化为MBR格式. 这种说法一直困扰着我,于是经过 ...
- python------面向对象介绍之经典类与新式类的继承顺序
一. 经典类与新式类的继承顺序 1 class A: def __init__(self): print("A") class B(A): def __init__(self): ...
- 使用fastjson解析数据后导致顺序改变问题
在开发过程中遇到一个问题,服务器经过排序返回后的字符串数据使用fastjson解析后,数据顺序发生变化,引起业务异常. 解决办法: 1.解析时增加参数不调整顺序 JSONObject responde ...
- What is the $ symbol used for in JavaScript
It doesn't mean anything special. But because $ is allowed in identifier names, many Javascript libr ...
- mongodb副本集加分片集群安全认证使用账号密码登录
mongodb副本集加分片集群搭建网上资料有很多.粘贴一个写的比较好的.副本集加分片搭建 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用账号密码登录. 默认的mongodb是 ...
- (惊艳)hashmap的理解(映射)
第一: hashmap在内存中是长这样的,数组+链表的形式 // HashMap采用链表法解决冲突,每一个Entry本质上是一个单向链表 transient Entry[] table; 第二: p ...