一、准备
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
网友评论