成都网站编辑,哪些网站需要icp备案,软件定制开发服务公司,珠海网站建设杰作1. 前期准备
系统环境#xff1a;centos7.9
配置信息#xff1a;8C8G100G
hadoop和hbase为单节点部署模式
jdk版本jdk1.8.0_361
1.1. 修改系统时间 timedatectl set-timezone TimeZone 1.2. 修改主机名以及主机名和IP的映射 vim /etc/hosts #将自己的主机名以及…1. 前期准备
系统环境centos7.9
配置信息8C8G100G
hadoop和hbase为单节点部署模式
jdk版本jdk1.8.0_361
1.1. 修改系统时间 timedatectl set-timezone TimeZone 1.2. 修改主机名以及主机名和IP的映射 vim /etc/hosts #将自己的主机名以及ip映射添加进去 1.3. 关闭防火墙
临时关闭防火墙 systemctl stop firewalld.service 永久关闭 systemctl disable firewalld.service 2. hadoop部署
2.1. 下载安装包 mkdir /u01 cd /u01 wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz tar -zxvf hadoop-3.3.6.tar.gz 2.2. 修改配置文件
2.2.1. 修改core-site.xml configuration property namefs.defaultFS/name valuehdfs://192.168.68.129:9000/value /property !-- 指定 hadoop 数据的存储目录 -- property namehadoop.tmp.dir/name value/u01/hadoop-3.3.6/tmp/value /property property namehadoop.proxyuser.root.hosts/name value*/value /property property namehadoop.proxyuser.root.groups/name value*/value /property property nameio.compression.codecs/name valueorg.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec/value /property property nameio.compression.codec.lzo.class/name valueorg.apache.hadoop.io.compress.SnappyCodec/value /property /configuration 2.2.2. 修改hdfs-site.xml configuration property namedfs.namenode.name.dir/name value/u01/hadoop-3.3.6/hdfs/name/value finaltrue/final /property property namedfs.datanode.data.dir/name value/u01/hadoop-3.3.6/hdfs/data/value finaltrue/final /property property namedfs.http.address/name value192.168.68.129:50070/value /property property namedfs.permissions/name valuefalse/value /property /configuration 2.2.3. 修改yarn-site.xml configuration property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property /configuration 2.2.4. 修改hadoop-env.sh export HDFS_NAMENODE_USERhadoop export HDFS_DATANODE_USERhadoop export HDFS_SECONDARYNAMENODE_USERhadoop export YARN_RESOURCEMANAGER_USERhadoop export YARN_NODEMANAGER_USERhadoop export HADOOP_MAPRED_HOME/u01/hadoop-3.3.6 export HDFS_NAMENODE_USERhadoop 设置NameNode进程以hadoop用户身份运行。NameNode是HDFS中的主节点负责管理文件系统的命名空间和客户端对文件的访问。
export HDFS_DATANODE_USERhadoop 设置DataNode进程以hadoop用户身份运行。DataNode是HDFS中的从节点负责存储实际的数据块并执行读写操作。
export HDFS_SECONDARYNAMENODE_USERhadoop 设置Secondary NameNode进程以hadoop用户身份运行。Secondary NameNode不是NameNode的备份而是辅助NameNode进行检查点操作帮助保持NameNode的运行状态。
export YARN_RESOURCEMANAGER_USERhadoop 设置ResourceManager进程以hadoop用户身份运行。ResourceManager是YARN的一部分负责整个集群的资源管理和分配。
export YARN_NODEMANAGER_USERhadoop 设置NodeManager进程以hadoop用户身份运行。NodeManager是YARN的一部分负责单个节点上的资源管理以及容器的生命周期管理。
export HADOOP_MAPRED_HOME/u01/hadoop-3.3.6 指定MapReduce框架的安装目录。这通常指向Hadoop发行版的根目录在这个例子中是/u01/hadoop-3.3.6。
2.2.5. 修改mapred-site.xml configuration property namemapreduce.framework.name/name valueyarn/value /property property nameyarn.app.mapreduce.am.env/name valueHADOOP_MAPRED_HOME/u01/hadoop-3.3.6/value /property property namemapreduce.map.env/name valueHADOOP_MAPRED_HOME/u01/hadoop-3.3.6/value /property property namemapreduce.reduce.env/name valueHADOOP_MAPRED_HOME/u01/hadoop-3.3.6/value /property !-- 这个参数设为true启用压缩 -- property namemapreduce.output.fileoutputformat.compress/name valuetrue/value /property property namemapreduce.map.output.compress/name valuetrue/value /property !-- 使用编解码器 -- property namemapreduce.output.fileoutputformat.compress.codec/name valueorg.apache.hadoop.io.compress.SnappyCodec/value /property /configuration 2.2.6. 修改环境变量
vim /etc/profile export HADOOP_HOME/u01/hadoop-3.3.6 export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 2.3. 启动hadoop服务
2.3.1. 格式化namenode hdfs namenode -format 2.3.2. 启动服务 ./sbin/start-all.sh 启动成功后使用jps命令查看服务
显示有NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager这5个服务
则为启动成功
查看hdfs和yarn的web界面端口分别是50070和8088
2.4. 验证snappy压缩
验证方法运行Hadoop的hadoop-mapreduce-examples-3.3.6.jar测试包进行wordcount查看生成的文件大小
创建一个文件input键入以下内容或其它内容把这个文件上传到hdfs当然也可以使用本地文件 jakchquihfquhdqwhcn9eiuhcf198fh8chquihfquhdqwhcwqhdb9uchquihfquhdqwhch91ugh2ufgb92ufb2ufsfcd 2.4.1. 未开启压缩
把mapred-site.xml和core-site.xml相关的snappy配置去掉重启hadoop服务执行以下命令行 ./bin/hadoop jar /u01/hadoop-3.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /u01/input /u01/output-n 查看生成的文件大小,验证结果
2.4.2. 开启压缩
执行以下命令行 ./bin/hadoop jar /u01/hadoop-3.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /u01/input /u01/output-y4 查看生成的文件大小验证结果
3. hbase部署
3.1. 下载安装包 cd /u01 wget https://dlcdn.apache.org/hbase/2.6.1/hbase-2.6.1-bin.tar.gz tar -zxvf hbase-2.6.1-bin.tar.gz cd hbase-2.6.1 3.2. 修改配置文件
3.2.1. 修改hbase-site.xml configuration property namehbase.cluster.distributed/name valuetrue/value /property property namehbase.rootdir/name valuehdfs://master2:9000/hbase/value /property property namehbase.tmp.dir/name value/u01/hbase-2.6.1/tmp/value /property property namehbase.wal.provider/name valuefilesystem/value /property property namehbase.io.compress.snappy.codec/name valueorg.apache.hadoop.hbase.io.compress.xerial.SnappyCodec/value /property /configuration 3.2.2. 修改hbase-env.xml
如果启动出现SLF4J: Found binding in [jar:file:/u01/hbase-2.6.1/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
则添加以下配置 export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUPtrue export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUPtrue 这个命令的作用是设置环境变量 HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP 为 true。这意味着在启动 HBase 时将禁用 Hadoop 类路径查找功能。
通常情况下HBase 在启动时会尝试查找 Hadoop 的类路径以便能够与 Hadoop 集成。但是在某些环境中例如在不使用 Hadoop 或者希望使用自定义配置的情况下禁用这个功能是有意义的。通过设置此环境变量为 true可以避免 HBase 自动查找 Hadoop 类路径从而可能解决一些依赖性问题或者提高启动速度。
3.2.3. 添加环境变量
vim /etc/profile 或者 在/home目录中的.bashrc文件中 添加 export HBASE_HOME/u01/hbase-2.6.1 export PATH$PATH:$HBASE_HOME/bin 3.3. 启动hbase服务 ./bin/start-hbase.sh 启动成功后使用jps查看启动的服务有有HQuorumPeer、HMaster、HRegionServer
3.4. 验证snappy压缩
验证方法使用hbase shell创建两张表compress_1219_3和no_compress_1219_3一张指定使用snappy压缩另一张不指定然后使用hbase java api往这两张表写入相同的数据观察表的存储大小情况
3.4.1. 建表
使用hbase shell create compress_1219_3,{ NAME cf, COMPRESSION SNAPPY } create no_compress_1219_3,{ NAME cf } 3.4.2. 生成数据
执行两次依次向compress_1219_3和no_compress_1219_3写数据 package com.easipass; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { Configuration configuration HBaseConfiguration.create(); configuration.set(hbase.zookeeper.property.clientPort, 2181); // 如果是集群 则主机名用逗号分隔 configuration.set(hbase.zookeeper.quorum, 192.168.68.129); Connection connection ConnectionFactory.createConnection(configuration); //修改为compress_1219_3和no_compress_1219_3分别执行 Table table connection.getTable(TableName.valueOf(compress_1219_2)); //rowkey for (int i 1; i 200000; i) { Put put new Put(Bytes.toBytes(H5000000i)); //列簇列名列值 put.addColumn( Bytes.toBytes(cf), Bytes.toBytes(name), Bytes.toBytes(AAAAAAABBBB中文Hadoop、hbase使用snappy压缩5000000i) ); put.addColumn( Bytes.toBytes(cf), Bytes.toBytes(age), Bytes.toBytes(AAAAAAABBBB中age文Hadoop、hbase使用snappy压缩5000000i) ); table.put(put); } table.close(); connection.close(); } } 3.4.3. 从内存flush到磁盘
使用hbase shell的flush命令手动将两张表的数据从内存写到磁盘 flush compress_1219_3 flush no_compress_1219_3 3.4.4. 未开启压缩
查看表配置
查看region大小和表存储大小
再来查看hdfs的存储情况
第一列为一个副本的大小第二列为3个副本占用的总存储大小
3.4.5. 开启压缩
查看表配置
查看region大小和表存储大小
共产生了一个region
再来查看hdfs的存储情况
第一列为一个副本的大小第二列为3个副本占用的总存储大小