linux大数据相关集群部署

一、linux的安装配置

1、 安装虚拟机(VMware)

在本机上安装VMware,此处为Vmware压缩包(包括安装包以及注册码)

链接:https://pan.baidu.com/s/1OKYP-UOpAWpcEITQfkVQTA 密码:mwi7

2、新建linux虚拟机

首先进入vmware界面后,workstation->文件->新建虚拟机出现右图界面,里面提示选择安装镜像或者稍后安装。跟着引导一直走,设置内存、占用硬盘空间等。(注:如果用于开发硬盘空间可以开大些,不然只能后面进行硬盘扩容,然后把格式化后将相应的空间挂载在各节点上

3、linux minimal安装

有兴趣自己安装一个minimal的同学可以参考此处https://www.kafan.cn/edu/488101.html

4、安装后的基本配置

1.启动网卡(默认网卡是不启动的)

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=no 改为 yes

#service network restart 重启网络

2.配置sshd

mini默认安装sshd,

/etc/hosts.deny 和 /etc/hosts.allow 最后都加上一句 sshd:ALL ,保存

#service sshd restart

3.关闭selinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。

SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。

SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。所以我们选择把 SELinux 关闭。

#vi /etc/selinux/config

SELINUX=enforcing 改成 SELINUX=disabled,保存。

重启系统 reboot

4.配置yum源

# yum -y install wget  //安装下载工具

# cd /etc/yum.repos.d/    //进入yum配置文件目录

# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo  //下载网易的源配置文件

导入CentOS-6的GPG证书

#rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6  //这句可用可不用

在所有mirrorlist前面加上#,把所有$releasever替换成6,保存

#sed -i '/mirrorlist/d' CentOS-Base-163.repo

#sed -i '/

/,/^$/d' CentOS-Base-163.repo

#sed -i 's/\$releasever/6/' CentOS-Base-163.repo

#sed -i 's/RPM-GPG-KEY-CentOS-5/RPM-GPG-KEY-CentOS-6/' CentOS-Base-163.repo

# mv CentOS-Base.repo CentOS-Base.repo.bak  //备份旧的配置文件

# mv CentOS6-Base-163.repo CentOS-Base.repo  //把下载的配置文件改名# yum clean all  //清理缓存

# yum makecache  //更新缓存

# yum update  //更新系统

5.安装常用软件包(vim,gcc)

yum -y install vim

yum -y install gcc gcc-c++ make

5、可能出现的问题

1、打开虚拟机出现如图错误弹窗

原因:本机的的虚拟化未开启,需要进入bios ,enable VT,使电脑支持虚拟化。
解决方法:进入bios,enable VT如下


2、开机启动不了,卡在进度条,进不去系统

解决方法:左图时按下e,进入系统编辑模式,选定系统后继续按下e,到kernel按e编辑系统开机选项:
去掉rhgb:禁止图片来代替启动过程中的信息(方便观察系统启动进程卡在了哪一步)
在quiet后加1:进入单用户模式(在不能进入多用户系统时以此来调试,如果上一步已经确定卡住的步骤,可以进入的单用户模式停止该进程再重启查看具体的报错日志进行调试)
修改后回车退出,按下b重启


6、Centos minimal配置IP

1、自动获取IP地址

虚拟机使用桥接模式,相当于连接到物理机的网络里,物理机网络有DHCP服务器自动分配IP地址。

vi  /etc/sysconfig/network-scripts/ifcfg-eth0//进入网卡配置文件

ONBOOT=yes//设置启动网卡

BOOTPROTO=dhcp//此处设置为自动获取ip



2、手动设置ip地址

为了防止异常导致的linux地址段变化,我们有时需要将手动配置linux的ip
vi编辑网卡的配置文件
IPADDR=192.168.4.10//本机ip地址
NETMASK=255.255.255.0//掩码
GATEWAY=192.168.4.1//网关
另外光标移动到”ONBOOT=no”这一行,更改为ONBOOT=yes
“BOOTPROTO=dhcp”,更改为BOOTPROTO=none
设置DNS地址,运行命令   #vi /etc/resolv.conf
添加nameserver=192.168.62.2//表示域名
(注意:每次修改配置完成后记得重启服务呀:service network restart,配完记得ping一下)

二、linux学习

1、linux规划


2、根目录下各级目录作用

b/bin 二进制可执行命令。该目录下存放着普通用户的命令
/dev 系统的设备文件,即设备的驱动程序
/home 用户主目录的基点
/lost-found 这个目录平时是空的,当系统非正常关机而留下的“无家可归”的文件便会储存在这里
/misc 储存着一些特殊的字符的定义
/net 存放着和网络相关的一些文件
/proc 存放着用户与内核的交互信息
/sbin 系统的管理命令,这里存放的是系统管理员使用的程序
/srv 系统启动服务时可以访问的数据库目录
/tmp 临时文件,重启后自动清空
/var 某些大文件的溢出区,比如各种服务的日志文件
/boot 启动linux的核心文件
/etc 系统所有的配置文件都在这个目录中
/lib 存放着和系统运行相关的库文件
/media 存放着可移除的设备,比如软盘,光盘
/mnt 挂载目录,是系统管理员临时安装文件的系统安装点
/opt (option : 自由选择)主要给源码安装软件时选择的安装目录位置
/root 超级用户的目录
/selinux 主要用来加固操作系统,提高系统的安全性
/sys 管理设备文件

/usr 最大的目录,存放着应用程序和文件

3、系统的运行级别

linux系统中通常有0-6,共7个运行级别:
0 停机
1 单用户模式,用于root用户对系统进行维护,不允许其他用户使用主机
2 多用户模式,在该模式下不能使用NFS
3 完全多用户模式,主机作为服务器时通常在该模式下
4 未分配使用
5 图形登录的多用户模式,用户在该模式可进行图形登录界面
6 重新启动
vi /etc/inittab修改系统的运行级别

4、服务的启动状态和配置命令

命令:chkconfig
查看服务启动状态#chkconfig –list 服务名称
设置独立服务的启动状态#chkcofig –level 运行级别列表 服务名称
on|off|reset
//指定可以设置指定服务在指定与运行级别中的启动状态
设置非独立服务的启动状态#chkonfig 服务器 on|off|reset
重新启动服务

5、linux常用指令

常用
ls                  显示文件或目录
mkdir                创建目录
cd                      切换目录
cat                     查看文件内容
cp                      拷贝
mv                     移动或重命名
rm                      删除文件
find                    在文件系统中搜索某文件
grep                   在文本文件中查找某个字符串
rmdir                  删除空目录
pwd                    显示当前目录
ln                        创建链接文件
more、less         分页显示文本文件内容
ctrl+alt+F1         命令行全屏模式
mount                挂载


系统管理指令:

lsof -i                  显示端口占用情况
stat                     显示指定文件的详细信息,比ls更详细
whoami              显示当前操作用户
hostname           显示主机名
uname                显示系统信息
top                     动态显示当前耗费资源最多进程信息
df                       查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig              查看网络情况
ping                   测试网络连通
netstat               显示网络状态信息
man                   命令不会用了,找男人  如:man ls
clear                  清屏
kill                     杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。

压缩包的处理:

gzip
bzip2
tar                     

用户管理:

userdel               删除用户
adduser              增加用户
groupadd           增加用户组
groupdel            删除用户组
passwd               给用户设置密码
su root               切换到root

其他:

shutdown -h now    立即关机
reboot               关机重启vim使用
startx                 开启图形界面

三种基本权限:

R           读         数值表示为4
W          写         数值表示为2
X           可执行  数值表示为1

三、大数据集群部署

1、Hadoop介绍


Hadoop生态图
2、Hadoop运行原理

1、在HDFS中有两种节点,分别是NameNodeDataNodeNameNode负责集群中与存储相关的调度,DataNode负责具体的存储任务。具体来说NameNode维护了整个文件系统的元数据信息,这些信息以两种形式的文件存储,一种是镜像文件(image文件),另一种是编辑日志(edit log)。NameNode会在文件系统启动时,动态地加载这些文件到内存中以响应客户端的读写请求。

2、DataNode

用来执行具体的存储任务:存储文件块。另外它也会定时的通过心跳向NameNode报告自己的状态(包括存储的文件块的信息)。

3、NameNode的安全模式:

在启动NameNode后,它会进入安全模式,所谓安全模式是指,在此期间它会接收DataNode的心跳包及块的状态信息,以此来判断块的副本安全性。在达到一定比例的块副本安全性时,NameNode将退出安全模式。

4、NameNode的安全保障:

 NameNode的作用在HDFS的集群中显而易见。一般而言,有两种机制来保证其自身及其上数据的安全。一种是同步转储其上的元数据文件。

5、JobTracker

接受作业提交,监控和控制作业运行,负责将任务分发到TaskTracker节点

6、TaskTracker

控制Map/Reduce任务中当前节点的运行

3、Hadoop Yarn

1.ResourceManagerRM

RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器

2. ApplicationMasterAM

用户提交的每个应用程序均包含1AM,主要功能包括:与RM调度器协商以获取资源(用Container表示);将得到的任务进一步分配给内部的任务;与NM通信以启动/停止任务;监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

3.NodeManagerNM

NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AMContainer启动/停止等各种请求。

4. Container

ContainerYARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AMRM申请资源时,RMAM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

上图描述了YARN的基本组成结构,YARN主要由ResourceManagerNodeManagerApplicationMaster(图中给出了MapReduceMPI两种计算框架的ApplicationMaster,分别为MR AppMstrMPI AppMstr)和Container等几个组件构成。YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManagerMasterNodeManagerSlaveResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的任务。由于不同的ApplicationMaster被分布到不同的节点上。

4、zookeeper介绍


1. 关键节点的运行实例(或服务器),可以跑多个,这些实例中的数据完全是相同的(即:对等设计),每个实例启动后,向ZK注册一个临时顺序节点,比如 /core-servers/server0000001, /core-servers/server0000002 ... ,最后的顺序号是由ZK自动递增的

2. 其它应用需要访问1中的核心服务器里,可以事先约定好,从ZK的这些临时节点中,挑选一个序号最小(或最大,看个人喜欢,一般选最小)的节点,做为主服务器(即master)

3. 当master宕掉时,超过一定的时间阈值,临时节点将由ZK自动删除,这样原来序列最小的节点也就没了,客户端应用按2中的约定找最小节点的服务器时,自动会找到原来次最小的节点,继续充为master,即实现了故障转换。如果原来出问题的master恢复了,重新加入ZK,由于顺序号是一直递增,重新加入后,它将做为备胎待命。
5、Wordcount(统计词频)

1、map过程


2、reduce过程


3、主函数部分实现以及数据流


6、Hadoop集群搭建(完全分布式)

1、集群基本设置
hostname     IP             Role
master        192.168.62.102          ResourceManager/NameNode/SecondaryNameNode
slave1        192.168.62.124         NodeManager/DataNode
slave2        192.168.62.125         NodeManager/DataNode

2、 相关下载
(1)JDK下载地址
(2)Hadoop下载
(3)Zookeeper下载

3、 配置hosts
vi /etc/hosts(实际操作时根据自己电脑上的ip配置)
192.168.62.102         master
192.168.62.103           slave1
192.168.62.104           slave2
改好后scp命令进行复制配置文件到其他节点

4、配置ssh免密码登录
ssh-keygen -t rsa
密钥文件位于~/.ssh文件
在Hadoop1上生产一对钥匙,将公钥拷贝到其他节点,包括自己,执行命令:
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

5、相关配置文件修改
core-site.xml修改
    fs.default.name</name>// 定义master的URI和端口
    hadoop.tmp.dir//临时文件夹,Hadoop的运行时文件存放路径
对hdfs-site.xml修改(主要是用来指定集群中数据块的副本系数)
    dfs.name.dir//存贮在本地的NN数据镜象的目录,作为NN的冗余备份
    dfs.data.dir//DN数据保存
    dfs.replication
    dfs.datanode.data.dir
    dfs.namenode.name.dir
    dfs.webhdfs.enabled
    dfs.http.address
对mapred-site.xml修改
           mapred.job.tracker//作业跟踪管理器是否和MR任务在一个进程中
    mapreduce.framework.name
     mapreduce.job.tracker.http.address
    mapreduce.task.tracker.http.address

hdfs-site.xml

yarn-site.xml

core-site.xml   

 slaves

7、HBase集群搭建(完全分布式)

1、Zookeeper 配置:(也可以跳过这一步骤,使用hbae自带的zookeeper)
    (1)  Zookeeper服务集群规模不小于三个节点,要求各服务之间系统时间要保持一致。
    (2)在m1的usr/local目录下,解压缩zookeeper(执行命令tar –zvxf zookeeper.tar.gz)
    (3)设置环境变量
    (4)在解压后的zookeeper的目录下进入conf目录修改配置文件
更名操作:mv zoo_sample.cfg zoo.cfg
    (5)  编辑zoo.cfg (vi zoo.cfg)
            修改dataDir=/usr/local/program/zookeeper/data/
            新增server.0=master:2888:3888
                   server.1=slave1:2888:3888
                   server.2=slave2:2888:3888

        这三行为配置zookeeper集群的机器(master、slave1、slave2)分别用server.0和server.1、server.2标识,2888和3888为端口号(zookeeper集群包含一个leader(领导)和多个fllower(随从),启动zookeeper集群时会随机分配端口号,分配的端口号为2888的为leader,端口号为3888的是fllower)
    (6) 创建文件夹mkdir /usr/local/program/zookeeper/data
    (7)在data目录下,创建文件myid,值为0  (0用来标识m1这台机器的zookeeper )
到此为止 master上的配置就已经完成;接下来配置slave1和slave2.
      (8)把zookeeper目录复制到s1和s2中(scp –r /usr/local/program/zookeeper s1:/usr/local/program/zookeeper)
    (9)把修改后的etc/profile文件复制到slave1和slave2

2、HBase配置

    (1) 修改文件$HBASE_HOME/conf/hbase-env.sh
    (2)修改文件hbase-site.xml
    (3)hbase的机群搭建过程(在原来的master上的hbase伪分布基础上进行搭建)
    (4) 集群结构,主节点(master)是master,从节点(region server)是slave1和slave2
    (5)修改master上的hbase的几个文件
        修改hbase-env.sh的最后一行export HBASE_MANAGES_ZK=false//设置不使用自带ZooKeeper
        修改hbase-site.xml文件的hbase.zookeeper.quorum的值为master,slave1,slave2
        修改regionservers文件(存放的region server的hostname),内容修改为slave1、slave2
    (6) 复制master中的hbase文件夹到slave1、slave2中        
    复制master中的/etc/profile到slave1、slave2中,在slave1、slave2上执行source /etc/profile
    (7)启动集群
        首先启动hadoop(在master上start-all.sh),
        然后启动zookeeper集群(分别在三台机器上zkServer.sh  start;可以使用zkServer.sh status查看zk的状态)。
        最后在master上启动hbase集群(start-hbase.sh)。

hbase-site.xml  

hbase-env.sh(这里HBase_MANAGES_ZK设置为使用自带的zookeeper)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值