hadoop生态搭建

news/2024/7/5 10:12:22

分布式笔记

1.配置网络,设置静态IP地址

vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

IPADDR=192.168.87.130

NETMASK=255.255.255.0

GATEWAY=192.168.87.2

DNS1=192.168.87.2

提示:init 3  命令行模式   init 5 桌面模式

2.配置主机名(所有虚拟机都需要设置)

vi /etc/hostname

hostnamectl set-hostname master

3.配置主机名映射表(所有虚拟机都需要设置)

vi /etc/hosts

添加如下内容:#以table分隔

192.168.87.130  master

192.168.87.131  slave01

192.168.87.132  slave02

4.免密登录(都是在master上进行)

生成秘钥  ssh-keygen -t rsa

添加秘钥  ssh-copy-id -i root@master

               ssh-copy-id -i root@slave01

               ssh-copy-id -i root@slave02

5.安装jdk(所有虚拟机都需要安装)

解压:tar -zxvf software/jdk-8u112-linux-x64.tar.gz

改名:mv jdk1.8.0_112/ jdk

6.安装hadoop(在master操作)

解压:tar -zxvf software/hadoop-3.2.1.tar.gz

改名:mv hadoop-3.2.1.tar.gz / hadoop

7.配置环境变量与权限

vi /etc/profile.d/hadoop-eco.sh

#添加如下内容

#权限问题

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

#环境变量

JAVA_HOME=/opt/jdk

PATH=$JAVA_HOME/bin:$PATH

HADOOP_HOME=/opt/hadoop

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

8.配置Hadoop是配置文件

(1)hadoop-env.sh

         export JAVA_HOME=/opt/jdk

     

  (2) core-site.xml

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>file:///opt/hadoop/hadoop-record/tmp</value>

    </property>

</configuration>

   (3) hdfs-site.xml

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>

    <property>

        <name>dfs.namenode.name.dir</name>

        <value>file:///opt/hadoop/hadoop-record/name</value>

     </property>

     <property>

        <name>dfs.datanode.data.dir</name>

        <value>file:///opt/hadoop/hadoop-record/data</value> 

     </property>

     <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>master:9001</value>

     </property>

</configuration>

   (4)mapred-site.xml

<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

    <property>

        <name>mapreduce.application.classpath</name>

        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>

    </property>

</configuration>

   (5)yarn-site.xml

<configuration>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <property>

        <name>yarn.nodemanager.env-whitelist</name>

        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>

    </property>

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>master</value>

  </property>

</configuration>

   (7)workers (slaves)

   

   slave01

   slave02

9.远程拷贝(jdk、hadoop、环境变量、主机名映射表)

#拷贝jdk

scp -r /opt/jdk/ root@slave01:/opt/

scp -r /opt/jdk/ root@slave02:/opt/

#拷贝hadoop

scp -r /opt/hadoop/ root@slave01:/opt/

scp -r /opt/hadoop/ root@slave02:/opt/

#环境变量

scp -r /etc/profile.d/hadoop-eco.sh root@slave01:/etc/profile.d/

scp -r /etc/profile.d/hadoop-eco.sh root@slave02:/etc/profile.d/

#主机名映射表

scp -r /etc/hosts root@slave01:/etc/

scp -r /etc/hosts root@slave02:/etc/

10.重启所有机器

11.格式化namenode

hdfs  namenode -format

12.启动集群

start-dfs.sh

start-yarn.sh

start-all.sh

12.验证

IP:9870 

IP:8088

IP:19888  服务需要启动:mapred --daemon start historyserver

ZooKeeper安装

1.配置Zookeeper环境

     解压:

     opt]# tar -zxvf soft/zookeeper-3.4.5.tar.gz

     修改下文件夹名

     mv zookeeper-3.4.5/ zookeeper/

     配置环境变量

     vi /etc/profile.d/hadoop-eco.sh 添加一下内容

     ZOOKEEPER_HOME=/opt/zookeeper

     PATH=$PATH:$ZOOKEEPER_HOME/bin

 2.对zk进行配置:

     cp zoo_sample.cfg  zoo.cfg

      对zoo.cfg配置文件进行修改

     dataDir=/opt/zookeeper/data

     server.100=master:2888:3888

     server.101=worker01:2888:3888

     server.102=worker02:2888:3888

     创建文件夹:

     cd /opt/zookeeper/

     mkdir -m 777 data

     在data文件夹下新建myid文件,myid的文件内容为:编号

     touch data/myid

     echo 100 > data/myid

     cat data/myid

