基于linux搭建集群详解(带图)适合小白

    xiaoxiao2022-07-14  195

    @[TOC]基于hadoop的大数据集群搭建 一、 软件安装目录及版本信息: 3

    软件安装目录及版本信息: 4 1.1 Jdk:jdk1.8.0_131 4 1.2 Hadoop:hadoop-2.8.2 4 1.3 mysql:5.5.47 4 1.4 Flume:apache-flume-1.6.0-bin 4 1.5 Storm:apache-storm-1.1.3 4 1.6 Hbase:hbase-1.2.6 4 1.7 Hive:apache-hive-1.2.0-bin 4 1.8 Redis:redis-4.0.12 4 1.9 Spark:spark-2.3.0-bin-hadoop2.6 4 1.10 Elasticsearch:elasticsearch-6.3.2 4 1.11 Azkaban:azkaban-db-0.1.0-SNAPSHOT 4 二、 安装VMware 虚拟机(centos6,cntos7) 5 三、 进行系统设置 30 (1) VMware虚拟机NAT模式上网设置 30 a. 虚拟机安装好后 30 b. 设置虚拟机NAT模式的网段 31 c. 编辑物理机的虚拟网卡地址(VMnet8) 31 1> .选择自动获取ip地址 31 2> .windows下查看本机ip 31 d. 编辑虚拟机的网卡IP地址,然后重启网卡服务让其生效。 32 1. 安装RZ传输软件 34 2. 使用rz软件传输软件包到 /opt下(路径自己选择) 34 3. 将各软件包传输到linux下 /opt 34 (6) 配置jdk环境(这里选的是jdk8) 34 四、 虚拟机克隆 35 五、 软件安装 36安装zookeeper 36安装Hadoop HA 39 a、 core-site.xml(common属性配置) 39 b、 配置hdfs-site.xml文件 40 c、 配置mapred-site.xml文件 41 d、 yarn-site.xml(关于yarn相关配置) 41 e、 配置slaves文件 指定datanode(从机相关配置ip,hostname) 41 f、 配置hadoop-env.sh文件 41安装 Mysql 44 (1) 从新创建/克隆一个虚拟机(参照上文虚拟机克隆或者创建) 44 (2) 安装mysql 44 i. 更改密码 45 j. 设置所有机器访问mysql权限 45 a. 查看mysql有关依赖: 45 b. 删除原有mysql依赖: 45 c. 安装mysql客户端: 46 d. 安装mysql服务端: 46 e. 查询mysql的服务状态: 46 f. 启动mysql服务: 46 g. 设置开机自启mysql 46 h. 进入mysql 46 i. 更改密码 46 j. 设置所有机器访问myql权限 46 1.1. 安装 Hive(注:Hive只需在一个节点上安装) 46 (1) Hive和hadoop关系 46 (2) 将压缩文件进行解压 46 (3) 将hive解压包移到/usr/house/hive下 47 (4) 设置hive的环境变量 47 (5) 配置hive-site.xml文件 47 (6) 配置hive-env.sh文件 47 (7) Mysql可以创建单独的hive用户(安装mysql的节点上操作) 47 (8) 验证(启动hive服务时要先启动hadoop服务) 48安装 Hbase(伪分布式单节点安装) 48 (1) 解压hbase安装包 (/opt) 48 (2) 将hbase解压包移到/usr/house/hbase下 48 (3) 配置hbase-env.sh文件添加如下 48 (4) 配置hbase-site.xml文件 49 (5) 配置regionserver文件 49 (6) 将hbase拷贝到2,3号机器(/usr/house/hbase) 49 (7) 验证(启动hbase服务在HMaster所在机器操作) 49安装 Storm(三节点安装) 51 (1) 解压storm安装包(/opt) 51 (2) 将storm解压包移到/usr/house/storm 51 (3) 新建storm文本存储路径 51 (4) 配置storm.yaml配置文件 51 (5) 将storm复制到其他机器上(/usr/house/storm/) 52 (6) 验证(启动storm服务) 52安装 Spark(三节点安装) 52 (1) 解压spark安装包 (/opt) 52 (2) 将spark解压包移到/usr/house/spark 53 (3) 配置spark配置文件 53 (4) 将spark安装包拷贝到2,3号机(usr/house/spark) 53 (5) 启动spark服务(HA) 53安装 Redis(单节点安装) 541.安装curl 56安装RVM 56查看rvm库中已知的ruby版本 56安装一个ruby版本(可离线安装) 56查看Ruby版本 57安装Redis库 57安装 Elasticsearch(三节点安装) 58 a、创建elasticsearch用户 58 b、为elasticsearch设置密码 58 c、创建一个用户组 es 58安装 Azkaban (单节点安装) 60 (1) 解压azkaban安装包(/opt) 60 (2) 将azkaban解压包移到/usr/house/azkaban 60 (3) 配置mysql数据库(mysql.icccuat机器上) 60 (4) 配置azkaban文件 61 (5) 将conf 和plugins下的文件传输到exec-server同等目录下 63 (6) 启动web-server 63 (7) 启动 exec-server 63安装sqoop(单节点安装) 63Kafka安装(三节点安装) 64 5:开启consumer消费者(三台机子上都可以) 65 6:关闭kafka 65Flume安装(单节点安装) 66 (1) 解压flume安装包(/opt) 66 (2) 将flume解压包移到/usr/house/flume 66 (3) 配置环境变量 66 (4) 验证flume(查看flume版本) 66rocketMQ安装(单master安装单节点) 66 (1) Maven安装 66 (2) 安装rocketMQ 66 一、软件安装目录及版本信息: 1.软件安装目录及版本信息: 1.1Jdk:jdk1.8.0_131 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.2Hadoop:hadoop-2.8.2 下载地址: https://archive.apache.org/dist/hadoop/common/ 1.3mysql:5.5.47 下载地址: https://download.csdn.net/download/zmc921/9930540 1.4Flume:apache-flume-1.6.0-bin 下载地址: https://www.apache.org/dist/flume/1.6.0/ 1.5Storm:apache-storm-1.1.3 下载地址: http://storm.apache.org/downloads.html 1.6Hbase:hbase-1.2.6 下载地址: http://archive.apache.org/dist/hbase/1.2.6/ 1.7Hive:apache-hive-1.2.0-bin 下载地址: http://archive.apache.org/dist/hive/ 1.8Redis:redis-4.0.12 1.9Spark:spark-2.3.0-bin-hadoop2.6 下载地址: http://archive.apache.org/dist/spark/spark-2.3.0/ 1.10Elasticsearch:elasticsearch-6.3.2 下载地址: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-3-2 1.11 Azkaban:azkaban-db-0.1.0-SNAPSHOT azkaban-exec-server-0.1.0-SNAPSHOT azkaban-solo-server-0.1.0-SNAPSHOT azkaban-web-server-0.1.0-SNAPSHOT 1.11Zookeeper:zookeeper-3.4.7 下载地址: http://archive.apache.org/dist/zookeeper/ 1.12sqoop:sqoop-1.4.7.bin__hadoop-2.6.0 下载地址: http://mirror.klaus-uwe.me/apache/sqoop/1.4.7/ 1.13kafka:kafka_2.11-0.10.2.1 下载地址: http://kafka.apache.org/downloads 1.14rocketMQ:alibaba-rocketmq-3.2.6-alibaba-rocketmq

    二、安装VMware 虚拟机(centos6,cntos7) 虚拟机:VMware workstation11 Linux系统:CentOS-6.5-x86_64-bin-DVD1.iso 选择 新建虚拟机 选择 自定义 选择 稍后安装操作系统 选择 linux Centos64位 选定存储地址 Cpu颗数 默认内存1g 选择仅主机模式 磁盘50G(自行分配) 完成 编辑虚拟机设置 选择ISO镜像文件(CentOS-7-x86_64-DVD.iso,CentOS-6.5-x86_64-bin-DVD1.iso)选其一 开机 选 第一个 Skip跳过下一步 英语

    英语 选择基础存储设备 不保存任何数据

    主机名称 默认

    时区 选 亚洲 上海 Root 管理员密码 选择自定义磁盘

    创建boot分区 一般300Mb 创建swap分区 一般是内存的2倍 创建/ 根分区 格式化硬盘 下一步 桌面即可 可以自定义安装包

    在语言上 选中中文支持

    重启

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190523215533729.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQzMjU5Nw==,size_16,color_FFFFFF,t_70 继续

    同意

    继续

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190523215630596.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQzMjU5Nw==,size_16,color_FFFFFF,t_70 是 日历

    完成 登录

    完成 以下-------- 虚拟机:VMware workstation12 Linux系统:CentOS-7.1-x86_64-bin-DVD1.iso

    选择 新建虚拟机 选择 自定义 选择 稍后安装操作系统 选择 linux Centos64位 选定存储地址 Cpu颗数 默认内存1g 选择仅主机模式 磁盘50G(自行分配) 完成 编辑虚拟机设置 选择ISO镜像文件(CentOS-7-x86_64-DVD.iso,CentOS-6.5-x86_64-bin-DVD1.iso)选其一 开机 选择第一项,安装centos7 回车进入下一个界面

    选择语言:中文-简体中文(中国) #正式生产服务器建议安装英文版本 继续 选择-其它存储选项-分区-我要配置分区,点左上角的“完成”,进入下面的界面 分区前先规划好 点左下角的“+”号新建三个挂载点(根据实际情况划分) swap [size 2048M] / [看容量 45G] /boot [300M] 点左上角的“完成”,进入下面的界面

    接受更改,进入下面的界面

    开始安装 #注意“软件”“软件选择”,默认是最小安装,即不安装桌面环境,可以自己设置。 进入下面的界面 选择-用户设置-ROOT密码,进入下面的界面 设置root用户密码 #如果密码长度小于8位,会提示输入两次来确认,继续安装 完成之后点击‘重启’ 账号输入root后回车,再输入root密码回车,系统登录成功 **

    三、进行系统设置

    (1) VMware虚拟机NAT模式上网设置 a. 虚拟机安装好后 虚拟机上会有3个虚拟的交换机(即三种网络模式:桥接模式、NAT模式和仅主机模式。)注:编辑项的虚拟网络编辑器选项 物理机上会有3个虚拟网卡(即物理机连接虚拟交换机所需要的对应的网卡。) 我们这里用c位地址 即192.0.0.0-239.255.255.255之间 b. 设置虚拟机NAT模式的网段 c. 编辑物理机的虚拟网卡地址(VMnet8) 1>.选择自动获取ip地址 2>.windows下查看本机ip

    虚拟机ip设置与本机ip统一网段(后期虚拟机配置用到) d. 编辑虚拟机的网卡IP地址,然后重启网卡服务让其生效。 设置IP地址,网关DNS(说明:CentOS7.0之后默认安装是没有开启自动开启网络连接的) (1) 配置文件ifcfg-ens33的路径: /etc/sysconfig/network-scripts/ (2) 修改命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33 (3) ifcfg-ens33配置:

    # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`/usr/bin/id -u` UID=`/usr/bin/id -ru` fi USER="`/usr/bin/id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi # Path manipulation if [ "$EUID" = "0" ]; then pathmunge /usr/sbin pathmunge /usr/local/sbin else pathmunge /usr/local/sbin after pathmunge /usr/sbin after fi HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=1000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell # Current threshold for system reserved uid/gids is 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null fi fi done unset i unset -f pathmunge export JAVA_HOME=/usr/house/jdk/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH export HADOOP_HOME=/usr/house/hadoop/hadoop-2.8.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export PATH=$PATH:$ZOOKEEPER_HOME/bin export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR" export ZOOKEEPER_HOME=/usr/house/zookeeper/zookeeper-3.4.7 export HIVE_HOME=/usr/house/hive/apache-hive-1.2.0-bin export PATH=$PATH:$HIVE_HOME/bin: export HBASE_MANAGES_ZK=false export FLUME_HOME=/usr/house/flume/apache-flume-1.6.0-bin export PATH=$PATH:$FLUME_HOME/bin: export SQOOP_HOME=/usr/house/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SQOOP_HOME/bin: export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/house/hive/apache-hive-1.2.0-bin/lib/* export ZOOKEEPER_INSTALL=/usr/house/zookeeper/zookeeper-3.4.7 export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

    注: 具体配置项解析: TYPE=Ethernet # 网络类型(通常为Ethernet)以太网 PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none #IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)这里使用none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6是否有效(yes/no) IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=825ef5f3-a1e6-4717-9c56-f113978e0967 #虚拟机唯一性标识,后期克隆时注意修改uuid中其中一个字符确保其唯一性 DEVICE=ens33 接口名(设备,网卡) ONBOOT=yes #系统启动时网络接口是否有效(yes/no) IPADDR=192.168.127.21 #ip ip与物理机ip网段一致 如192.168.127.xxx xxx自己定,区间为nat模式DHCP设置的区间 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.127.2 #网关 这里为默认网关 与你的物理机所在网段一直 如xxx.xxx.xxx.2 DNS1=8.8.8.8 #主的DNS DNS2=114.114.114.114 #备用DNS

    (4) 编辑完成输入’wq’保存退出 (5) 重启网卡指令:service network restart (6) 按照以上步骤即可实现NAT模式,如果ping不通,关闭防火墙。 (2) 关闭防火墙 (1) 查看防火墙:# firewall-cmd --state (2) 关闭防火墙:# systemctl stop firewalld.service (3) 禁止firewall开机启动:# systemctl disable firewalld.service

    (3) 设置hostname 修改命令:vi /etc/hostname (4) 设置hosts配置主机名和ip映射

    在window下设置hosts配置主机名和ip映射 a. Window7下路径:C:\Windows\System32\drivers\etc b. Window10下直接打开是不能更改的 解决:将hosts文件复制到桌面(当然你可以复制到你想复制的地方),然后打开hosts文件,添加内容,然后将写好的hosts文件Ctrl c,再次打开此路径C:\Windows\System32\drivers\etc ,Ctrl v 将文件粘贴到里边,提醒你有个一样的要不要替换目标文件。选择替换,OK!

    在linux下设置hosts配置主机名和ip映射 修改命令:# vi /etc/hosts 注:方便后期克隆,ip 名称已经全部补全,克隆完成后在三台虚拟 机上互相ping通其他ip段虚拟机 (5) 连接filezilla传输rz 1.安装RZ传输软件 安装命令:# rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm

    2.使用rz软件传输软件包到 /opt下(路径自己选择) 注:Rz是一款远程连接传输软件,实现远程拖拽 3.将各软件包传输到linux下 /opt (6) 配置jdk环境(这里选的是jdk8) 安装命令:# tar -zxvf jdk-8u131-linux-x64.tar.gz 配置命令:# vi /etc/profile 添加内容:(修改为自己的实际路径) 刷新: profile:source /etc/profile 验证:java -version

    # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`/usr/bin/id -u` UID=`/usr/bin/id -ru` fi USER="`/usr/bin/id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi # Path manipulation if [ "$EUID" = "0" ]; then pathmunge /usr/sbin pathmunge /usr/local/sbin else pathmunge /usr/local/sbin after pathmunge /usr/sbin after fi HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=1000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell # Current threshold for system reserved uid/gids is 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null fi fi done unset i unset -f pathmunge export JAVA_HOME=/usr/house/jdk/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH export HADOOP_HOME=/usr/house/hadoop/hadoop-2.8.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin export PATH=$PATH:$ZOOKEEPER_HOME/bin export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR" export ZOOKEEPER_HOME=/usr/house/zookeeper/zookeeper-3.4.7 export HIVE_HOME=/usr/house/hive/apache-hive-1.2.0-bin export PATH=$PATH:$HIVE_HOME/bin: export HBASE_MANAGES_ZK=false export FLUME_HOME=/usr/house/flume/apache-flume-1.6.0-bin export PATH=$PATH:$FLUME_HOME/bin: export SQOOP_HOME=/usr/house/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SQOOP_HOME/bin: export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/house/hive/apache-hive-1.2.0-bin/lib/* export ZOOKEEPER_INSTALL=/usr/house/zookeeper/zookeeper-3.4.7 export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

    四、虚拟机克隆

    安装完centos后,右键虚拟机,选择管理->克隆

    启动克隆后的虚拟机进行配置

    配置/etc/sysconfig/network-scripts/ifcfg-ens33文件 注:修改UUID[ 随便更改其中一个字母或数字即可确保三台UUID唯一],IPADDR[192.168.127.22/192.168.127.23…]

    修改/etx/hostname 命令:# vi /etc/hostname 注:hostname 中名称为唯一 否则会出错

    查看IP信息 #ip addr

    为三台机器设置免密登陆 a. 生成ssh免登陆密钥【一直回车】 命令:# ssh -keygen -t rsa 注:执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公 钥)将公钥拷贝到要免密登陆的目标机器上[生成文件路径~/.sh] b. 将公匙拷贝到免密登陆的目标机器上[生成文件路径 ~/.sh] 命令:# ssh-copy-id hadoop03.icccuat 五、软件安装

    ----- 软件安装分到另一个文档,方便维护管理

    最新回复(0)