美文网首页
单机搭建大数据环境

单机搭建大数据环境

作者: dhz120 | 来源:发表于2022-08-26 21:55 被阅读0次

一、准备

1.1 系统及软件版本

  • ubuntu 20.04
  • jdk1.8.0_151
  • hadoop-3.2.4
  • apache-zookeeper-3.6.3-bin
  • hbase-2.4.13
  • phoenix-hbase-2.4-5.1.2-bin
  • kafka_2.12-2.8.1
  • kafka-eagle-bin-1.4.8

1.2 软件包拷贝

可将上述软件包拷贝到/opt目录下

1.3 SSH 设置

1.3.1 设置ssh可以通过root用户登陆

设置root用户密码

sudo passwd

设置允许ssh以root用户登陆

# 先安装ssh-server
sudo apt install openssh-server
# 修改sshd_config配置
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

重启ssh服务,使配置生效

sudo service ssh restart

1.3.2 SSH无密码登陆 (在master主机进行如下操作)

切换到root用户(注:之后所有操作均以root用户执行)

sudo su

用rsa生成密钥,一路回车。

ssh-keygen -t rsa

把公钥复制一份,并改名为authorized_keys

cd /root/.ssh
cp id_rsa.pub authorized_keys

1.4 JDK安装

解压

cd /opt
tar xavf ./jdk-8u151-linux-x64.tar.gz

建立软连接

cd /usr/local
ln -s /opt/jdk1.8.0_151 java

将JDK环境变量配置到/etc/profile中(注:如果不好使也可以配置到 /root/.bashrc中)

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

检查JDK是否配置好

source /etc/profile
javac -version

提示 javac 1.8.0_151代表JDK安装完成

1.5 修改主机名和host

注意:需要有root权限

修改主机名为:single

# 修改hostname文件,变改主机名为"single"
echo "single" > /etc/hostname

修改hosts,明确主机名对应的ip地址,假设当前ip为 192.168.100.123

# 修改hosts文件,追加一条记录"
echo "192.168.100.123 single" >> /etc/hosts

重启主机生效。

1.5 创建数据相关目录

# 创建bigdata目录,后边各组件让数据都会放在这个目录下
mkdir -p /home/bigdata

# 给权限
chmod 777 /home/bigdata

二、Hadoop搭建

2.1 Hadoop安装

解压 ,并在/home/bigdata/hadoop目录下创建tmp。然后在/usr/local目录下创建对应的软链接。

注意:需要将这些目录放到空间大的盘下(e.g. /home),避免应为硬盘空间不足引发错误

可通过 df -h 命令查看各分区大小

# 解压
cd /opt
tar xavf ./hadoop-3.2.4.tar.gz

# 创建对应目录
mkdir -p /home/bigdata/hadoop/tmp

# 创建软链接
cd /usr/local/
ln -s /opt/hadoop-3.1.3 hadoop

2.2 Hadoop配置

以下操作都在/usr/local/hadoop/etc/hadoop下进行

2.2.1 hadoop-env.sh

# 修改JAVA_HOME配置项为JDK安装目录
export JAVA_HOME=/usr/local/java

# 设置HADOOP根目录
export HADOOP_HOME=/usr/local/hadoop

# 设置HADOOP本地库,主要是给hbase提供压缩算法用
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

# 修改日志级别,避免长期跑日志文件太多问题
# 注意:测试发现只有这一个有用,别的都不好使
export HADOOP_DAEMON_ROOT_LOGGER=WARN,console

2.2.2 core-site.xml

hadoop.tmp.dir : hadoop集群在工作的时候存储的一些临时文件的目录

<configuration>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://single:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/bigdata/hadoop/tmp</value>
  </property>

</configuration>

2.2.3 hdfs-site.xml

dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,这里设置为1。

<configuration>

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

</configuration>

2.2.4 mapred-site.xml

<configuration>

  <property>
    <name>mapred.job.tracker</name>
    <value>single:9001</value>
  </property>

</configuration>

2.25 workers

设置运行节点为当前主机(名)

single

2.3 Hadoop启动

