大数据开发环境的搭建(原生版)

集群环境搭建

1:注意事项

1.1 windows系统确认所有的关于VmWare的服务都已经启动

大数据开发环境的搭建(原生版)_第1张图片

1.2 确认好VmWare生成的网关地址
大数据开发环境的搭建(原生版)_第2张图片
1.3 确认VmNet8网卡已经配置好了IP地址和DNS

大数据开发环境的搭建(原生版)_第3张图片

2:复制虚拟机

2.1 将虚拟机文件夹复制三份,并分别重命名, 并使用VM打开重命名

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

2.2分别设置三台虚拟机的内存

  • 需要三台虚拟机, 并且需要同时运行, 分别设置为 4 2 2
  • 在分配的时候, 需要在总内存大小的基础上, 减去2G-4G作为系统内存, 剩余的除以3, 作为每台虚拟机的内存

3:启动虚拟机并修改Mac和IP

3.1 集群规划

IP 主机名 环境配置 安装
192.168.69.101 CDH1 关防火墙和selinux, host映射, 时钟同步 JDK, NameNode, ResourceManager, Zookeeper
192.168.69.102 CDH2 关防火墙和selinux, host映射, 时钟同步 JDK, DataNode, NodeManager, Zookeeper
192.168.69.103 CDH3 关防火墙和selinux, host映射, 时钟同步 JDK, DataNode, NodeManager, Zookeeper

3.2 :设置ip和Mac地址

配置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33 分别修改IPADDR=192.168.69.(101、102、103)
大数据开发环境的搭建(原生版)_第4张图片
使用service network restart加载网络配置信息
使用xshell连接虚拟机修改主机名称分别为CDH1、CDH2、CDH3

vi /etc/hostname

在这里插入图片描述

reboot重启虚拟机
修改C:\Windows\System32\drivers\etc|host文件最下面添加ip地址映射进去如下图
在这里插入图片描述

vim /etc/hosts

大数据开发环境的搭建(原生版)_第5张图片

3.3 linux系统重启

关机重启linux系统即可进行联网了使用ping命令查看虚拟机是否能联网(例: ping www.baidu.com)

第二台第三台机器重复上述步骤,并设置IP网址为192.168.69.102,192.168.69.103

4:三台虚拟机关闭防火墙

将ntp enabled 改为yes

timedatectl set-ntp yes

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

5.3 三台机器机器免密码登录

  • 为什么要免密登录
    • Hadoop 节点众多, 所以一般在主节点启动从节点, 这个时候就需要程序自动在主节点登录到从节点中, 如果不能免密就每次都要输入密码, 非常麻烦
  • 免密 SSH 登录的原理
    1. 需要先在 B节点 配置 A节点 的公钥
    2. A节点 请求 B节点 要求登录
    3. B节点 使用 A节点 的公钥, 加密一段随机文本
    4. A节点 使用私钥解密, 并发回给 B节点
    5. B节点 验证文本是否正确
    6. 配置时间同步

配置CDH1对CDH1、CDH2、CDH3三台服务器免密登录。
1)生成公钥和私钥:
[root@CDH1 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上
[root@CDH1 .ssh]$ ssh-copy-id CDH1(输入yes和CDH1密码)
[root@CDH1 .ssh]$ ssh-copy-id CDH2
[root@CDH1 .ssh]$ ssh-copy-id CDH3
3)重复1和2的操作,配置CDH2和CDH3对CDH1、CDH2、CDH3三台服务器免密登录。

5.4三台机器时钟同步

  • 为什么需要时间同步
    • 因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是 1, B节点 记录的时间是 2, 就会出问题

配置时间同步

yum install ntp

将ntp enabled 改为yes

timedatectl set-ntp yes

date查看时间

6:装辅助软件

6.1 每台主机安装jdk

查看自带的openjdk

rpm -qa | grep java

卸载系统自带的openjdk

rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps

上传jdk并解压然后配置环境变量

所有软件的安装路径

mkdir -p /export/servers

所有软件压缩包的存放路径

mkdir -p /export/softwares

安装上传工具

yum -y  install  lrzsz

使用rz -E命令把jdk的压缩包上传到/expoort/softwores中。

解压

tar -zxvf jdk-8u141-linux-x64.tar.gz -C ../servers/

配置环境变量

vim /etc/profile

export JAVA_HOME=/export/servers/jdk1.8.0_141
export PATH=:$JAVA_HOME/bin

5、编写集群同步脚本(cd /bin) vi xsync

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((CDH=1; host<4; host++)); do
        echo ------------------- CDH$host --------------
        rsync -av $pdir/$fname $user@CDH$host:$pdir
done

修改脚本 xsync 具有执行权限 chmod 777 xsync

6、在三台服务器端分别安装rsync yum -y install rsync
7、将CDH1 中的JDK和环境变量分发到CDH2、CDH3两台主机

xsync /export/service
xsync /etc/profile
修改完成之后记得 source /etc/profile生效(java-version查看版本)

6.2、mysql的安装

yum install wget

推荐在浏览器上下载速度快些

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-el7-x86_64.tar.gz

解压

tar -zxvf mysql-5.7.27-el7-x86_64.tar.gz

更改目录名

mv mysql-5.7.27-el7-x86_64 mysql-5.7
  1. 安装脚本
vim /usr/local/src/mysql_install.sh
#!/bin/sh