3.  远程拷贝到其他机器

     scp -r zookeeper/ root@worker01:/opt/

     scp -r zookeeper/ root@worker02:/opt/

     在其基础之上修改myid

4.启动Zookeeper

     zkServer.sh start|status|stop

Kafka安装

1.下载安装包

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

2.解压

tar -zxvf software/kafka_2.12-2.4.1.tgz

3.重命名

mv kafka_2.12-2.4.1/ kafka

4.配置环境变量

vi /etc/profile.d/hadoop-eco.sh

KAFKA_HOME=/opt/kafka

PATH=$KAFKA_HOME/bin:$PATH  

5.修改配置文件:server.properties

#配置broker.id,在集群环境中broker.id是唯一的,不可重复

broker.id=0 (注意编号)

#kafka log数据的存放目录

log.dirs=/opt/kafka/data

#zookeeper服务地址      

zookeeper.connect=master:2181,worker01:2181,worker02:2181

6. 远程拷贝到其他机器

     scp -r kafka/ root@worker01:/opt/

     scp -r kafka/ root@worker02:/opt/

7.启动集群

(1)先启动ZooKeeper集群(所有节点都需要启动)

zkServer.sh start

zkServer.sh status

(2)再启动Kafka集群(所有节点都需要启动)

kafka-server-start.sh -daemon /opt/kafka/config/server.properties

(3)测试kafka

创建topic

kafka-topics.sh --zookeeper master:2181 --create --topic message --partitions 1 --replication-factor 2

一)HBase安装

1.配置HBase

(1)上传HBase压缩文件到soft目录。

(2)解压HBase压缩文件到opt目录,并将hbase-2.2.3-bin.tar.gz目录变为hbase。

                cd  /opt

            tar  -zxvf  soft/hbase-2.2.3-bin.tar.gz

            mv  hbase-2.2.3  hbase

  (3)配置环境变量。

      a.vi /etc/profile.d/hadoop-eco.sh

        在hadoop-eco.sh中追加相关内容后,保存并退出。追加的内容如下:

        HBASE_HOME=/opt/hbase

        PATH=$HBASE_HOME/bin:$HBASE_HOME/sbin:$PATH

      b.source /etc/profile.d/hadoop-eco.sh

       使环境变量生效。

(4)修改配置文件。

        启动HBase需先在hbase/conf/目录下修改配置文件:

    a.修改hbase-env.sh配置文件

        vi  hbase-env.sh

        在hbase-env.sh中修改相关内容,修改内容如下:

        export JAVA_HOME=/opt/jdk

        export HBASE_MANAGES_ZK=true

    【说明】

        当前环境中我们安装了zookeeper集群,所以将HBASE_MANAGES_ZK=true。

    b.修改hbase-site.xml配置文件

        vi  hbase-site.xml

        在hbase-site.xml中添加相关配置,添加配置如下:

<configuration>

    <!--这个目录是region server的共享目录,用来持久化HBase。-->

    <property>

        <name>hbase.rootdir</name>

        <value>hdfs://master:9000/hbase</value>

    </property>

    <property>

        <name>hbase.cluster.distributed</name>(易错点)

        <value>true</value>

  </property>

  <property>

        <name>hbase.zookeeper.quorum</name>(易错点)(容易忘)

        <value>master</value>

  </property>

  <property>

        <name>hbase.zookeeper.property.dataDir</name>

        <value>/opt/zookeeper(添加了一个路径)/data</value>

  </property>

    <!--  V2.1版本,在分布式情况下, 设置为false -->

    <property>

        <name>hbase.unsafe.stream.capability.enforce</name>(容易忘)

        <value>false</value>

    </property>

</configuration>

    c.修改regionservers配置文件

        vi  regionservers

    在regionservers中配置相关从机地址,配置如下:

        slave01

        slave02

