hadoopHA部署

This is about hadoop HA

Posted by PsycheLee on 2017-09-08

hadoopHA部署

1.阿里云三台机器 按量付费

1.1window的hosts文件

C:\Windows\System32\drivers\etc\HOSTS

外网ip 机器名称

停机不收费 ,其实只是收费极低

1.2 运行hostname lxl001命令修改主机名

linux的hosts文件 /etc/hosts,三个机器名都需要追加到三台机器的hosts文件
追加 内网IP 机器名称

1.3阿里云安全组端口打开

2.安装上传下载工具

yum install -y lrzsz命令

3. 创建用户和目录

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@lixuelian001 ~]# useradd bigdata
[root@lixuelian001 ~]# su - bigdata
[bigdata@lixuelian001 ~]$ mkdir software app tmp data log lib shell sourcecode
[bigdata@lixuelian001 ~]$ ll
total 32
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 app
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 data
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 lib
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 log
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 shell
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 software
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 sourcecode
drwxrwxr-x 2 bigdata bigdata 4096 Jan 17 10:38 tmp

4. 上传安装包

jdk-8u45-linux-x64
hadoop-2.6.0-cdh5.16.2.tar.gz
zookeeper-3.4.5-cdh5.16.2.tar.gz

使用rz或者scp * 用户名@内网ip:/home/bigdata/software

5.配置信任关系

5.1三台机器都执行ssh-keygen,回车

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@lixuelian001 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e0:33:75:eb:88:32:39:23:67:78:71:0d:cd:2c:e7:81 root@lixuelian001
The key's randomart image is:
+--[ RSA 2048]----+
| |
| = |
| E B . |
| . O o . |
| . = S . |
| . + + o |
| o X . . . |
| = = |
| |
+-----------------+
[root@lixuelian001 ~]# ll -a
total 48
dr-xr-x---. 5 root root 4096 Jan 17 10:26 .
dr-xr-xr-x. 18 root root 4096 Jan 17 10:06 ..
-rw------- 1 root root 36 Jan 17 10:26 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
drwx------ 3 root root 4096 Aug 17 2017 .cache
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
drwxr-xr-x 2 root root 4096 Aug 17 2017 .pip
-rw-r--r-- 1 root root 64 Aug 17 2017 .pydistutils.cfg
drwx------ 2 root root 4096 Jan 17 11:02 .ssh
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
[root@lixuelian001 ~]# cd .ssh
[root@lixuelian001 .ssh]# ll
total 8
-rw------- 1 root root 0 Jan 17 10:06 authorized_keys
-rw------- 1 root root 1679 Jan 17 11:02 id_rsa
-rw-r--r-- 1 root root 399 Jan 17 11:02 id_rsa.pub

5.2将002和003生成的.pub文件传给001,并且将三个机器的.pub文件追加到001的authorized_key上

1
2
3
4
5
6
7
8
9
10
11
12
13
[bigdata@lixuelian002 ~]# cd .ssh
[bigdata@lixuelian002 .ssh]# ll
total 8
-rw------- 1 bigdata bigdata 0 Jan 17 10:06 authorized_keys
-rw------- 1 bigdata bigdata 1679 Jan 17 11:02 id_rsa
-rw-r--r-- 1 bigdata bigdata 399 Jan 17 11:02 id_rsa.pub
[bigdata@lixuelian002 .ssh]# scp id_rsa.pub lixuelian001:~/.ssh/id_rsa.pub2
The authenticity of host 'lixuelian001 (172.24.12.86)' can't be established.
ECDSA key fingerprint is 13:66:1d:e0:67:9c:56:ff:69:20:8b:33:05:97:51:63.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'lixuelian001,172.24.12.86' (ECDSA) to the list of known hosts.
root@lixuelian001's password:
id_rsa.pub

003同样操作,查看001

