大数据环境搭建

1 篇文章 0 订阅
1 篇文章 0 订阅

大数据环境搭建

1.集群无密登录

例如A机器的a用户想要无密登录到B机器的b用户,主要分成以下三个步骤:

  1. 在每台机器当前用户的主目录下执行命令 ssh-keygen -t rsa 此命令可生成一对密钥:id_rsa.pub(公钥)、id_rsa(私钥),这两个文件都在主目录下的.ssh文件夹里(如果没有配置密钥是不会有这个文件夹的),在每个主机的.ssh目录下执行命令 touch authorized_keys 以生成authorized_keys文件,并且修改权限:chmod 600 authorized_keys
  2. 在A机器的a用户的主目录下的.ssh文件夹里执行命令 scp id_rsa.pub B:/home/
  3. 在B机器的b用户的主目录下的.ssh文件加下执行命令 cat ../id_rsa.pub >> authorized_keys

反复进行上述步骤即可配置集群各机器之间的无密登录(注意每台机器到自身的无密登录也需要配置)。

2. zookeeper环境搭建

    以三台机器的zookeeper集群的搭建为例(采用的版本是3.4.14)。

  1. 将zookeeper压缩包解压;
  2. 将zoo_sample.cfg改名为zoo.cfg;
  3. 修改zoo.cfg文件——将dataDir项改为非tmp目录(可在zookeeper安装目录下新建data目录);添加如下三项server.1=(主机名或ip):2888:3888  server.2=(主机名或ip):2888:3888  server.3=(主机名或ip):2888:3888       
  4. 在data目录下新建文件myid,并写入相应机器对应的id(配置文件里server.1中的1就是id),例如echo 1 > myid;   

即以上就是zookeeper配置的全部内容,有个小技巧:配置好一台机器后,直接将整个zookeeper文件夹复制到其他机器
:scp -r zookeeper-3.4.14/  220.113.20.38:/home.,只需要改myid内容可。

安装完毕之后,bin目录下的zkServer.sh可用于启动(zkServer.sh start)以及停止集群(zkServer.sh stop)。· 

2.1 问题

用命令    

3. Kafka集群搭建

以三台机器的Kafka集群搭建为例(采用的版本是kafka_2.12-2.3.0)。       

  1. 在每台机器上分别将Kafka的二进制压缩包解压;
  2. 修改server.propertities文件,主要有三项:第一项将broker.id改为相应的id;第二zookeeper.connect项,假如集群有三台机器A、B、C,则zookeeper.connect=A:2181,B:2181,C:2181(在配置时A可用主机名也可用IP地址,我用的是IP地址);修改存储log的目录log.dirs(在Kafka主目录下新建data目录作为存储log目录)。

按照以上步骤即可配好Kafka集群。(启动出现错误,因此对每台机器上的/etc/hosts文件做了修改,添加的每台机器的集群中其他机器的主机名与IP对应关系)

 3.1 补充

为了能够彻底删除topic,需要 设置 delete.topic.enable=true

与此同时,设置 auto.create.topics.enable = false,默认设置为true。如果设置为true,则produce或者fetch 不存在的topic也会自动创建这个topic。这样会给删除topic带来很多意向不到的问题。

前两项是为了更好地删除topic。

port=9092

host.name=220.113.20.21

listeners=PLAINTEXT://220.113.20.21:9092

集群多机器配置Kafka时,一台机器配好直接scp即可,只需要改broker.id以及host.name、listeners三项即可。     

Kafka后台启动:bin/kafka-server-start.sh -daemon config/server.properties

为了充分利用Optane SSD的性能优势,可在配置项中修改log.flush.interval.ms,默认的是1000ms,       

4. Hadoop集群搭建

使用的Hadoop版本为3.1.1,以四台机器的Hadoop集群搭建为例:

(1)解压安装包

将压缩包 hadoop-3.1.1.tar.gz 上传到每台机器的主目录/home/hzr下,并解压到/home/hzr/bigdata下: tar -zxvf hadoop-3.1.1.tar.gz -C ./bigdata(目录根据实际环境而定)。

(2)etc/hadoop/hadoop-env.sh

