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 ...
随机推荐
- php优秀框架codeigniter学习系列——安装,配置
下载 可在官网下载,我使用的是CodeIgniter-3.1.7. 目录 打开程序目录,可看到目录结构. 我这里做一点小的修改,新建了一个 index 目录,将 index.php 和一些静态文件放入 ...
- elasticsearch.in.sh优化内存
elasticsearch.in.sh文件主要是内存优化 ES_MIN_MEM=24g(24g是物理内存的一半) ES_MAX_MEM=24g ES调优: 1.Java层面的调优,加大JVM的可用内存 ...
- Python中替换敏感字
敏感词在文本文件document.txt中,当用户输入敏感词语时,用*号代替并打印出来 document.txt中的文件内容如下: 北京 上海 广州 深圳 领导 test.py content=inp ...
- FCC JS基础算法题(8):Slasher Flick(截断数组)
题目描述: 返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始. 这个题目有两个方法,都比较简单,用slice方法: function slasher(arr, howMany) { // 请 ...
- sql 按字段指定值排序
这个需要在排序语句中使用条件判断 例如:表[Table_temp]中列[col1]为字符,属性为varchar(10),排序时需要按照B.A.C的顺序显示,则可按照以下SQL语句: select * ...
- Map.putAll()用法
import Java.util.HashMap; public class Map_putAllTest {public static void main(String[] args){ //两 ...
- SpringBoot 添加fastjson
1.先在项目中添加fastjson依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId> ...
- Gym 101889:2017Latin American Regional Programming Contest(寒假自训第14场)
昨天00.35的CF,4点才上床,今天打的昏沉沉的,WA了无数发. 题目还是满漂亮的. 尚有几题待补. C .Complete Naebbirac's sequence 题意:给定N个数,他们在1到K ...
- ps使用图层合并切图
1.新建图层 2.合并要切的图的图层和新建的空白图层 3用正方形工具圈出来要切得图 4.ctrl+c复制,ctrl+n新建,ctrl+v复制过去 5,切图
- jquery选择后代以及toggle,toggleClass用法
$("#id").find(".classname") 选择id为xx下的类名为xx的元素 toggle $(this).next(".c ...