1
2
3
4
5
6
7
[bigdata@lixuelian001 .ssh]# ll
total 16
-rw------- 1 bigdata bigdata 0 Jan 17 10:06 authorized_keys
-rw------- 1 bigdata bigdata 1679 Jan 17 11:02 id_rsa
-rw-r--r-- 1 bigdata bigdata 399 Jan 17 11:02 id_rsa.pub
-rw-r--r-- 1 bigdata bigdata 399 Jan 17 11:11 id_rsa.pub2
-rw-r--r-- 1 bigdata bigdata 399 Jan 17 11:11 id_rsa.pub3
1
2
3
[bigdata@lixuelian001 .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[bigdata@lixuelian001 .ssh]# cat ~/.ssh/id_rsa.pub2 >> ~/.ssh/authorized_keys
[bigdata@lixuelian001 .ssh]# cat ~/.ssh/id_rsa.pub3 >> ~/.ssh/authorized_keys

5.3将authorized_key传给002和003

1
2
[bigdata@lixuelian001 .ssh]# scp authorized_keys lixuelian002:~/.ssh/authorized_keys
[bigdata@lixuelian001 .ssh]# scp authorized_keys lixuelian003:~/.ssh/authorized_keys

5.4 文档权限

1
2
3
[bigdata@lixuelian001 .ssh]$ chmod 0600 ~/.ssh/authorized_keys
[bigdata@lixuelian002 .ssh]$ chmod 0600 ~/.ssh/authorized_keys
[bigdata@lixuelian003 .ssh]$ chmod 0600 ~/.ssh/authorized_keys
  1. 5 验证 [无需输入密码就成功]
1
2
3
4
5
6
[bigdata@lixuelian001 .ssh]# ssh lixuelian001 date
Sun Jan 17 11:30:14 CST 2021
[bigdata@lixuelian001 .ssh]# ssh lixuelian002 date
Sun Jan 17 11:30:17 CST 2021
[bigdata@lixuelian001 .ssh]# ssh lixuelian003 date
Sun Jan 17 11:30:19 CST 2021

6.安装JDK

注意解压安装到/usr/java/

1
2
3
4
5
6
7
8
[root@lixuelian001 software]# mkdir /usr/java     

[root@lixuelian001 software]# tar -xzvf jdk-8u45-linux-x64.gz -C /usr/java/

[root@lixuelian003 software]# cd /usr/java
[root@lixuelian003 java]# ll
total 4
drwxr-xr-x 8 10 143 4096 Apr 11 2015 jdk1.8.0_45

解压后修改文件所属用户和用户组

1
[root@lixuelian003 java]# chown -R root:root jdk1.8.0_45

配置环境变量

/etc/profile

1
2
3
4
5
6
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH

[root@lixuelian001 software]# source /etc/profile
[root@lixuelian001 software]# which java
/usr/java/jdk1.8.0_45/bin/java

7.安装zookeeper

使用bigdata用户

1.解压

1
2
3
4
5
[bigdata@lixuelian001 software]$  tar -xzvf zookeeper-3.4.5-cdh5.16.2.tar.gz -C ~/app/
[bigdata@lixuelian001 software]$ cd ~/app
[bigdata@lixuelian001 app]$ ll
total 4
drwxr-xr-x 14 bigdata bigdata 4096 Jun 3 2019 zookeeper-3.4.5-cdh5.16.2

检查文件权限

2.建立软连接

1
2
3
4
5
[bigdata@lixuelian001 app]$ ln -s zookeeper-3.4.5-cdh5.16.2/ zookeeper
[bigdata@lixuelian001 app]$ ll
total 4
lrwxrwxrwx 1 bigdata bigdata 26 Jan 17 13:10 zookeeper -> zookeeper-3.4.5-cdh5.16.2/
drwxr-xr-x 14 bigdata bigdata 4096 Jun 3 2019 zookeeper-3.4.5-cdh5.16.2

3.修改配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[bigdata@lixuelian001 zookeeper]$ mkdir data
[bigdata@lixuelian001 zookeeper]$ cd conf
[bigdata@lixuelian001 conf]$ ll
total 12
-rw-rw-r-- 1 bigdata bigdata 535 Jun 3 2019 configuration.xsl
-rw-rw-r-- 1 bigdata bigdata 2693 Jun 3 2019 log4j.properties
-rw-rw-r-- 1 bigdata bigdata 922 Jun 3 2019 zoo_sample.cfg
[bigdata@lixuelian001 conf]$ cp zoo_sample.cfg zoo.cfg
[bigdata@lixuelian001 conf]$ vi zoo.cfg
#修改dataDir文件路径
dataDir=/home/bigdata/app/zookeeper/data
#追加
server.1=hadoop001:2888:3888
server.2=hadoop002:2888:3888
server.3=hadoop003:2888:3888

3.创建myid文件

1
2
3
4
5
6
7
#在上面写的dataDir文件路径下创建
[bigdata@lixuelian001 data]$ touch myid
[bigdata@lixuelian001 data]$ echo 1 > myid
[bigdata@lixuelian001 data]$ cat myid
1
002和003 分别追加echo 2 和 echo 3 到myid
命令">"前后必须要有空格,
  1. 配置环境变量

  2. 启动

1
2
3
4
5
6
7
8
[bigdata@lixuelian003 bin]$ sh zkServer.sh start
JMX enabled by default
Using config: /home/bigdata/app/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[bigdata@lixuelian003 bin]$ sh zkServer.sh status
JMX enabled by default
Using config: /home/bigdata/app/zookeeper/bin/../conf/zoo.cfg
Mode: leader

另外两台mode是follower

8.安装Hadoop

1.解压,创建软连接

1
2
3
[bigdata@lixuelian001 app]$ tar -xzvf hadoop-2.6.0-cdh5.16.2.tar.gz -C ~/app/

[bigdata@lixuelian001 app]$ ln -s hadoop-2.6.0-cdh5.16.2 hadoop

2.修改hadoop-env.sh

1
2
3
进入目录/home/bigdata/app/hadoop/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_45

3.修改

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

salves

  1. 如果copy Windows的文件到linux, 使用dos2unix+文件名的命令 解决格式问题

9.启动

1.启动日志节点

1
2
3
4
5
6
7
8
[bigdata@lixuelian001 hadoop]$ cd ~/app/hadoop/sbin
[bigdata@lixuelian001 sbin]$ sh hadoop-daemon.sh start journalnode
starting journalnode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-journalnode-lixuelian001.out
[bigdata@lixuelian001 sbin]$ jps
19520 Jps
19132 QuorumPeerMain
19471 JournalNode
[bigdata@lixuelian001 sbin]$
  1. 格式化

    001进行namenode

    1
    2
    3
    4
    [bigdata@lixuelian001 bin]$ sh hadoop namenode -format
    ...
    21/01/17 14:48:31 INFO common.Storage: Storage directory /home/bigdata/data/dfs/name has been successfully formatted.
    ...

    将001的元数据传输到002

1
2
[bigdata@lixuelian001 bin]$ scp -r /home/bigdata/data/dfs
root@lixuelian002:/home/bigdata/data

3.初始化ZKFC,仅需在001上执行

1
2
3
[bigdata@lixuelian001 bin]$ sh hdfs zkfc -format

21/01/17 14:57:13 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/lixuelianclusterg10 in ZK.21/01/17 14:57:13 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/lixuelianclusterg10 in ZK.

4.启动hdfs,在一台机器上启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[bigdata@lixuelian001 ~]$ cd app/hadoop/sbin/
[bigdata@lixuelian001 sbin]$ sh start-dfs.sh
which: no start-dfs.sh in (/usr/java/jdk1.8.0_45/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bigdata/.local/bin:/home/bigdata/bin)
21/01/17 16:24:39 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [lixuelian001 lixuelian002]
lixuelian001: starting namenode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-namenode-lixuelian001.out
lixuelian002: starting namenode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-namenode-lixuelian002.out
lixuelian001: starting datanode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-datanode-lixuelian001.out
lixuelian003: starting datanode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-datanode-lixuelian003.out
lixuelian002: starting datanode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-datanode-lixuelian002.out
Starting journal nodes [lixuelian001 lixuelian002 lixuelian003]
lixuelian002: journalnode running as process 21411. Stop it first.
lixuelian001: starting journalnode, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-journalnode-lixuelian001.out
lixuelian003: journalnode running as process 20590. Stop it first.
21/01/17 16:24:54 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting ZK Failover Controllers on NN hosts [lixuelian001 lixuelian002]
lixuelian002: zkfc running as process 21491. Stop it first.
lixuelian001: starting zkfc, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/hadoop-bigdata-zkfc-lixuelian001.out
[bigdata@lixuelian001 sbin]$ jps
25412 NameNode
25898 DFSZKFailoverController
25754 JournalNode
19132 QuorumPeerMain
25549 DataNode
25950 Jps
  1. 002机器也是一样的进程

  2. 页面查看

    Windows的hosts配置了, 可直接访问机器名

    http://lixuelian001:50070/

    http://lixuelian002:50070/

    一个active 一个standby

  3. 启动yarn

    001

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [bigdata@lixuelian001 sbin]$ sh start-yarn.sh
    starting yarn daemons
    which: no start-yarn.sh in (/usr/java/jdk1.8.0_45/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bigdata/.local/bin:/home/bigdata/bin)
    starting resourcemanager, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/yarn-bigdata-resourcemanager-lixuelian001.out
    lixuelian002: starting nodemanager, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/yarn-bigdata-nodemanager-lixuelian002.out
    lixuelian003: starting nodemanager, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/yarn-bigdata-nodemanager-lixuelian003.out
    lixuelian001: starting nodemanager, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/yarn-bigdata-nodemanager-lixuelian001.out
    [bigdata@lixuelian001 sbin]$ jps
    25412 NameNode
    26057 ResourceManager
    26378 Jps
    25898 DFSZKFailoverController
    25754 JournalNode
    26155 NodeManager
    19132 QuorumPeerMain
    25549 DataNode

    002

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [bigdata@lixuelian002 sbin]$ sh yarn-daemon.sh start resourcemanager
    which: no yarn-daemon.sh in (/usr/java/jdk1.8.0_45/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bigdata/.local/bin:/home/bigdata/bin)
    starting resourcemanager, logging to /home/bigdata/app/hadoop-2.6.0-cdh5.16.2/logs/yarn-bigdata-resourcemanager-lixuelian002.out
    [bigdata@lixuelian002 sbin]$ jps
    22578 Jps
    21411 JournalNode
    21491 DFSZKFailoverController
    22388 NodeManager
    22165 DataNode
    19189 QuorumPeerMain
    22523 ResourceManager
    22046 NameNode

    页面查看

    http://lixuelian001:8088/

    http://lixuelian002:8088/cluster/cluster