离线部署 hadoop2.6.5+hive1.2.0+flink1.72

首先要有三台虚拟机

环境

系统:centos7-1908
hadoop:2.6.5
hive:1.2.0
flink:1.7.2

配置

查看虚拟网络编辑器
在这里插入图片描述
查看自己的子网
在这里插入图片描述
查看子网的网段
在这里插入图片描述
可以将ip设置为192.168.32.128192.168.32.254之间。
在这里插入图片描述
我的网关是192.168.32.2

/etc/sysconfig/network-scripts/ifcfg-ens33配置好网络,保证节点之间可以互通。

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
## ip为固定
BOOTPROTO=static
##
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9c52ecdf-605b-4728-8e84-10c786436b95
DEVICE=ens33
ONBOOT=yes
##新增的
##ip
IPADDR=192.168.32.200
##子网掩码
NETMASK=255.255.255.0
##网关
GATEWAY=192.168.32.2

此时配置好之后输入

## 使配置生效
source /etc/sysconfig/network-scripts/ifcfg-ens33
## 重启网络
systemctl restart network
## 设置开机启动网络
systemctl enable network

然后ping一下主机ip是否能ping通

创建软件仓库

将镜像文件中的Packages包上传到一台虚拟机中(可使用filezilla),我放到了/data下

cd /data

rpm -ivh  apr-1.4.8-5.el7.x86_64.rpm 
rpm -ivh  apr-util-1.5.2-6.el7.x86_64.rpm 
rpm -ivh  httpd-tools-2.4.6-90.el7.centos.x86_64.rpm 
rpm -ivh  mailcap-2.1.41-2.el7.noarch.rpm
rpm -ivh  httpd-2.4.6-90.el7.centos.x86_64.rpm

启动httpd进程,并设置为开机自启

systemctl   start    httpd
systemctl   enable   httpd
rpm -ivh  deltarpm-3.6-3.el7.x86_64.rpm 
rpm -ivh  python-deltarpm-3.6-3.el7.x86_64.rpm 
rpm -ivh  libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm 
rpm -ivh  libxml2-2.9.1-6.el7_2.3.x86_64.rpm 
rpm -ivh  createrepo-0.9.9-28.el7.noarch.rpm

由于http工作目录是/var/www/html/,但是软件包又在硬盘(/data)上,所以需要建一个类似于快捷方式的文件,把软件包“放”到http的工作目录。该工作目录的权限至少需要600,建议为755。

cd  /var/www/html/
mkdir  /var/www/html/centos7/
ln -s  /data/Packages   /var/www/html/centos7/packages
chmod 755 -R /var/www/html/centos7/packages
createrepo  /var/www/html/centos7/packages

测试是否创建成功

setenforce 0 
systemctl   stop    firewalld ##关闭防火墙

打开浏览器http://你的IP/centos7/packages/是否能看到包的内容并可以下载,如果可以表示创建成功。

配置repo文件

cd /etc/yum.repos.d/
mkdir  bak
mv CentOS-*.repo  bak/
vi  base.repo

将以下内容放进来

[base]
name=CentOS-Packages
baseurl=http://你的IP/centOS7/packages/
gpgkey=
path=/
enabled=1
gpgcheck=0
## 清理yum缓存
yum clean all
## 重新构建yum缓存
yum makecache
## 在可用的源(base.repo)中查找可用的vim
yum list|grep vim 

能显示出可用的vim就算是安装成功了

修改主机名称

在第一个节点
将主机名设置为node1

hostnamectl --static set-hostname node1

在第二个节点设置为node2

hostnamectl --static set-hostname node2

在第三个节点设置为node3

hostnamectl --static set-hostname node3

可通过hostname命令查看是否修改成功。虽然命令行还没有改过来。(重启之后命令行就改过来了)