(5)将hbase文件夹和hadoop-eco.sh文件远程拷贝文件到从机相应的目录,并使环境变量生效,命令如下。

    scp -r /opt/hbase/ root@slave01:/opt/hbase/

    scp -r /opt/hbase/ root@slave02:/opt/hbase/

    scp /etc/profile.d/hadoop-eco.sh root@slave01:/etc/profile.d/hadoop-eco.sh

    scp /etc/profile.d/hadoop-eco.sh root@slave02:/etc/profile.d/hadoop-eco.sh

【注意】

 source /etc/profile.d/hadoop-eco.sh

2.启动HBase

  start-hbase.sh

3.查看集群信息

  在浏览器中http://master:16010/master-status地址,查看集群信息。

一)HIVE安装

1.本次课程将进行Hive的安装。与安装Hadoop相比,Hive的安装非常简单,并且有些工作已经在安装Hadoop的时候完成,

例如:JDK的安装。并且Hive作为Hadoop的一个客户端,运行方式并不分为单机模式,伪分布模式,完全分布模式,所以不管Hadoop选择为伪分布模式或者完全分布模式,安装Hive的方式只有一种。安装Hive的步骤分为以下两步:

    (1)安装元数据库。

    (2)修改Hive配置文件。

2.Hive的安装

    1)安装元数据库,Hive自带的Derby数据库,但由于Derby只支持同时一个用户访问Hive,所以不推荐使用。因此我们将使用MySql作为Hive的元数据库,安装MySql服务端与客户端步骤如下:

        见MySQL安装文档

    2)修改Hive配置文件。

    (1)解压

    tar zxvf apache-hive-3.1.2-bin.tar.gz

    mv apache-hive-3.1.2-bin hive

     (2)解决guava版本问题,找hadoop

                   rm -rf /opt/hive/lib/guava-19.0.jar

      cp /opt/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/hive/lib/

                (3)拷贝mysql连接数据库的jar

        上传mysql-connector-java-5.1.32到/opt/hive/lib

     (4)在“/opt/hive/conf”目录下拷贝“hive-default.xml.template”与“hive-env.sh.template”      

    两个文件,并将拷贝后文件的名称分别变为“hive-site.xml”与“hive-env.sh”。

         输入:cd /opt/hive/conf

                  cp  hive-default.xml.template  hive-site.xml

                  cp  hive-env.sh.template  hive-env.sh

              (5)配置“ hive-env.sh”文件

       输入:vi  hive-env.sh

                在hive-env.sh中配置相关内容后,保存并退出。配置的内容如下:

               HADOOP_HOME=/opt/hadoop

               export HIVE_CONF_DIR=/opt/hive/conf

               export HIVE_AUX_JARS_PATH=/opt/hive/lib

            (6)配置“ hive-site.xml”文件(本地模式)

      输入:vi hive-site.xml

     在hive-site.xml文件中修改相关配置内容,修改如下:

     修改属性“javax.jdo.option.ConnectionURL”的值为“jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8”,

     修改属性“javax.jdo.option.ConnectionDriverName”的值为“com.mysql.jdbc.Driver”,

     修改属性“javax.jdo.option.ConnectionUserName”的值为“root”,

     修改属性“javax.jdo.option.ConnectionPassword”的值为“123456”,

     修改属性“hive.metastore.event.db.notification.api.auth”的值为“false”,

     修改属性“hive.metastore.schema.verification”的值为“false”

     修改属性“hive.querylog.location”的值为“/opt/hive/tmp”,

     修改属性“hive.exec.local.scratchdir”的值为“/opt/hive/tmp”,

     修改属性“hive.downloaded.resources.dir”的值为“/opt/hive/tmp”。

    【远程模式】

     修改属性“hive.server2.thrift.bind.host”的值为“master”。

     修改属性“hive.metastore.uris”的值为“thrift://master:9083”。

    注意:在3215  行有特殊字符  注意处理

           (4)  配置环境变量

    HIVE_HOME=/opt/hive

    PATH=$HIVE_HOME/bin:$PATH