REMOVE=`rpm -qa | grep -i mariadb-libs`
# 编译
yum remove $REMOVE -y
yum install libaio -y
yum -y install numactl.x86_64

DIRNAME='mysql-5.7'

# 下载
mv $DIRNAME mysql
mv mysql /usr/local/

useradd -s/sbin/nlogin -M mysql
id mysql

mkdir /usr/local/mysql/{data,log}
chown -R mysql.mysql /usr/local/mysql/

# 编辑my.cnf
cat << EOF > /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
 
[mysqld]
server_id=10
port = 3306
user = mysql
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data/
pid-file = /usr/local/mysql/data/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
log-bin=mysql-bin
#####====================================[innodb]==============================
innodb_buffer_pool_size = 1024M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
innodb_data_file_path=ibdata1:1024M:autoextend
 
#####====================================[log]==============================
log_error = /usr/local/mysql/log/mysql-error.log 
slow_query_log = 1
long_query_time = 1 
slow_query_log_file = /usr/local/mysql/log/mysql-slow.log
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
 
# 初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp

# 授权
chown -R mysql:mysql /usr/local/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql
cp /usr/local/mysql/bin/* /usr/local/sbin/

mkdir -p /etc/systemd/system/mysqld.service.d
cat << EOF > /etc/systemd/system/mysqld.service.d/mysqld.service

# systemctl启动脚本
[Service]
LimitNOFILE=max_open_files
PIDFile=/usr/local/mysql/data/mysql.pid
Nice=nice_level
LimitCore=core_file_limit
Environment="TZ=time_zone_setting"
EOF

systemctl daemon-reload

添加执行权限

chmod +x /usr/local/src/mysql_install.sh

执行

/usr/local/src/mysql_install.sh
  1. 设置root的登录
    通过第二步的安装脚本,最后打印了mysql初始化时设置的临时密码。例如:xhuEw4uG94_l

2019-08-19T10:43:48.999107-00:00 1 [Note] A temporary password is generated for root@localhost: xhuEw4uG94_l

使用这个临时密码登录

mysql -uroot -p

修改root密码

mysql>set password =password(‘123456’);

7.2 Zookeeper安装

服务器IP 主机名 myid的值
192.168.69.101 CDH1 1
192.168.69.102 CDH2 2
192.168.69.103 CDH3 3

第一步:下载zookeeeper的压缩包,下载网址如下

http://archive.apache.org/dist/zookeeper/

我们在这个网址下载我们使用的zk版本为3.4.9

下载完成之后,上传到我们的linux的/export/softwares路径下准备进行安装

第二步:解压

解压zookeeper的压缩包到/export/servers路径下去,然后准备进行安装

cd /export/software

tar -zxvf zookeeper-3.4.10.tar.gz -C ../servers/ 

第三步:修改配置文件

第一台机器修改配置文件

cd /export/servers/zookeeper-3.4.10/conf/

cp zoo_sample.cfg zoo.cfg

mkdir -p /export/servers/zookeeper-3.4.10/data/

vim zoo.cfg

dataDir=/export/servers/zookeeper-3.4.10/data
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=CDH1:2888:3888
server.2=CDH2:2888:3888
server.3=CDH3:2888:3888

第四步:添加myid配置

在第一台机器的

/export/servers/zookeeper-3.4.10/zkdatas /这个路径下创建一个文件,文件名为myid ,文件内容为1

echo 1 > /export/servers/zookeeper-3.4.10/zkdatas/myid

第五步:安装包分发并修改myid的值

安装包分发到其他机器(xsync /export/servers)

第一台机器上面执行以下两个命令(或者)

scp -r /export/servers/zookeeper-3.4.10/ CDH2:/export/servers/

scp -r /export/servers/zookeeper-3.4.10/ CDH3:/export/servers/

第二台机器上修改myid的值为2

echo 2 > /export/servers/zookeeper-3.4.10/data/myida

第三台机器上修改myid的值为3

echo 3 > /export/servers/zookeeper-3.4.10/data/myid

第六步:三台机器启动zookeeper服务

三台机器启动zookeeper服务

这个命令三台机器都要执行

/export/servers/zookeeper-3.4.10/bin/zkServer.sh start

查看启动状态

/export/servers/zookeeper-3.4.10/bin/zkServer.sh status


Hadoop安装

上传hadoop-2.7.5.tar.gz到/export/software
解压 tar -zxvf hadoop-2.7.5.tar.gz -C /export/servers/
将配置文件拷贝到/export/servers/hadoop-2.7.5/etc/hadoop/
安装包的分发
第一台机器执行以下命令
第三步:配置hadoop的环境变量
三台机器都要进行配置hadoop的环境变量
三台机器执行以下命令
配置完成之后生效
第四步:启动集群
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。 注意: 首次启动 HDFS 时,必须对
其进行格式化操作。 本质上是一些清理和 准备工作,因为此时的 HDFS 在物理上还是不存在
的。
hdfs namenode -format 或者 hadoop namenode –format
准备启动
第一台机器执行以下命令

vim /etc/profile

export HADOOP_HOME=/export/servers/hadoop-2.7.5
export PATH=: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH

source /etc/profile
cd /export/servers/hadoop-2.7.5/
bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/mr-jobhistory-daemon.sh start historyserver

三个端口查看界面
http://CDH1:50070/explorer.html#/ 查看hdfs
http://CDH2:8088/cluster 查看yarn集群
http://CDH3:19888/jobhistory 查看历史完成的任务

你可能感兴趣的:(原生版本)