2.3.1 启动前先设置一下环境变量,避免启动遇到各种问题

/etc/profile最后,追加如下内容:

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

2.3.2 格式化一个新的文件系统

注意:第一次搭建的时候格式化一次就好!!不要重复format

cd /usr/local/hadoop/bin
./hadoop namenode -format

2.3.2 启动HDFS

cd /usr/local/hadoop/sbin
# 启动
./start-all.sh
 
# 停止
#./stop-all.sh

通过jps检查是否启动成功

$ jps
23968 NodeManager
23553 DataNode
23874 ResourceManager
23715 SecondaryNameNode
23429 NameNode

三、ZOOKEEPER搭建

3.1 ZooKeeper安装

解压,在/usr/local下创建软链接

# 解压
cd /opt
tar xavf ./apache-zookeeper-3.6.3-bin.tar.gz

# 创建软链接
cd /usr/local
ln -s /opt/apache-zookeeper-3.6.3-bin zookeeper

# 创建数据目录
mkdir -p /home/bigdata/zookeeper

3.2 ZooKeeper配置

3.2.1 zoo.cfg

调试用,使用默认配置即可

cp zoo_sample.cfg zoo.cfg

修改 zoo.cfg

dataDir=/home/bigdata/zookeeper

3.2.2 启动

bin/zkServer.sh start

四、HBASE搭建

4.1 HBase安装

解压,创建软链接

# 解压
cd /opt
tar xavf ./hbase-2.4.13-bin.tar.gz

# 创建软链接
cd /usr/local
ln -s /opt/hbase-2.4.13 hbase

# 创建数据目录
mkdir -p /home/bigdata/hbase/tmp

4.2 HBase配置

以下配置文件在/usr/local/hbase/conf目录下

4.2.1 hbase-env.sh

#修改JAVA_HOME配置项为JDK安装目录
export JAVA_HOME=/usr/local/java

# 不使用hbase自带的zookeeper
export HBASE_MANAGES_ZK=false

4.2.2 hbase-site.xml

hbase.rootdir: HBase集群中所有RegionServer共享目录,用来持久化HBase的数据,一般设置的是hdfs的文件目录

hbase.zookerper.quorum: zookooper 服务启动的节点,只能为奇数个

<?xml version="1.0" encoding="utf-8"?>

<configuration> 
  <!-- HBase集群中所有RegionServer共享目录,用来持久化HBase的数据,一般设置的是hdfs的文件目录 -->  
  <property> 
    <name>hbase.rootdir</name>  
    <value>hdfs://single:9000/hbase</value> 
  </property>  
  <!-- zookeeper集群的URL配置,多个host中间用逗号(,)分割-->  
  <property> 
    <name>hbase.zookeeper.quorum</name>  
    <value>single</value> 
  </property>  
  <!-- 本地文件系统tmp目录,一般配置成local模式的设置一下-->  
  <property> 
    <name>hbase.tmp.dir</name>  
    <value>/home/bigdata/hbase/tmp</value> 
  </property>  
  <!-- true表示使用外部的zk-->  
  <property> 
    <name>hbase.cluster.distributed</name>  
    <value>true</value> 
  </property>  
  <!-- 这里配置phoenix,目的是方便使用sql语句 -->  
  <property> 
    <name>phoenix.schema.isNamespaceMappingEnabled</name>  
    <value>true</value> 
  </property>  
  <!--如果你打算在本地文件系统中跑hbase,请禁掉此项 -->  
  <property> 
    <name>hbase.unsafe.stream.capability.enforce</name>  
    <value>false</value> 
  </property>  
  <!-- 尝试解决regionserver exception问题 -->  
  <property> 
    <name>hbase.thrift.maxWorkerThreads</name>  
    <value>10000</value> 
  </property>  
  <property> 
    <name>hbase.thrift.maxQueuedRequests</name>  
    <value>10000</value> 
  </property>  
  <property> 
    <name>hbase.regionserver.executor.openregion.threads</name>  
    <value>10000</value> 
  </property>  
  <!-- 调优测试-->  
  <property> 
    <name>hbase.hregion.memstore.block.multiplier</name>  
    <value>5</value> 
  </property>  
  <property> 
    <name>hbase.hregion.memstore.flush.size</name>  
    <value>268435456</value> 
  </property>  
  <property> 
    <name>hbase.regionserver.global.memstore.size</name>  
    <value>0.4</value> 
  </property>  
  <property> 
    <name>hbase.regionserver.global.memstore.size.lower.limit</name>  
    <value>0.625</value> 
  </property>  
  <property> 
    <name>hbase.hregion.compacting.memstore.type</name>  
    <value>BASIC</value> 
  </property>  
  <!-- 添加索引需要添加该配置 -->  
  <property> 
    <name>hbase.regionserver.wal.codec</name>  
    <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> 
  </property>  
  <!-- 集群传输的字节指标,值较小时,会增加并行计算,但也增加客户端合并块的数量。 -->  
  <property> 
    <name>phoenix.stats.guidepost.width</name>  
    <value>52428800</value> 
  </property>  
  <!-- 开启phoenix的schema与hbase的命名空间的映射
    注:开启后,若要创建含有schema的表,需先创建相应的schema,否则会报错 -->  
  <property> 
    <name>phoenix.schema.mapSystemTablesToNamespace</name>  
    <value>true</value> 
  </property>  
  <!-- 开启phoenix的最大缓存配置 -->  
  <property> 
    <name>phoenix.mutate.batchSize</name>  
    <value>5000000</value> 
  </property>  
  <property> 
    <name>phoenix.mutate.maxSize</name>  
    <value>50000000</value> 
  </property>  
  <property> 
    <name>phoenix.mutate.maxSizeBytes</name>  
    <value>1048576000</value> 
  </property> 