添加一项:export JAVA_HOME=........

(3)etc/hadoop/core-site.xml

添加如下properties:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://220.113.20.38:9000</value>
        <description>HDFS的URI,文件系统://namenode标识:端口号</description>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hzr/hadoop/tmp</value>
        <description>namenode上本地的hadoop临时文件夹</description>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        <description>Size of read/write buffer used in SequenceFiles</description>
        </property>
</configuration>

需要注意的是,上述第一、三项是官方搭建指南推荐设定的,第二项在段海涛视频教程里提及。

(4)etc/hadoop/hdfs-site.xml

添加如下项:

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hzr/bigdata/hadoop-3.1.1/hdfs/name</value>
</property>

<property>
  <name>dfs.blocksize</name>
  <value>268435456</value>
</property>

<property>
  <name>dfs.namenode.handler.count  </name>
  <value>100</value>
</property>

<!-- Configurations for DataNode: -->

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hzr/bigdata/hadoop-3.1.1/hdfs/data</value>
</property>

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

(5)etc/hadoop/yarn-site.xml

添加如下项:

<property>
<name>yarn.resourcemanager.hostname</name>
<value>220.113.20.38</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

(6)etc/hadoop/mapred-site.xml

添加如下项:

<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

(7)etc/hadoop/workers

做如下修改:

220.113.20.21
220.113.20.34
220.113.20.36

上述修改完毕之后,要在/etc/profile里添加HADOOP_HOM,并在PATH后补充 $HADOOP_HOME/bin$HADOOP_HOME/sbin

Hadoop格式化命令:hadoop namenode -format

(8)错误汇总

1.如果使用root用户配置Hadoop会报如下错误:

Starting namenodes on [iz2zeir6up2905w6214hprz]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [iz2zeir6up2905w6214hprz]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation. 

解决方法可参考:https://www.cnblogs.com/woofwoof/p/10024104.html 需要注意的是并不需要在每台机器上都添加,只要在namenode所在机器上添加即可。

2.不像Zookeeper、Kafka只需要机器之间无密登录,hadoop需要自身到自身的无密登录。

5. HBase搭建

采用的版本是1.4.11,解压好安装包后,按如下步骤配置:

(1) conf/hbase-env.sh

添加 export JAVA_HOME=......   ;

在JDK版本为1.8及以上的情况下,注释掉 HBASE_MASTER_OPTS 和 HBASE_REGIONSERVER_OPTS 两项  ;

添加 HBASE_MANAGES_ZK 项并设置为false:export HBASE_MANAGES_ZK=false  ;

(2) conf/hbase-site.xml

添加如下项:

<configuration>
 
      <property>
          <name>hbase.rootdir</name>
          <value>hdfs://220.113.20.38:9000/HBase</value>
      </property>
 
      <property>
          <name>hbase.cluster.distributed</name>
          <value>true</value>
      </property>
 
      <!--0.98之后的新改动,之前版本没有.port,默认端口为16000-->
      <property>
          <name>hbase.master.port</name>
          <value>16000</value>
      </property>
 
      <property>
          <name>hbase.zookeeper.quorum</name>
          <value>220.113.20.21,220.113.20.36,220.113.20.38</value>
      </property>
 
      <property>
          <name>hbase.zookeeper.property.dataDir</name>
          <value>/home/hzr/bigdata/zookeeper-3.4.14/data</value>
      </property>
 
 
 </configuration>

(3) conf/regionservers

修改如下:

220.113.20.21
220.113.20.36
220.113.20.38

(4)

将hadoop的hdfs-site.xml文件拷贝到 hbase-1.4.11/conf/目录下

配置好一台后,直接通过scp命令拷贝到其他机器,需要注意的是如果每台机器的hdfs-site.xml文件和JAVA_HOME的路径可能不一样,如果不一样需要手动调整。

(5) 注意点

在配置hbase-site.xml时,应一律写成 "hbase"  ,若写成 "HBase"会报错(不同的项写错报的错也不同)。

需要注意的是,HBase集群正确运行的前提是集群内部的机器时间是同步的。

HBase删除数据的时机

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值