单机搭建hadoop环境(包括hdfs、yarn、hive)

单机可以搭建伪分布式hadoop环境,用来测试和开发使用,hadoop包括:

hdfs服务器,

yarn服务器,yarn的前提是hdfs服务器,

在前面两个的基础上,课可以搭建hive服务器,不过hive不属于hadoop的必须部分。

过程不要想的太复杂,其实挺简单,这里用最糙最快最直接的方法,在我的单节点虚拟机上,搭建一个hdfs+yarn+hive:

首先,要配置好Java的JAVA_HOME和PATH(etc/hadoop/hadoop-env.sh里的JAVA_HOME要改为本机的JAVA_HOME),还是有ssh本机的免密码登录。

安装配置启动hdfs服务器:

然后,下载hadoop安装包,这个包就包括了hdfs服务器和yarn服务器的执行文件和配置脚本。解压后,先配置 hdfs 服务器端,主要是两个配置文件:core-site.xml 和 hdfs-site.xml 这个site我估计就是服务器端配置的意思。我是用root用户配置和执行的:

etc/hadoop/core-site.xml (这里9000是hfds服务器,监听端口号,这里要用自己的IP地址,如果用127.0.0.1,远程集群连不进来)

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.32.155.57:9000</value>
    </property>

</configuration>

etc/hadoop/hdfs-site.xml (dfs.namenode.name.dir 和 dfs.namenode.data.dir)是服务器上存储元数据和数据的目录。

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

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/mnt/disk01/hadoop/dfs/name</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/mnt/disk01/hadoop/dfs/data</value>
    </property>

</configuration>

对上面配置的目录进行初始化/格式化:

 $ bin/hdfs namenode -format

执行sbin里的start-dfs.sh就可以启动hdfs文件系统服务器了,可以jps查看一下有哪些java进程:

如果在本地(服务器上),执行

hdfs dfs -ls /

就可以查看hdfs上的文件了,还可以用其它命令操作hdfs:

hdfs dfs -mkdir /user/root
hdfs dfs -mkdir input

安装配置启动yarn服务器:

上面只是配置了hdfs服务器,要想跑hive或mapreduce,还需要配置和启动调度器:yarn

etcd/hadoop/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>

etcd/hadoop/yarn-site.xml (这里 yarn.resourcemanager.hostname 要写自己的IP,yarn.nodemanager.env-whitelist 设置Container的能继承NodeManager的哪些环境变量)

<configuration>

<!-- Site specific YARN configuration properties -->

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

   <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>

</configuration>

MapReducer执行时,会在NodeManager上创建Container,在Container上执行Task(JAVA程序),该程序需要环境变量(如:JDK、HADOOP_MAPRED_HOME…),该参数就是 设置Container的能继承NodeManager的哪些环境变量。

-- 引自 

HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}-CSDN博客

启动yarn