修改hosts文件
vi  /etc/hosts
127.0.0.1	localhost
192.168.32.200	node1
192.168.32.201	node2
192.168.32.202	node3
关闭防火墙
## 关闭防火墙
systemctl stop firewalld.service
## 开机就关闭
systemctl disable firewalld.service
## 查看防火墙状态
systemctl status firewalld.service
禁用SELinux
## 先临时禁用SELinux
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g'   /etc/selinux/config
sed -i 's/^SELINUX=.*/SELINUX=disabled/g'   /etc/sysconfig/selinux
## 重启
reboot
cat  /etc/selinux/config|grep SELINUX=

如果显示disabled说明操作成功

配置ssh免密登录

在所有主机

cd
ssh-keygen -t  rsa
## 需要连续按三下enter

在node1主机

scp /root/.ssh/id_rsa.pub root@node1:/root/1.pub

在node2主机

scp /root/.ssh/id_rsa.pub root@node2:/root/2.pub

在node3主机

scp /root/.ssh/id_rsa.pub root@node3:/root/3.pub

在node1主机

cat /root/*.pub  >> /root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys  root@node2:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys  root@node3:/root/.ssh/authorized_keys

测试一下ssh 是都配置成功
在node1节点

ssh node2

查看是否成功登陆node2节点

时间同步

所有主机安装
首先在所有主机安装ntp

## 安装ntp服务
yum -y install ntp
## 备份原有文件
cp /etc/ntp.conf /etc/ntp.conf.bak

在node1节点
修改配置文件

vi  /etc/ntp.conf

将一下内容注释掉

# 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 127.127.1.1

重启ntpd进程

systemctl restart ntpd
systemctl enable ntpd

在node2和node3节点

ntpdate hadoop1
vi /etc/ntp.conf 

加入以下内容

  # 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 node1

在node2,node3节点启动ntp

systemctl restart ntpd
systemctl enable ntpd
关闭THP
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
修改swappiness
echo "vm.swappiness=0" >> /etc/sysctl.conf 
sysctl -p    ##让配置生效
cat /proc/sys/vm/swappiness
安装jdk

下载jdk的rpm安装包

所有节点都要安装jdk

rpm -ivh   jdk-8u131-linux-x64.rpm

/etc/profile配置一些java_home

vi /etc/profile 

加入以下内容

export JAVA_HOME=/usr/java/jdk1.8.0_144
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
java -version

如果能查看到jdk的信息就成功了

安装MariaDB(MySQL)

只需一台节点安装,为了保存hive的元数据信息

yum -y install  mariadb-server   mariadb

开启服务并设置为开机自启

systemctl start mariadb.service
systemctl enable mariadb.service

第一次登录没有密码,直接按enter继续

设置密码

mysql -u root -p
use mysql;
update user  set  password=password( '123456' ) where user= 'root' ;
 grant all privileges on *.* to root@'%' identified by '123456';
 grant all privileges on *.* to root@'node1' identified by '123456';
 grant all privileges on *.* to root@'localhost' identified by '123456';
 
 FLUSH PRIVILEGES;

修改编码

cp /etc/my.cnf /etc/my.cnf.bak
vi  /etc/my.cnf

在[mysqld]下加入下面内容

character_set_server = utf8 
保存

重启数据库

systemctl restart mariadb 
安装MySQL驱动

所有主机都要安装

yum -y install mysql-connector-java
安装其他依赖
yum -y install psmisc
yum -y install perl
yum -y install  nfs-utils  portmap
systemctl start rpcbind
systemctl enable rpcbind
创建数据库和用户

登录mysql

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;


CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive'; 
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost'; 
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive'; 
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%'; 
CREATE USER 'hive'@'node1'IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'node1';
alter database hive character set latin1
 FLUSH PRIVILEGES;
安装Hadoop

下载Hadoop的安装包
将其上传到node1并解压到/opt/softwares下
tar -zxvf hadoop-2.6.5.tar.gz -C /opt/softwares

vi etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/xxx你的目录

配置etc/hadoop/core-site.xml
在configuration下加入

## 指定了namenode的节点
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/opt/softwares/hadoop-2.6.5/data/tmp</value>
</property>

配置etc/hadoop/hdfs-site.xml

## 副本数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
# 外部程序操作hdfs时需要获取权限
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
## 指定secondarynamenode节点
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:50090</value>
</property>

配置etc/hadoop/mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
## 配置historyserver 可以查看历史记录
<property>
<name>mapreduce.jobhistory.address</name>
<value>node2:10020</value>
</property>
## 查看日志的端口
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node2:19888</value>
</property>

配置etc/hadoop/yarn-site.xml

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
## 指定resourcemanager节点
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node2</value>
</property>
## 日志聚集功能开启
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
## 日志文件保存的时间,以秒为单位
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>640800</value>
</property>

<property>
<name>yarn.log.server.url</name>
<value>http://node2:19888/jobhistory/logs</value>
</property>

<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

配置slaves

vi slaves

加入

node1
node2
node3

将配置好的hadoop分发到各个节点

scp -r /opt/softwares/hadoop-2.6.5 root@node2:/opt/softwares
scp -r /opt/softwares/hadoop-2.6.5 root@node3:/opt/softwares
启动hadoop

首次启动需要初始化

bin/hdfs namenode -formatcat

这时候会出现shut down namenode xxx这是正常现象

在NameNode(node1)节点的hadoop目录下启动hdfs

sbin/start-dfs.sh

在resourcemanager(node2)节点启动yarn

sbin/start-yarn.sh

访问node1:50070
node2:8088

如果能看到网页就说明安装成功啦

安装hive

安装hive,只需要在一个节点安装就可以了(服务端)即可。
1.下载软件包
archive.apache.org/dist/
2.上传到节点并解压
3.配置环境变量,hive加入/etc/profile
4.修改配置文件
1.hive-env.sh中添加信息;
export JAVA_HOME=…
export HADOOP_HOME=…
export HIVE_HOME=…
2.hive-log4j.properties
修改
log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
3.在conf中新建文件hive-site.xml

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node1:3306/hive?createDatabaseIfNotExist=true</value>
#链接数据库,数据库是hadoop1的hive数据库,如果不存在就创建。
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
#mysql的链接驱动
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
#连接数据库的用户名
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
#链接数据库的密码
</property>
</configuration>

4.把hive/lib下的jline2.12拷贝到hadoop下的share/hadoop/yarn/lib/下,若存在旧版本就 把旧版本删除。
5把刚下载的mysql-connector这个jar包,拷贝到hive下的lib下(/usr/share/java/mysql-connector-java.jar)(因为要连接mysql)
6.启动Hive
hive

安装Flink

在这里插入图片描述
在清华源下载,比较快
https://www.apache.org/dyn/closer.lua/flink/flink-1.7.2/flink-1.7.2-bin-hadoop26-scala_2.11.tgz

将压缩包上传到node1节点

修改flink/conf/flink-conf.yaml,注意:和空格不要丢了

## 设置jobmanager.rpc.address: node1

修改conf/slaves
加入

node2
node3

将flink包分发给其他两台节点

scp -r flink-1.7.2 root@node2:/opt/softwares/
scp -r flink-1.7.2 root@node3:/opt/softwares/

启动flink

bin/start-cluster.sh

访问node1:8081
如果能看到flink说明standalong模式的flink安装成功啦

搭建yarn模式

./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d

-n(--container):TaskManager的数量。
-s(--slots):	每个TaskManager的slot数量,默认一个slot一个core,默认每个taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余。
-jm:JobManager的内存(单位MB)。
-tm:每个taskmanager的内存(单位MB)。
-nm:yarn 的appName(现在yarn的ui上的名字)。 
-d:后台执行。

可能会报错
在yarn.site.xml中加入以下配置

<property>  
    <name>yarn.nodemanager.vmem-check-enabled</name>  
    <value>false</value>  
</property>  

重启一下hadoop集群

再执行上述的命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值