3.初始化Hive元数据仓库

    (1)对Hive元数据仓库进行初始化,

    在“/opt/hive/bin”目录下输入如下命令初始元数据仓库,命令如下:

    输入: ./schematool -initSchema -dbType mysql -userName root -passWord 123456

4.启动Hive

    (1)启动Hadoop

        Hive的启动依赖于Hadoop的启动,因此必须先启动Hadoop。

    (2)启动Hive,命令如下,启动后如图1.11所示。

        输入:hive

5.验证安装环境

    输入:show databases;

6.远程模式Metastore服务手动启动【远程添加】

#前台启动  关闭ctrl+c

hive --service metastore

#后台启动 进程挂起  关闭使用jps + kill

#输入命令回车执行 再次回车 进程将挂起后台

nohup hive --service metastore &

#前台启动开启debug日志

hive --service metastore --hiveconf hive.root.logger=DEBUG,console

FLUME安装

1.解压

tar -zxvf software/apache-flume-1.9.0-bin.tar.gz

2.改名

mv apache-flume-1.9.0-bin/ flume

3.修改配置文件

cp flume-env.sh.template flume-env.sh

vi flume-env.sh

export JAVA_HOME=/opt/jdk

4.启动

bin/flume-ng agent -c conf -f /opt/flume/conf/example.conf --name a1 -Dflume.root.logger=INFO,console

FLINK安装

1、将Flink包解压到路径/opt/module路径中

tar -zxvf /opt/software/flink-1.14.0-bin-scala_2.12.tgz -C /opt/

mv flink-1.14.0 flink

2、修改容器中/etc/profile文件,设置Spark环境变量

vi /etc/profile,在文件末尾新增以下内容

# FLINK

export FLINK_HOME=/opt/module/flink

export PATH=$FLINK_HOME/bin:$PATH

export HADOOP_CLASSPATH=`hadoop classpath`

环境变量设置后退出vi编辑器并使其生效

source /etc/profile

在容器中/opt目录下运行命令flink --version查看版本内容

[root@master ~]# flink --version

Version: 1.14.0, Commit ID: 460b386

3、配置文件flink-conf.yaml

vi /opt/module/flink-1.14.0/flink-conf.yaml,添加如下内容

classloader.check-leaked-classloader: false

在yarn上以per job模式(即Job分离模式,不采用Session模式)运行 $FLINK_HOME/examples/batch/WordCount.jar

[root@master ~]# flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar

spark

1、将Spark包解压到路径/opt/module路径中

tar -zxvf /opt/software/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/

修改spark文件夹名称

cd /opt/module

mv spark-3.1.1-bin-hadoop3.2/ spark/

2、修改容器中/etc/profile文件,设置Spark环境变量

vi /etc/profile,在文件末尾新增以下内容

# SPARK

export SPARK_HOME=/opt/module/spark

export PATH=$SPARK_HOME/bin:$PATH

环境变量设置后退出vi编辑器并使其生效

source /etc/profile

spark-submit --version