start-yarn.sh
[root@neoap082 hadoop-3.3.6]# jps
430131 Jps
422691 ResourceManager
416862 NameNode
417388 SecondaryNameNode
422874 NodeManager
417082 DataNode

 执行 mapreduce 任务(java程序)

  $ bin/hdfs dfs -mkdir -p /user/root
  $ bin/hdfs dfs -mkdir input
  $ bin/hdfs dfs -put etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'
  $ bin/hdfs dfs -cat output/*

安装配置启动hive:

hive的元数据一般使用mysql存储,也可以使用hive自带的数据库derby,如果使用derby,那么hive的安装、配置、启动非常简单:

先要单独下载hive:

不需要修改任何hive的配置文件,就是最简情况下,只要配置好hdfs和yarn,不需要配置hive。

但是,第一次使用以前,需要初始化 hive:

hdfs dfs -mkdir -p /user/hive/warehouse
bin/schematool -dbType derby -initSchema

初始化的数据在metastore_db里,要重新初始化只要删除这个目录,再执行上面的命令即可,有些奇怪的问题可以这样解决。

然后直接执行 bin目录下的hive,这样就进入了hive命令行,也启动了hive服务器,这种只能用来学习测试,不过也足够了。

CREATE TABLE basic_data_textfile
(
    k00 INT,
    k01 DATE,
    k02 BOOLEAN,
    k03 TINYINT,
    k04 SMALLINT,
    k05 INT    ,
    k06 BIGINT ,
    k07 BIGINT,
    k08 FLOAT  ,
    k09 DOUBLE ,
    k10 DECIMAL(9,1) ,
    k11 DECIMAL(9,1) ,
    k12 TIMESTAMP,
    k13 DATE ,
    k14 TIMESTAMP,
    k15 CHAR(2),
    k16 STRING,
    k17 STRING ,
    k18 STRING   

row format delimited fields terminated by '\|' ;

# 从本地文件加载

load data local inpath '/opt/doris_2.0/basic_data.csv' into table basic_data;

# 从hdfs路径加载

load data inpath '/user/root/basic_data.csv' into table basic_data_lzo;

 hive表数据是一个hdfs目录下的文件,可以设置这些文件存储时的格式和压缩算法,例如,下面的basic_data_lzop表一lzo压缩,压缩文件格式为lzop:

set hive.exec.compress.output=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;
set io.compression.codecs=com.hadoop.compression.lzo.LzopCodec;

CREATE TABLE basic_data_lzop
(
    k00 INT,
    k01 DATE,
    k02 BOOLEAN,
    k03 TINYINT,
    k04 SMALLINT,
    k05 INT    ,
    k06 BIGINT ,
    k07 BIGINT,
    k08 FLOAT  ,
    k09 DOUBLE ,
    k10 DECIMAL(9,1) ,
    k11 DECIMAL(9,1) ,
    k12 TIMESTAMP,
    k13 DATE ,
    k14 TIMESTAMP,
    k15 CHAR(2),
    k16 STRING,
    k17 STRING ,
    k18 STRING   

row format delimited fields terminated by '\|' ;

insert into basic_data_lzop select * from basic_data;

 basic_data_orc_snappy 表以orc格式存储,数据块以snappy压缩:

CREATE TABLE basic_data_orc_snappy
(
    k00 INT,
    k01 DATE,
    k02 BOOLEAN,
    k03 TINYINT,
    k04 SMALLINT,
    k05 INT    ,
    k06 BIGINT ,
    k07 BIGINT,
    k08 FLOAT  ,
    k09 DOUBLE ,
    k10 DECIMAL(9,1) ,
    k11 DECIMAL(9,1) ,
    k12 TIMESTAMP,
    k13 DATE ,
    k14 TIMESTAMP,
    k15 CHAR(2),
    k16 STRING,
    k17 STRING ,
    k18 STRING   

row format delimited fields terminated by '\|' 
stored as orc tblproperties ("orc.compress"="SNAPPY");

insert into basic_data_orc_snappy select * from basic_data_textfile;

  • 23
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hadoop是一个由Apache基金会开源的大数据处理框架,包含多个组件,每个组件都有默认的端口号。下面是hadoop各组件的默认端口表: 1. HDFSHadoop分布式文件系统): - NameNode端口:50070 - SecondaryNameNode端口:50090 - DataNode端口:50075 2. YARNHadoop资源调度系统): - Resource Manager Web界面:8088 - ResourceManager Scheduler端口:8030 - ResourceManager通信端口:8031 - Node Manager通信端口:8040 - Node Manager Web界面:8042 3. HBase(Hadoop数据库): - Master端口:16000 - Master Web界面:16010 - RegionServer端口:16020 - RegionServer Web界面:16030 4. HiveHadoop数据仓库工具): - HiveServer2端口:10000 - JDBC服务端口:10001 - Web界面端口:9999 5. Spark(分布式计算框架): - Master Web界面:8080 - Master通信端口:7077 - Worker通信端口:8581 需要注意的是,这些端口都是默认设置,如果其中某些端口已被占用,需要修改配置文件中的端口号,并重启对应的服务。 ### 回答2: Hadoop是一个由Apache基金会开发的,用于分布式存储和处理大数据的开源软件框架。它主要包括HDFSYARN、HBase、Hive和Spark等组件。这些组件在使用过程中,都会使用到一些默认端口。下面我来逐一介绍这些组件的默认端口表。 1. HDFSHDFSHadoop分布式文件系统,它用于存储海量的数据。它的默认端口是8020和50070。 - 8020:这是HDFS的RPC端口,用于处理与客户端的请求。 - 50070:这是HDFS的Web服务端口,用于向用户展示文件系统的整体状态。 2. YARNYARNHadoop的资源管理系统,可以让用户在一个集群中运行各种应用程序。它的默认端口是8088和8030。 - 8088:这是YARN的Web服务端口,用于向用户展示集群整体的状态。 - 8030:这是YARN的RPC端口,用于处理与客户端的请求。 3. HBase: HBase是非关系型数据库,主要用于存储海量的结构化数据。它的默认端口是2181和16010。 - 2181:这是ZooKeeper服务的默认端口,HBase需要使用ZooKeeper来进行协调和管理。 - 16010:这是HBase的Web服务端口,用于向用户展示集群整体的状态。 4. HiveHive是一种基于Hadoop的数据仓库工具,可以让用户将结构化数据映射到Hadoop上进行分析。它的默认端口是10000。 - 10000:这是Hive的Thrift服务端口,用于与客户端进行交互。 5. Spark: Spark是一种快速而通用的计算引擎,可以支持Hadoop以外的数据处理。它的默认端口是7077和8080。 - 7077:这是Spark的Master的RPC端口,用于管理集群资源。 - 8080:这是Spark的Web服务端口,用于向用户展示集群整体的状态。 以上就是HadoopHDFSYARN、HBase、Hive和Spark等)默认端口表,希望对大家了解Hadoop组件默认端口有所帮助。 ### 回答3: Hadoop是一个分布式计算框架,由HDFSYarn、HBase、Hive和Spark等组件构成。每个组件都有不同的功能和默认端口。以下是Hadoop各组件的默认端口表: 1. HDFS HDFSHadoop分布式文件系统,用于存储和管理大规模数据集。默认端口是9000。 2. Yarn YarnHadoop的资源管理器,用于分配集群中的资源以及管理作业。默认端口是8088。 3. HBase HBase是一个非关系型数据库,用于存储海量数据并提供实时随机读写操作。默认端口是16010。 4. Hive Hive是一个数据仓库工具,用于处理大规模数据集。默认端口是10000。 5. Spark Spark是一个快速、通用的大数据处理引擎,主要用于数据处理和机器学习。默认端口是7077。 以上是Hadoop各组件的默认端口表,当然也可以根据配置文件进行修改。在使用Hadoop时,需要注意端口的使用和防火墙配置,确保能够正常地访问和使用各组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值