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

打印 上一主题 下一主题

主题 946|帖子 946|积分 2842

单机可以搭建伪分布式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,远程集群连不进来)
  1. <configuration>
  2.     <property>
  3.         <name>fs.defaultFS</name>
  4.         <value>hdfs://172.32.155.57:9000</value>
  5.     </property>
  6. </configuration>
复制代码
etc/hadoop/hdfs-site.xml (dfs.namenode.name.dir 和 dfs.namenode.data.dir)是服务器上存储元数据和数据的目录。
  1. <configuration>
  2.     <property>
  3.         <name>dfs.replication</name>
  4.         <value>1</value>
  5.     </property>
  6.     <property>
  7.         <name>dfs.namenode.name.dir</name>
  8.         <value>/mnt/disk01/hadoop/dfs/name</value>
  9.     </property>
  10.     <property>
  11.         <name>dfs.datanode.data.dir</name>
  12.         <value>/mnt/disk01/hadoop/dfs/data</value>
  13.     </property>
  14. </configuration>
复制代码
对上面设置的目录进行初始化/格式化:
  1. $ bin/hdfs namenode -format
复制代码
实行sbin里的start-dfs.sh就可以启动hdfs文件系统服务器了,可以jps检察一下有哪些java进程:

如果在本地(服务器上),实行
  1. hdfs dfs -ls /
复制代码
就可以检察hdfs上的文件了,还可以用其它命令操作hdfs:
  1. hdfs dfs -mkdir /user/root
  2. hdfs dfs -mkdir input
复制代码
安装设置启动yarn服务器:

上面只是设置了hdfs服务器,要想跑hive或mapreduce,还须要设置和启动调理器:yarn
etcd/hadoop/mapred-site.xml 
  1. <configuration>
  2.    <property>
  3.       <name>mapreduce.framework.name</name>
  4.       <value>yarn</value>
  5.    </property>
  6.    <property>
  7.         <name>mapreduce.application.classpath</name>
  8.         <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
  9.     </property>
  10. </configuration>
复制代码
etcd/hadoop/yarn-site.xml (这里 yarn.resourcemanager.hostname 要写本身的IP,yarn.nodemanager.env-whitelist 设置Container的能继承NodeManager的哪些环境变量)
  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3.     <property>
  4.       <name>yarn.resourcemanager.hostname</name>
  5.       <value>172.32.155.57</value>
  6.     </property>
  7.    <property>
  8.       <name>yarn.nodemanager.aux-services</name>
  9.       <value>mapreduce_shuffle</value>
  10.    </property>
  11.     <property>
  12.         <name>yarn.nodemanager.env-whitelist</name>
  13.         <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>
  14.     </property>
  15. </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
  1. start-yarn.sh
  2. [root@neoap082 hadoop-3.3.6]# jps
  3. 430131 Jps
  4. 422691 ResourceManager
  5. 416862 NameNode
  6. 417388 SecondaryNameNode
  7. 422874 NodeManager
  8. 417082 DataNode
复制代码
 实行 mapreduce 任务(java程序)
  1.   $ bin/hdfs dfs -mkdir -p /user/root
  2.   $ bin/hdfs dfs -mkdir input
  3.   $ bin/hdfs dfs -put etc/hadoop/*.xml input
  4.   $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'
  5.   $ bin/hdfs dfs -cat output/*
复制代码
安装设置启动hive:

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

不须要修改任何hive的设置文件,就是最简环境下,只要设置好hdfs和yarn,不须要设置hive。
但是,第一次使用以前,须要初始化 hive:
  
  1. hdfs dfs -mkdir -p /user/hive/warehouse
  2. bin/schematool -dbType derby -initSchema
  3. <strong>初始化的数据在metastore_db里,要重新初始化只要删除这个目录,再执行上面的命令即可,有些奇怪的问题可以这样解决。</strong>
复制代码
然后直接实行 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;
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表