</configuration>

4.2.3 regionservers

设置regionserver为当前主机名

single

4.2.4 PHOENIX 配置

从phoenix官网下载与hbase对应的phoenix按转包,因为当前hbase版本为2.4.13,所以选择phoenix-hbase-2.4-5.1.2-bin版本

# 切换目录
cd /opt

# 下载phoenix
wget https://dlcdn.apache.org/phoenix/phoenix-5.1.2/phoenix-hbase-2.4-5.1.2-bin.tar.gz

# 下载完成后,解压
tar xavf phoenix-hbase-2.4-5.1.2-bin.tar.gz

# 切换phoenix目录
cd phoenix-hbase-2.4-5.1.2-bin

# 将phoenix相关jar包拷贝到hbase的libs目录下即可
cp phoenix-pherf-5.1.2.jar phoenix-server-hbase-2.4-5.1.2.jar /opt/hbase-2.4.13/lib/

如果先要使用phoenix命令行phoenix-hbase-2.4-5.1.2-bin/bin/sqlline.py, 还需要将hbase-site.xml文件拷贝到phoenix的bin目录中

cp /opt/hbase-2.4.13/conf/hbase-site.xml /opt/phoenix-hbase-2.4-5.1.2-bin/bin

拷贝完成后,就可以调用 sqlline.py连hbase了

4.3 启动HBase

cd /usr/local/hbase/bin
./start-hbase.sh

通过jps查看,如果有HMaster,HRegionServer,则启动成功

五、KAFKA搭建

6.1 Kafka安装

解压,在/usr/local下创建软连接

# 解压
cd /opt
tar xavf ./kafka_2.12-2.8.1.tgz

# 创建软连接
cd /usr/local
ln -s /opt/kafka_2.12-2.8.1 kafka

6.2 Kafka配置

修改 server.properties

listeners=PLAINTEXT://single:9092

advertised.listeners=PLAINTEXT://single:9092

6.3 运行

后台启动

cd /usr/local/kafka
nohup bin/kafka-server-start.sh config/server.properties > kafka-run.log 2>&1 &

关闭kafka

cd /usr/local/kafka
./bin/kafka-server-stop.sh

相关文章

网友评论

      本文标题:单机搭建大数据环境

      本文链接:https://www.haomeiwen.com/subject/kinfnrtx.html