Welcome to

      ____              __

     / __/__  ___ _____/ /__

    _\ \/ _ \/ _ `/ __/  '_/

   /___/ .__/\_,_/_/ /_/\_\   version 3.1.1

      /_/

                       

Using Scala version 2.12.10, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_212

Branch HEAD

3、修改hadoop配置文件yarn-site.xml,添加如下内容:

输入:vi yarn-site.xml

添加如下内容:

        <!--是否启动一个线程检查每个任务使用的物理内存量,如果任务超出分配值,            则直接将其杀掉,默认是true -->

        <property>

                <name>yarn.nodemanager.pmem-check-enabled</name>

                <value>false</value>

        </property>

        <!--是否启动一个线程检查每个任务使用的虚拟内存量,如果任务超出分配值,            则直接将其杀掉,默认是true -->

        <property>

                <name>yarn.nodemanager.vmem-check-enabled</name>

                <value>false</value>

        </property>

4、修改spark-env.sh,添加如下配置:

输入:vi spark-env.sh

添加如下内容:

export YARN_CONF_DIR=/opt/hadoop/etc/hadoop 

export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

5、拷贝上述配置文件到其他机器

scp -r /opt/spark root@slave01:/opt/

scp -r /opt/spark root@slave02:/opt/

6、启动

/export/server/hadoop/sbin/start-yarn.sh

CLICKHOUSE

tar -xzvf "clickhouse-common-static-22.3.2.2.tgz"

tar -xzvf "clickhouse-common-static-dbg-22.3.2.2.tgz"

tar -xzvf "clickhouse-server-22.3.2.2.tgz"

tar -xzvf "clickhouse-client-22.3.2.2.tgz"

for i in $(ls /opt/software/clickhouse/*.tgz);do tar -zxvf $i -C /opt/clickhouse;done

/opt/clickhouse/clickhouse-client-21.9.4.35/install/doinst.sh

/opt/clickhouse/clickhouse-common-static-21.9.4.35/install/doinst.sh

/opt/clickhouse/clickhouse-common-static-dbg-21.9.4.35/install/doinst.sh

/opt/clickhouse/clickhouse-server-21.9.4.35/install/doinst.sh

clickhouse --help

clickhouse start

clickhouse-client --user default --password 123456

配置文件

cd /etc/clickhouse-service

日志

cd /var/log/clickhouse-service

数据

cd /var/lib/clickhouse


http://lihuaxi.xjx100.cn/news/1316567.html

相关文章

微信小程序带参数永久有效二维码生成uniapp版本

access_token的值的获取在后端进行,参考代码如下: private static final String getAccessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token"; /*** 从url获取数据库获取access_token* @return*/public String getAccessToken(){List<AccessTokenDto> a…

SSM 整合 Shiro 安全框架【快速入门】

一、搭建ssm工程&#x1f349; 1.创建工程&#x1f95d; 更改web路径 创建所需目录 2.引入依赖&#x1f95d; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"h…

实现公共字段自动填充

实现公共字段自动填充&#xff0c;也就是在插入或者更新的时候为指定字段赋予指定的值&#xff0c;使用它的好处就是可以统一对这些字段进行处理&#xff0c;避免了重复代码。 实现步骤&#xff1a; 1). 自定义注解 AutoFill&#xff0c;用于标识需要进行公共字段自动填充的方…

【网络安全带你练爬虫-100练】第6练:内嵌发包提取数据

目录 一、分析目标&#xff1a; 二、代码实现 目标1&#xff1a;对于捕获的URL内嵌发包 目标2&#xff1a;找到电话和邮箱的位置 目标3&#xff1a;提取电话和邮箱 三、完整代码 四、网络安全小圈子 &#xff08;注&#xff1a;需要带上登录成功后的cookie发包&#xff…

idea支持vue文件-设置对vue的支持

一、idea支持.vue文件 这一步其实就是安装vue.js插件&#xff0c;具体路径为&#xff1a;File ----> Settings ----> Plugins ----> 输入vue&#xff0c;点击搜索结果里的vue.js右边的install按钮&#xff0c;安装成功后重启idea&#xff0c;这样idea就能识别.vue文件…

Django实现简单的音乐播放器 3

在原有音乐播放器上请求方式优化和增加加载本地音乐功能。 效果&#xff1a; 目录 播放列表优化 设置csrf_token 前端改为post请求 视图端增加post验证 加载歌曲 视图 设置路由 模板 加载layui css 加载layui js 增加功能列表 功能列表脚本实现 最终效果 总结 播…

跑深度学习nvidia驱动忽然实效的详细解决方法

由于经常跑深度学习&#xff0c;所以对于显卡驱动什么的都还是整的比较明白的不含糊&#xff0c;所以都能跑的起来。但是今天跑pytorch框架时&#xff08;用到cuda&#xff09;忽然给我报了个错&#xff1a; RuntimeError: No CUDA GPUs are available这给我整不会了&#xff…

[NISACTF 2022]babyserialize(pop链构造与脚本编写详细教学)

目录 一、理清pop链并进行标注 二、如何编写相关脚本 三、过滤与绕过 1、waf的绕过 2、preg_match的绕过 做这道题作为pop链的构造很典型&#xff0c;也很有意思&#xff0c;因为还存在一些其他东西。 打开链接&#xff0c;这种很多类的PHP代码多半是需要构造pop链 一、理…