大数据-Hadoop-搭建(一):搭建Hadoop完全分布式集群(在VMware中的Linux虚拟机)【CentOS6】【独立安装Apache Hadoop】

本文主要是介绍大数据-Hadoop-搭建(一):搭建Hadoop完全分布式集群(在VMware中的Linux虚拟机)【CentOS6】【独立安装Apache Hadoop】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
在这里插入图片描述

一、VMware、Linux虚拟机环境准备

1、网络配置

1.1 查看网络IP和网关

1.1.1 查看虚拟网络编辑器

在这里插入图片描述

1.1.2 修改ip地址

在这里插入图片描述

1.1.3 查看网关

在这里插入图片描述

1.1.4 查看windows环境的中VMnet8网络配置(控制面板-网络和Internet-更改适配器选项)

在这里插入图片描述

1.2 配置Linux系统的网络IP和网关

1.2.1 查看当前网络IP
[wyr@hadoop101 ~]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:7D:B7:BC  inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fe7d:b7bc/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:3066 errors:0 dropped:0 overruns:0 frame:0TX packets:1172 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:240100 (234.4 KiB)  TX bytes:133232 (130.1 KiB)lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:123 errors:0 dropped:0 overruns:0 frame:0TX packets:123 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:18048 (17.6 KiB)  TX bytes:18048 (17.6 KiB)[wyr@hadoop101 ~]$ 
1.2.2 修改当前Linux系统的IP地址为固定地址
[wyr@hadoop101 ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述
以下标红的项必须修改,有值的按照下面的值修改,没有该项的要增加。
在这里插入图片描述

DEVICE=eth0
HWADDR=00:0c:29:7d:b7:bc
TYPE=Ethernet
UUID=d902e817-ae32-4272-bc86-66ebca38f2b6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.101
GATEWAY=192.168.1.2
DNS1=114.114.114.114
DNS2=8.8.8.8
1.2.3 重启network

执行

service network restart

如果报错,reboot,重启虚拟机
在这里插入图片描述

2、配置主机名

2.1 查看当前Linux系统的主机名称

[wyr@hadoop101 ~]$ hostname
hadoop101
[wyr@hadoop101 ~]$ 

2.2 修改当前Linux系统的主机名称

如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/sysconfig/network文件,修改HOSTNAME。
注意:主机名称不要有“_”下划线

[wyr@hadoop101 ~]$ vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop101
NTPSERVERARGS=iburst

3、关闭防火墙

3.1 临时关闭防火墙

[wyr@hadoop101 ~]$ sudo service iptables stop

3.1 关闭iptables服务的自动启动:开机启动时关闭防火墙

[wyr@hadoop101 ~]$ sudo chkconfig iptables off

4、添加新用户并配置新用户具备root权限

4.1 添加新用户

[root@hadoop101 ~]# useradd wyr
[wyr@hadoop101 ~]$ ll /home/
total 4
drwx------. 27 wyr wyr 4096 Jan 26 17:05 wyr
[wyr@hadoop101 ~]$ 

4.2 设置用户密码

[root@hadoop101 ~]# passwd wyr

4.3 赋予普通用户具有root权限

修改配置文件

[root@hadoop101 ~]# vi /etc/sudoers

修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
wyr   ALL=(ALL)     ALL

或者配置成采用sudo命令时,不需要输入密码

## Allow root to run any commands anywhere
root      ALL=(ALL)     ALL
wyr   ALL=(ALL)     NOPASSWD:ALL

修改完毕,现在可以用wyr帐号登录,然后用命令 sudo ,即可获得root权限进行操作。

二、多台Linux集群环境准备

1、在VMware中克隆3台Linux

在这里插入图片描述

1.1 修改各个Linux虚拟机主机名

第一台虚拟机:

[wyr@hadoop101 ~]$ vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop101
NTPSERVERARGS=iburst

第二台虚拟机:

[wyr@hadoop102 ~]$ vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop102
NTPSERVERARGS=iburst

第三台虚拟机:

[wyr@hadoop103 ~]$ vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop103
NTPSERVERARGS=iburst

1.2 修改各个Linux虚拟机网卡名称

第一台虚拟机:

[wyr@hadoop101 ~]$ vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:7d:b7:bc", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 

第二台虚拟机:

[wyr@hadoop102 ~]$ vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:65:d4:7f", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

第二台虚拟机:

[wyr@hadoop102 ~]$ vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:65:d4:7f", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

第三台虚拟机:

[wyr@hadoop103 ~]$ vim /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:29:9b:63", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

1.3 修改各个Linux虚拟机网络配置

根据网卡中的信息修改:HWADDR修改为各个Linux自己的HWADDR值

第一台虚拟机:

[wyr@hadoop101 ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:7d:b7:bc
TYPE=Ethernet
UUID=d902e817-ae32-4272-bc86-66ebca38f2b6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.101
GATEWAY=192.168.1.2
DNS1=114.114.114.114
DNS2=8.8.8.8

第二台虚拟机:

[wyr@hadoop102 ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:65:d4:7f
TYPE=Ethernet
UUID=d902e817-ae32-4272-bc86-66ebca38f2b6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.102
GATEWAY=192.168.1.2
DNS1=114.114.114.114
DNS2=8.8.8.8

第三台虚拟机:

[wyr@hadoop103 ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0c:29:29:9b:63
TYPE=Ethernet
UUID=d902e817-ae32-4272-bc86-66ebca38f2b6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.103
GATEWAY=192.168.1.2
DNS1=114.114.114.114
DNS2=8.8.8.8

1.4 添加各个Linux虚拟机的节点映射

[wyr@hadoop101 ~]$ sudo vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103

2、各个Linux节点间ssh免密通信

如果A机器的a用户,希望使用b用户的身份,免密登录到B机器!实现步骤:① A机器的a用户,在A机器上生成一对密钥ssh-keygen -t rsa② 密钥分为公钥和私钥,a用户需要将公钥拷贝到B机器上b用户的家目录下的authorithxxxx_keys方法①:使用b用户登录到B机器,编辑authorithxxxx_keys,将公钥的内容进行添加方法②:在A机器,使用a用户执行以下命令: ssh-copy-id  b@B③A机器的a用户,可以使用 ssh  b@B进行登录!注意:如果在配置时,省略了用户名,那么默认使用当前操作的用户名作为目标机器的用户名![a@A] ssh  B 等价于  [a@A] ssh  a@B 
两种ssh的使用方式①登录到目标主机,再执行命令[a@A] ssh  B[a@B] jps属于Login-shell,默认读取/etc/profile文件!②在A机器,执行命令[a@A] ssh  B jps属于non-Login-shell,不会读取/etc/profile文件!只会读取 ~/.bashrc解决: 在a@B的~/.bashrc中配置 source /etc/profile注意:当前主机也要配置自己到自己的SSH免密登录!配置SSH的作用 :①执行scp,rsync命令时,不需要输入密码,方便②在执行start-all.sh群起脚本时,需要输入密码

以第二台Linux虚拟机hadoop102为主要操作平台,在第二台Linux虚拟机hadoop102上创建一对密钥,默认保存在/home/wyr/.ssh

[wyr@hadoop102 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/wyr/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/wyr/.ssh/id_rsa.
Your public key has been saved in /home/wyr/.ssh/id_rsa.pub.
The key fingerprint is:
bc:de:d1:40:6d:6f:a3:63:2d:0d:8b:67:e7:ba:04:6a wyr@hadoop101
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|           .     |
|          . o    |
|       . . . .   |
|        S o . +  |
|         o = B . |
|        E o @ +  |
|       o . * =   |
|        . . oo.  |
+-----------------+
[wyr@hadoop101 ~]$ 
[wyr@hadoop102 ~]$ ll -la
total 164
drwx------. 27 wyr  wyr  4096 Jan 26 15:57 .
drwxr-xr-x.  3 root root 4096 Jan 26 11:03 ..
drwxrwxr-x.  2 wyr  wyr  4096 Jan 26 11:17 .abrt
-rw-------.  1 wyr  wyr  1952 Jan 26 15:11 .bash_history
-rw-r--r--.  1 wyr  wyr    18 May 11  2016 .bash_logout
-rw-r--r--.  1 wyr  wyr   176 May 11  2016 .bash_profile
-rw-r--r--.  1 wyr  wyr   124 May 11  2016 .bashrc
drwxr-xr-x.  3 wyr  wyr  4096 Jan 26 11:52 .cache
drwxr-xr-x.  5 wyr  wyr  4096 Jan 26 11:17 .config
drwx------.  3 wyr  wyr  4096 Jan 26 11:17 .dbus
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Desktop
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 12:00 Documents
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Downloads
-rw-------.  1 wyr  wyr    16 Jan 26 11:17 .esd_auth
drwx------.  4 wyr  wyr  4096 Jan 26 14:41 .gconf
drwx------.  2 wyr  wyr  4096 Jan 26 14:57 .gconfd
drwxr-xr-x.  6 wyr  wyr  4096 Jan 26 11:52 .gnome2
drwx------.  2 wyr  wyr  4096 Jan 26 11:52 .gnome2_private
drwxrwxr-x.  3 wyr  wyr  4096 Jan 26 11:17 .gnote
drwx------.  2 wyr  wyr  4096 Jan 26 14:41 .gnupg
-rw-rw-r--.  1 wyr  wyr   127 Jan 26 14:41 .gtk-bookmarks
drwx------.  2 wyr  wyr  4096 Jan 26 11:17 .gvfs
-rw-------.  1 wyr  wyr   930 Jan 26 14:41 .ICEauthority
-rw-r--r--.  1 wyr  wyr   631 Jan 26 14:41 .imsettings.log
drwxr-xr-x.  3 wyr  wyr  4096 Jan 26 11:17 .local
drwxr-xr-x.  5 wyr  wyr  4096 Jan 26 11:52 .mozilla
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Music
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 .nautilus
drwxrwxr-x.  2 wyr  wyr  4096 Jan 26 11:55 .oracle_jre_usage
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Pictures
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Public
drwx------.  2 wyr  wyr  4096 Jan 26 11:17 .pulse
-rw-------.  1 wyr  wyr   256 Jan 26 11:17 .pulse-cookie
drwx------.  2 wyr  wyr  4096 Jan 26 16:24 .ssh
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Templates
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Videos
-rw-------.  1 wyr  wyr   990 Jan 26 14:59 .viminfo
-rw-------.  1 wyr  wyr   110 Jan 26 15:57 .Xauthority
-rw-------.  1 wyr  wyr  3096 Jan 26 14:57 .xsession-errors
-rw-------.  1 wyr  wyr  4407 Jan 26 12:27 .xsession-errors.old
[wyr@hadoop102 ~]$ cd .ssh
[wyr@hadoop102 .ssh]$ ls
id_rsa  id_rsa.pub  known_hosts

将生成的id_rsa.pub分别发送到hadoop101 、hadoop102 、hadoop103 三台Linux虚拟机上

[wyr@hadoop102 .ssh]$ ssh-copy-id wyr@hadoop101
wyr@hadoop101's password: 
Now try logging into the machine, with "ssh 'wyr@hadoop101'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.[wyr@hadoop102 ~]$ ssh hadoop101
Last login: Tue Jan 26 16:54:29 2021 from 192.168.1.10
[wyr@hadoop101 ~]$ exit
logout
Connection to hadoop101 closed.
[wyr@hadoop102 ~]$ 
[wyr@hadoop102 .ssh]$ ssh-copy-id wyr@hadoop102
wyr@hadoop102's password: 
Now try logging into the machine, with "ssh 'wyr@hadoop102'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.[wyr@hadoop102 ~]$ ssh hadoop102
Last login: Tue Jan 26 17:58:27 2021 from 192.168.1.10
[wyr@hadoop102 ~]$ exit
logout
Connection to hadoop102 closed.
[wyr@hadoop102 ~]$ 
[wyr@hadoop102 .ssh]$ ssh-copy-id wyr@hadoop103
wyr@hadoop103's password: 
Now try logging into the machine, with "ssh 'wyr@hadoop103'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.[wyr@hadoop102 ~]$ ssh hadoop103
Last login: Tue Jan 26 16:29:38 2021 from hadoop101
[wyr@hadoop102 ~]$ exit
logout
Connection to hadoop103 closed.
[wyr@hadoop102 ~]$ 

3、配置非登录状态的环境变量

3.1 Login Shell登录脚本的执行顺序:【注:仅适用于 bash shell】

Login Shell:是指登录时,需要提供用户名密码的shell,如:su – user1 , 图形登录, ctrl+alt+F2-6进入的登录界面。这种Login shell 执行脚本的顺序:

  1. /etc/profile 【全局profile文件;它定义了LoginUser的 PATH, USER, LOGNAME(登录使用者帐号)】
  2. /etc/profile.d/目录下的脚本
  3. ~/.bash_profile 【搜索命令的路径 ——————- 登录级别 环境变量配置文件 】
  4. ~/.bashrc 【存储用户设定的别名和函数 ———- shell级别 环境变量配置文件】
  5. /etc/bashrc 【全局bashrc文件; 它主要定义一些 Function 和 Alias;更改/etc/bashrc会影响到所有用户,由root用户管理。】
  • 例如:在hadoop101虚拟机上通过ssh hadoop102登陆hadoop102虚拟机,会自动读取/etc/profile环境变量文件中定义的所有的变量
  • 因为java的/opt/module/jdk1.8.0_121/bin/jps命令已经配置到了/etc/profile环境变量中,
  • 所以可以直接执行jps命令,
[wyr@hadoop101 ~]$ ssh hadoop102
Last login: Tue Jan 26 20:53:59 2021 from hadoop101
[wyr@hadoop102 ~]$ jps
3626 Jps
[wyr@hadoop102 ~]$ 

3.2 Non-Login shell登录脚本的执行顺序:【注:仅适用于 bash shell】

Non-Login shell:登录终端后,使用ssh 登录 其他机器! 非登录shell指的是,不需要输入用户名密码的shell,如图形下 右键terminal,或ctrl+shift+T打开的shell。这种Non-Login shell 执行登录脚本的顺序:

  1. ~/.bashrc
  2. /etc/bashrc
  3. /etc/profile.d/目录下的脚本
  • 例如:在hadoop102虚拟机上通过ssh hadoop101 jps 直接执行hadoop101虚拟机上的jps命令,
  • 不会自动读取hadoop101虚拟机上的/etc/profile环境变量文件
  • 而java的/opt/module/jdk1.8.0_121/bin/jps命令是配置到在/etc/profile环境变量中的
  • 所以会失败
[wyr@hadoop102 ~]$ ssh hadoop101 jps
bash: jps: command not found
[wyr@hadoop102 ~]$ 

3.3 让Non-Login shell登录脚本也执行/etc/profile环境变量的方法

  • 在虚拟机上的~/.bashrc文件中引入/etc/profile环境变量即可
  • 如果在使用命令时,我们需要使用/etc/profile定义的一些变量,需要在目标机器的对应的用户的家目录 /home/.bashrc中添加以下代码
    source /etc/profile
    
  • 如果不在 /home/.bashrc文件中添加以上代码,在执行start-all.sh | stop-all.sh 这些Hadoop群起脚本时一定会报错!
[wyr@hadoop101 ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[wyr@hadoop101 ~]$ ll -la
total 164
drwx------. 27 wyr  wyr  4096 Jan 26 17:58 .
drwxr-xr-x.  3 root root 4096 Jan 26 11:03 ..
drwxrwxr-x.  2 wyr  wyr  4096 Jan 26 11:17 .abrt
-rw-------.  1 wyr  wyr  2928 Jan 26 20:54 .bash_history
-rw-r--r--.  1 wyr  wyr    18 May 11  2016 .bash_logout
-rw-r--r--.  1 wyr  wyr   176 May 11  2016 .bash_profile
-rw-r--r--.  1 wyr  wyr   124 May 11  2016 .bashrc
drwxr-xr-x.  3 wyr  wyr  4096 Jan 26 11:52 .cache
drwxr-xr-x.  5 wyr  wyr  4096 Jan 26 11:17 .config
drwx------.  3 wyr  wyr  4096 Jan 26 11:17 .dbus
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Desktop
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 12:00 Documents
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Downloads
-rw-------.  1 wyr  wyr    16 Jan 26 11:17 .esd_auth
drwx------.  4 wyr  wyr  4096 Jan 26 14:42 .gconf
drwx------.  2 wyr  wyr  4096 Jan 26 14:57 .gconfd
drwxr-xr-x.  6 wyr  wyr  4096 Jan 26 11:52 .gnome2
drwx------.  2 wyr  wyr  4096 Jan 26 11:52 .gnome2_private
drwxrwxr-x.  3 wyr  wyr  4096 Jan 26 11:17 .gnote
drwx------.  2 wyr  wyr  4096 Jan 26 14:42 .gnupg
-rw-rw-r--.  1 wyr  wyr   127 Jan 26 14:42 .gtk-bookmarks
drwx------.  2 wyr  wyr  4096 Jan 26 11:17 .gvfs
-rw-------.  1 wyr  wyr   930 Jan 26 14:42 .ICEauthority
-rw-r--r--.  1 wyr  wyr   631 Jan 26 14:42 .imsettings.log
drwxr-xr-x.  3 wyr  wyr  4096 Jan 26 11:17 .local
drwxr-xr-x.  5 wyr  wyr  4096 Jan 26 11:52 .mozilla
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Music
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 .nautilus
drwxrwxr-x.  2 wyr  wyr  4096 Jan 26 11:55 .oracle_jre_usage
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Pictures
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Public
drwx------.  2 wyr  wyr  4096 Jan 26 11:17 .pulse
-rw-------.  1 wyr  wyr   256 Jan 26 11:17 .pulse-cookie
drwx------.  2 wyr  wyr  4096 Jan 26 16:28 .ssh
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Templates
drwxr-xr-x.  2 wyr  wyr  4096 Jan 26 11:17 Videos
-rw-------.  1 wyr  wyr  1193 Jan 26 17:58 .viminfo
-rw-------.  1 wyr  wyr   110 Jan 26 17:58 .Xauthority
-rw-------.  1 wyr  wyr  2722 Jan 26 14:57 .xsession-errors
-rw-------.  1 wyr  wyr  4407 Jan 26 12:27 .xsession-errors.old
[wyr@hadoop101 ~]$ 
[wyr@hadoop101 ~]$ vim .bashrc

在文件尾部添加 “source /etc/profile” :

# .bashrc# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fi# User specific aliases and functions
source /etc/profile

在hadoop102虚拟机上通过ssh hadoop101 jps 再次直接执行hadoop101虚拟机上的jps命令,成功。

[wyr@hadoop102 ~]$ ssh hadoop102 jps
3655 Jps
[wyr@hadoop102 ~]$ 

4、编写 “集群分发文件” 脚本:xsync.sh

  1. scp(安全拷贝):全量复制

    scp -r  源文件用户名A@主机名1:path1    目标文件用户名B@主机名2:path2
    
     -r: 递归,复制目录如果从本机执行读取或写入,用户名B@主机名2:可以省略!在主机1上,使用A用户读取path1的文件,再使用用户B登录到主机2,在主机2的path2路径执行写入!要求: 用户名A@主机名1 对path1有读权限用户名B@主机名2 对path2有写权限
    
  2. rsync (远程同步):可以只同步变化的文件(对比文件的修改时间)!增量同步!

    rsync -rvlt   path1    目标文件用户名B@主机名2:path2
    
     -r: 递归,复制目录-v: 显示复制的过程-l:  同步软连接-t:  基于文件的修改时间进行对比,只同步修改时间不同的文件只能将本机的文件同步到其他机器!注意:  rsync -rvlt   path1    目标文件用户名B@主机名2:path2path1是个目录,目录以/结尾,只会同步目录中的内容,不会同步目录本身!path1是个目录,目录不以/结尾,同步目录中的内容,也会同步目录本身!
    
  3. 编写同步脚本xsync:将当前机器的文件,同步到集群所有机器的相同路径下!

     hadoop102:/A/a , 执行脚本后,将此文件同步到集群中所有机器的 /A/a用户在使用xsync时,只需要传入要同步的文件即可xysnc a 不管a是一个相对路径还是绝对路径,都需要将a转换为绝对路径!文件的绝对路径:  父路径:  dirpath=$(cd `dirname /home/atguigu/hi`; pwd -P)文件名:  filename=`basename hi`核心命令:  for(())dorsync -rvlt   path1 done
    

在Linux系统中的vim编辑器中编写,如果用window系统编写后直接上传,会出问题。doc下的文本内容格式和unix下的格式有所不同,比如dos文件传输到unix系统时,会在每行的结尾多一个^M结束符。

在第二台Linux虚拟机hadoop102的/home/wyr目录中创建xsync.sh脚本

#!/bin/bash
#校验参数是否合法
#"$#"功能:获取所有输入参数个数,用于循环
if(($#==0))
thenecho 请输入要分发的文件!exit;
fi
#获取分发文件的绝对路径
dirpath=$(cd `dirname $1`; pwd -P)
filename=`basename $1`echo 要分发的文件的路径是:$dirpath/$filename#循环执行rs

这篇关于大数据-Hadoop-搭建(一):搭建Hadoop完全分布式集群(在VMware中的Linux虚拟机)【CentOS6】【独立安装Apache Hadoop】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128910

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na