首页
动态
时间轴
归档
友链
关于
Search
1
Spark在Yarn模式下提交未找到驱动
10,711 阅读
2
Spark提交任务内存不足
10,293 阅读
3
Flink集群搭建--Yarn模式
9,798 阅读
4
Spark SQL函数总结
8,516 阅读
5
Flume应用--日志采集
7,201 阅读
日常
大数据
经验分享
技术总结
登录
Search
标签搜索
bigdata
Hive
Spark
hadoop
Flume
建站
Flink
linux
Mysql
sqoop
Yarn
摸鱼
羊毛
docker
VMware
图床
sql
function
清泓
累计撰写
39
篇文章
累计收到
---
条评论
首页
动态
后台
栏目
日常
大数据
经验分享
技术总结
页面
时间轴
归档
友链
关于
搜索到
39
篇
清泓
的结果
2022-05-09
Flume启动参数详解
Flume启动参数详解{lamp/}命令获取命令行输入 flume-ng --help 获取启动参数[root@GokouLuli999 ~]# flume-ng --help Usage: /usr/tools/flume/bin/flume-ng <command> [options]... commands: help display this help text agent run a Flume agent avro-client run an avro Flume client version show Flume version info global options: --conf,-c <conf> use configs in <conf> directory --classpath,-C <cp> append to the classpath --dryrun,-d do not actually start Flume, just print the command --plugins-path <dirs> colon-separated list of plugins.d directories. See the plugins.d section in the user guide for more details. Default: $FLUME_HOME/plugins.d -Dproperty=value sets a Java system property value -Xproperty=value sets a Java -X option agent options: --name,-n <name> the name of this agent (required) --conf-file,-f <file> specify a config file (required if -z missing) --zkConnString,-z <str> specify the ZooKeeper connection to use (required if -f missing) --zkBasePath,-p <path> specify the base path in ZooKeeper for agent configs --no-reload-conf do not reload config file if changed --help,-h display help text avro-client options: --rpcProps,-P <file> RPC client properties file with server connection params --host,-H <host> hostname to which events will be sent --port,-p <port> port of the avro source --dirname <dir> directory to stream to avro source --filename,-F <file> text file to stream to avro source (default: std input) --headerFile,-R <file> File containing event headers as key/value pairs on each new line --help,-h display help text Either --rpcProps or both --host and --port must be specified. Note that if <conf> directory is specified, then it is always included first in the classpath. root@ubuntu:/home/wutao# root@ubuntu:/home/wutao# flume-ng --help Error: Unknown or unspecified command '--help' Usage: /usr/tools/flume/bin/flume-ng <command> [options]... commands: help display this help text agent run a Flume agent avro-client run an avro Flume client version show Flume version info global options: --conf,-c <conf> use configs in <conf> directory --classpath,-C <cp> append to the classpath --dryrun,-d do not actually start Flume, just print the command --plugins-path <dirs> colon-separated list of plugins.d directories. See the plugins.d section in the user guide for more details. Default: $FLUME_HOME/plugins.d -Dproperty=value sets a Java system property value -Xproperty=value sets a Java -X option agent options: --name,-n <name> the name of this agent (required) --conf-file,-f <file> specify a config file (required if -z missing) --zkConnString,-z <str> specify the ZooKeeper connection to use (required if -f missing) --zkBasePath,-p <path> specify the base path in ZooKeeper for agent configs --no-reload-conf do not reload config file if changed --help,-h display help text avro-client options: --rpcProps,-P <file> RPC client properties file with server connection params --host,-H <host> hostname to which events will be sent --port,-p <port> port of the avro source --dirname <dir> directory to stream to avro source --filename,-F <file> text file to stream to avro source (default: std input) --headerFile,-R <file> File containing event headers as key/value pairs on each new line --help,-h display help text Either --rpcProps or both --host and --port must be specified. Note that if <conf> directory is specified, then it is always included first in the classpath.命令参数描述help帮助agent运行一个flume agentarvo-client运行一个Arvo Flume客户端version显示Flume版本全局选项参数描述--conf或-c 在目录使用配置文件。指定配置文件路径--classpath或-C 追加一个classpath--dryrun或-d不真正运行Agent,只打印命令信息--plugins-path 插件目录列表 默认$FLUME_HOME/plugins.d-Dproperty=value设置一个java系统属性值-Xproperty=value设置一个java-X的选项Agent选项参数描述--name或-n agent名称(必填)--conf-file或-f 指定一个配置文件(如果zk信息缺失,必填)--zkConnString或-z 指定一个zookeeper连接信息--zkBasePath或-p 指定一个基本路径给agent配置--no-reload-conf配置文件更新了不重新加载--help或-h帮助信息avro-client选项参数描述--rpcProps或-P rpc客户端连接参数的配置文件--host或-H Event所要发送的hostname--port或-p Avro Source的端口--dirname Avro Source流到达的目录--filename或-F Avro Source流到达的文件名--headerFile或-R 包含事件头的信息(每一行都是key/value键值对的格式)的文件--help或-h帮助信息
2022年05月09日
2,795 阅读
0 评论
0 点赞
2022-05-09
Flume基本使用
Flume基本使用{lamp/}Flume概述(一).Flume是什么 Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。(二).Flume的特点 flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。{callout color="#f0ad4e"}flume的可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),Besteffort(数据发送到接收方后,不会进行确认)。{/callout}{callout color="#0aff33"}flume的可恢复性 还是靠Channel。推荐使用FileChannel,事件持久化在本地文件系统里(性能较差)。{/callout}(三).Flume的一些核心概念 Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。 Client生产数据,运行在一个独立的线程。 Source从Client收集数据,传递给Channel。 Sink从Channel收集数据,运行在一个独立线程。 Channel连接 sources 和 sinks ,这个有点像一个队列。 Events可以是日志记录、 avro 对象等。{card-default label="注意" width="100%"} 值得注意的是,Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS, HBase,甚至是另外一个Source等等。Flume支持用户建立多级流,也就是说,多个agent可以协同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes{/card-default}(四).Flume架构{callout color="#604def"}AgentFlume以agent为最小的独立运行单位,一个Agent包含多个source、channel、sink和其他组件{/callout}{callout color="#c4ef4d"}sourceflume提供多种source供用户进行选择,尽可能多的满足大部分日志采集的需求,常用的source的类型包括avro、exec、netcat、spooling-directory和syslog等。{/callout}{callout color="#ef4d4d"}channelflume中的channel不如source和sink那么重要,但却是不可忽视的组成部分。常用的channel为memory-channel,同时也有其他类型的channel,如JDBC、file-channel、custom-channel等。{/callout}{callout color="#4defe5"}sinkflume的sink也有很多种,常用的包括avro、logger、HDFS、Hbase以及file-roll等,除此之外还有其他类型的sink,如thrift、IRC、custom等。{/callout}{dotted startColor="#ff6c6c" endColor="#1989fa"/}Flume的安装与基本配置解压我的安装包在/usr/local/src/software下,安装目录我放在/usr/local/src下,具体命令如下:[root@master ~]# tar -zxvf /usr/local/src/software/apache-flume-1.7.0-bin.tar.gz -C /usr/local/src/为了方便后续使用,这里重命名目录[root@master ~]# mv /usr/local/src/apache-flume-1.7.0-bin /usr/local/src/flume配置环境变量环境变量配置的位置有多处,我这里配置当前用户可用[root@master ~]# vi /root/profile export FLUME_HOME=/usr/local/src/flume export PATH=$PATH:$FLUME_HOME/bin [root@master ~]# source /root/profile修改配置文件 flume需要修改的配置不多,更多是后续自定义需要监听的目录或端口的配置[root@master ~]# cd /usr/local/src/flume/conf [root@master conf]# mv flume-env.sh.template flume-env.sh [root@master conf]# vim flume-env.sh export JAVA_HOME=/usr/local/src/jdk8{dotted startColor="#ff6c6c" endColor="#1989fa"/}Flume的使用监听目录变化上传到HDFS创建配置文件创建配置文件,指定监听目录等信息。配置文件建议在flume安装目录下自建文件夹保存[root@master ~]# mkdir /usr/local/src/flume/job [root@master ~]# vi /usr/local/src/flume/job/test.conf# Name the components on this agent 命名组件 a1.sources = r1 #数据采集组件 a1.sinks = k1 #数据接收器组件 a1.channels = c1 #数据通道组件 # Describe/configure the source 配置(描述)监听源 a1.sources.r1.type = spooldir #spooldir(目录类型) a1.sources.r1.spoolDir = /root/logs #目录路径 a1.sources.r1.fileHeader= true #是否在header中添加完整的文件的完整信息 # Describe the sink 描述接收器 a1.sinks.k1.type = hdfs #输出到hdfs a1.sinks.k1.hdfs.path = /flume/events/%Y-%m-%d/ #文件保存路径 #控制文件夹,把10分钟之内的保存在一个文件夹中 a1.sinks.k1.hdfs.round = true #是否启用时间上的'舍弃' a1.sinks.k1.hdfs.roundValue=10 #时间上进行'舍弃'的值 a1.sinks.k1.hdfs.roundUnit = minute #时间上进行'舍弃'的单位 #描述文件迭代次数 满足其中一个条件则打开一个新的临时文件继续写入 a1.sinks.k1.hdfs.rollInterval = 3 #时隔多长将临时文件滚动成最终文件,单位为秒,如果设置为0,则表示关闭 a1.sinks.k1.hdfs.rollSize = 20 #当临时文件达到多少(单位:byte)时,滚动成目标文件,如果设置为0,则表示关闭 a1.sinks.k1.hdfs.rollCount = 5 #当event数据达到该数量时,将临时文件滚动成目标文件,如果设置为0.则表示关闭 a1.sinks.k1.hdfs.filePrefix = events- #保存数据的浅前缀名 a1.sinks.k1.hdfs.fileType = DataStream #文件格式,DataStream不会被压缩 a1.sinks.k1.hdfs.useLocalTimeStamp = true #是否使用当地时间 # Use a channel which buffers events in memory 使用内存通道缓冲事件 a1.channels.c1.type = memory #指定通道为内存 a1.channels.c1.capacity = 1000 #存储在通道内的最大容量 a1.channels.c1.transactionCapacity = 100 #从一个source中取或者传输到sink,每个事务中最大的事件数 # Bind the source and sink to the channel 将源和接收器绑定到通道 a1.sources.r1.channels = c1 #注意一个源可以有多个通道channels a1.sinks.k1.channel = c1{callout color="#ff0000"}更多配置信息参见 Flume配置参数详解 {/callout}这里监听的/root/logs目录.在这个目录创建的文件会被上传到hdfs的/flume/events/%Y-%m-%d/目录中启动[root@master flume]#bin/flume-ng agent -f job/test.conf -n a1 启动参数概述flume-ng flume启动器agent 运行一个flume agent(最小的独立运行单位,一个Agent包含多个source、channel、sink和其他组件)-f agent选项,指定一个配置文件(还有一种写法:--conf-file),此处为job目录下的test.conf-n agent名称 此处为a1{callout color="#b3ff00"}更多启动参数信息参见{/callout}
2022年05月09日
2,913 阅读
0 评论
1 点赞
2022-05-08
青龙面板-自动代挂脚本
青龙面板自动代挂脚本搭建教程{dotted startColor="#ff6c6c" endColor="#1989fa"/}{callout color="#f0ad4e"}大概算了下每个京东账号每天收入,单纯签到做任务京豆大概2块钱,京东极速版微信提现每天可以1块左右,东东农场每隔半个月左右就可获得免费水果(一般选择15元无门槛券),还有东东工厂制造实物等等。这篇博客简述青龙面板的搭建以及如何使用青龙面板自动运行脚本{/callout}安装青龙面板青龙面板需要搭建在linux服务器上,像腾讯云,阿里云的服务器都挺不错的,我使用的是腾讯云服务器,如果你有购买服务器的意向,可以点击下面链接了解详情 【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取! 当然,没有服务器也同样可以搭建青龙面板,只不过需要在在虚拟机中进行操作(具体操作可以查看我的两篇博客: VMware安装与配置, CentOS7安装与配置 ),那么,开始教程{lamp/}SSH连接上你的服务器,可以使用Xshell这类软件连接,或者直接在宝塔里运行命令安装。(关于宝塔的安装可参考我这篇博客: Linux安装宝塔面板 )首先安装docker安装 docker管理器(如果有安装宝塔面板,直接应用市场搜索安装)1.检查yum源且更新sudo yum check-update2.下载dockercurl -fsSL https://get.docker.com/ | sh3.启动dockersudo systemctl start docker4.查看docker状态sudo systemctl status docker.service5.设置开机自启sudo systemctl enable docker安装青龙面板拉取青龙面板wget -q https://raw.githubusercontents.com/shufflewzc/VIP/main/Scripts/sh/ql.sh -O ql.sh && bash ql.sh一键脚本,一直回车到最后就行了,可以认真的看看内容,但不要去修改一键脚本的设置,就一直回车到安装成功。防火墙注意放行 5700 端口登录面板面板地址:http://服务器IP:5700默认账号:admin默认密码:adminadmin当您使用以上密码首次登录后,面板会显示已初始化密码请在SSH终端内查看新密码(输出的结果就是实际的密码了 {“username”:”admin”,”password”:””} ),如果忘记记录下后台密码也没关系,执行以下代码即可找回后台账号:docker exec -it qinglong cat /ql/config/auth.json以上最终完成。那么都搭建好了 ,下一步就是在青龙面板拉取任务仓库。青龙面板拉取任务仓库{dotted startColor="#ff6c6c" endColor="#1989fa"/}打开你的青龙面板后台:找到定时任务,添加定时任务编辑定时任务,名称随意,定时规则可填0,命令填下面推荐的仓库段落引用的内容,如图:我这里演示拉的Faker2库ql repo https://github.com/yetuandui/Faker2.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator"按照截图添加任务,然后执行跑就可以了。仓库我就推荐下面几个,拉了仓库后立即点执行,这样就可以立即更新脚本了。定时任务前辈们已经帮我们做好了,一键添加就完事了,都不要手动一个个加。Zero205ql repo https://ghproxy.com/https://github.com/zero205/JD_tencent_scf.git “jd_|jx_|getJDCookie” “backUp|icon” “^jd[^_]|USER|sendNotify|sign_graphics_validate|JDJR” “main”smiek2221ql repo https://github.com/smiek2221/scripts.git “jd_|gua_” “” “ZooFaker_Necklace.js|JDJRValidator_Pure.js|sign_graphics_validate.js”Faker集合仓库ql repo https://ghproxy.com/https://github.com/shufflewzc/faker2.git “jd_|jx_|getJDCookie” “activity|backUp” “^jd[^_]|USER|ZooFaker_Necklace”fak2仓库ql repo https://github.com/yetuandui/Faker2.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" 怨念集合仓库ql repo https://hub.fastgit.org/yuannian1112/jd_scripts.git “jd_|jx_|getJDCookie” “activity|backUp” “^jd[^_]|USER|utils”龙珠ql repo https://github.com/whyour/hundun.git “quanx” “tokens|caiyun|didi|donate|fold|Env”混沌ql repo https://github.com/whyour/hundun.git “quanx” “tokens|caiyun|didi|donate|fold|Env”温某某ql repo https://ghproxy.com/https://github.com/shufflewzc/Wenmoux.git柠檬(胖虎)ql repo https://github.com/panghu999/panghu.git “jd_”starql repo https://github.com/star261/jd.git “scripts” “code”curtinlv仓库ql repo https://github.com/curtinlv/JD-Script.git在这里运行仓库:运行后仓库里的内容会像解压缩一样解压出来,如图:{dotted startColor="#ff6c6c" endColor="#1989fa"/}浏览器获取京东cookie教程以下浏览器都可以Chrome浏览器新版Edge浏览器操作步骤1.电脑浏览器打开京东网址 https://m.jd.com/2.按键盘F12键打开开发者工具,然后点下图中的图标打开:3.此时是未登录状态(使用手机短信验证码登录),如已登录请忽略此步骤使用手机短信验证码登录(此方式cookie有效时长大概31天,其他登录方式比较短)4.登录后,选择Network,有很多链接的话点箭头这里清空下,如图:5.点第一个链接(log.gif)进去,找到cookie,复制出来:新建一个TXT文本临时保存一下,下面需要用到。添加环境变量为了让脚本跑起来,这里只要添加一个变量就可以:变量名JD_COOKIE,变量内容为之前复制的cookie如图:到这里就设置好了,可以挂上京东账号跑了。这样基本上完成了,可以去你的京东账户看,时不时的就会有不少京豆了以及转账红包了:
2022年05月08日
6,140 阅读
0 评论
0 点赞
2022-05-07
Linux安装宝塔面板
Linux安装宝塔面板{lamp/}{callout color="#0dfbd9"}宝塔面板是一款很优秀的Web环境面板,宝塔面板支持Linux和Windows系统,可以一键安装LNMP和LAMP环境。以网站管理为核心,提供资源监控、文件管理、软件安装等运维常用功能模块。{/callout}使用ssh登录服务器推荐使用xshell进行操作ssh root@你的服务器公网IP 安装宝塔面板宝塔面板安装很简单,一条命令即可,本教程以CentOS7为例,安装命令为:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh 接下来等待安装完成即可,等待大概2分钟左右,显示“Complete!”,即安装完毕!登录安装完毕后会显示登录地址、用户名和密码:登录地址为:http://你的服务器IP:8888用户名:admin密码:随机生成,安装完毕后会有显示开放服务器端口腾讯云服务器需要开放端口,服务器默认配置的安全组禁用了宝塔面板需要的端口,宝塔面板依赖的端口号有:8888|888|80|443|20|21,所以需要登录到服务器控制台,开启这6个端口。一键安装LNMP或者LAMP环境登录宝塔后台后,会弹出一键安装web环境的界面,我们按照自身需求安装适合自己的LNMP环境或者LAMP环境。
2022年05月07日
3,888 阅读
0 评论
0 点赞
2022-05-06
Spark抽取MySQL数据到Hive
Spark抽取MySQL数据到Hive{lamp/}1.添加Maven依赖<dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> </dependencies> <build> <sourceDirectory>src/main/java</sourceDirectory> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.3.2</version> <executions> <execution> <id>compile-scala</id> <phase>compile</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> <execution> <id>test-compile-scala</id> <phase>test-compile</phase> <goals> <goal>add-source</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build>2.配置Hive-site.xml<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>数据库用户名</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>数据库密码</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://master:9083</value> </property>3.编写scala代码抽取数据<div>import org.apache.spark.sql.{DataFrame, SparkSession} object CreateCustomerTbl { def main(args: Array[String]): Unit = { val sqlSession: SparkSession = SparkSession.builder() .master("local[*]") //指定运行模式,本地调试时使用,打包时应删除,可在集群上指定模式 .appName("createCustpmerTable") .config("hive.metastore.uris", "thrift://localhost:9083") //配置Hive元数据访问 .enableHiveSupport() //开启hive支持 .getOrCreate() val df: DataFrame = sqlSession.read.format("jdbc") .option("url", "jdbc:mysql://localhost:3306/test") .option("driver", "com.mysql.jdbc.Driver") .option("user", "root") .option("password", "123456") .option("dbtable", "customer") .load() df.createOrReplaceTempView("mysql_customer") //在内存中建立临时表 df.show() sqlSession.sql("use ods") //使用Hive的ods库 //建立分区表 sqlSession.sql( """ |create table customer( |custkey string, |name string, |address string, |nationkey string, |phone string, |acctbal string, |mktsegment string, |comment string) |partitioned by (date string) |""".stripMargin) //抽取全量数据到customer表20220503分区中 sqlSession.sql( """ |insert overwrite table customer partition (date = "20220503") select * from mysql_customer |""".stripMargin) sqlSession.close() } }</div>4.打包代码提交至集群运行提交指令:spark-submit --files /usr/local/src/hive/conf/hive-site.xml \ --driver-class-path /usr/local/src/hive/lib/mysql-connector-java-5.1.38.jar \ --master yarn \ --deploy-mode client \ --class CreateCustomerTbl \ /root/Spark-01-1.0-SNAPSHOT.jar 10说明:--files 指定hive-site.xml配置文件位置--driver-class-path 指定mysql驱动位置--master yarn 指定以yarn模式运行--mode-client 以客户端模式运行--class 指定程序运行主类以yarn模式运行时需修改如下配置:修改hadoop yarn-site.xml配置文件,添加以下配置<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>修改spark-env.sh,添加JAVA_HOME和YARN_CONF_DIRexport JAVA_HOME=jdk所在路径 YARN_CONF_DIR=hadoop配置文件路径(eg:/usr/local/src/hadoop/etc/hadoop)
2022年05月06日
1,801 阅读
0 评论
1 点赞
2022-05-06
Hadoop完全分布式集群搭建
Hadoop完全分布式集群搭建{lamp/}环境准备操作环境主机名IP地址JDKhadoop版本CentOS7hadoop102192.168.128.172jdk1.8.0_191hadoop-2.7.2CentOS7hadoop103192.168.128.173jdk1.8.0_191hadoop-2.7.2CentOS7hadoop104192.168.128.174jdk1.8.0_191hadoop-2.7.2配置静态IP、主机名及主机映射1.修改各节点的网络配置命令行输入vim /etc/sysconfig/network-scripts/ifcfg-ens33进入虚拟机的网卡配置需要修改虚拟机的网卡默认配置,将虚拟机的网卡配置设置为静态ipip地址 根据 VMware 虚拟网络进行相关配置 如图在虚拟机里修改配置可以如图所示修改完命令行输入:service network restart重启网络服务对其余两个hadoop节点也同样做上述操作,只不过IPADDR值不一样,分别填其节点对应的ip2.修改节点主机名,并且添加各节点映射在命令行中输入vim /etc/hostname进入文件中修改hostname名称为hadoop102,在其他两个子节点的hostname处分别填hadoop103和hadoop104配置节点主机映射,命令行输入vim /etc/hosts添加节点映射这里多写了一些,此次搭建只需要添加hadoop102,hadoop103,hadoop104的映射即可关闭防火墙关闭防火墙后才能在三台机器之间互相通信所以关闭防火墙是很有必要的可以使用这条命令来检查我们虚拟机开机时的防火墙状态chkconfig iptables --list 如果是已经关闭应该会如下图所示如果没有关闭我们可以使用这两条命令来关闭我们的防火墙systemctl stop firewalld这条命令是在本次虚拟机开启过程中关闭防火墙,也就是一次性关闭还需要这条命令禁止防火墙关机自启动,这样防火墙就是是关闭了systemctl disable firewalld.service当hadoop102关闭防火墙后,对于hadoop103与hadoop104也要做同样的操作在防火墙关闭完成后,输入reboot重启虚拟机,检查防火墙是否已经关闭配置节点间ssh免密在hadoop102上输入ssh-keygen -t rsa一直按回车完成后在保证三台虚拟机开启且完成之前所有配置的情况下输入:[root@hadoop102 ~]# ssh-copy-id hadoop102 [root@hadoop102 ~]# ssh-copy-id hadoop103 [root@hadoop102 ~]# ssh-copy-id hadoop104注:如果提示not found 可能是ssh没有安装,输入yum install openssh-clients安装openssh在hadoop102上完成后,在其他两个节点上重复上述操作验证ssh免密登录是否成功这里可以看到使用ssh登录到了hadoop103节点上安装java和hadoop使用xftp将hadoop和java的压缩包上传到我们新建的/opt/software上同时新建一个module文件夹放置解压后的hadoop和java,新建文件夹代码如下、[root@hadoop102 ~]# cd /opt/ [root@hadoop102 ~]# mkdir software [root@hadoop102 ~]# mkdir module上传完成之后我们需要解压java和hadoop到/opt/module下,以便未来的管理解压代码如下tar -zxf jdk-8u191-linux-x64.tar.gz -C /opt/module/ tar -zxf hadoop-2.7.2.tar.gz -C /opt/module/解压完成后/opt/module如图所示配置环境变量vi /etc/profile在末尾添加export JAVA_HOME=/opt/module/jdk1.8.0_191 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin退出后,输入source /etc/profile使其生效验证java和hadoop环境变量是否配置完成[root@hadoop103 module]# java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode) [root@hadoop103 module]# hadoop version Hadoop 2.7.2 Subversion Unknown -r Unknown Compiled by root on 2017-05-22T10:49Z Compiled with protoc 2.5.0 From source with checksum d0fda26633fa762bff87ec759ebe689c This command was run using /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar [root@hadoop103 module]# 环境变量配置完成, 在其他两个节点上重复上述操作修改hadoop配置文件1.修改core-site.xmlcore-site.xml文件包含了NameNode主机地址,监听端口等信息,对于这个完全分布式模型来说,此次教程的主机地址为hadoo101,NameNode默认使用的端口为8020。<configuration> <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop101:8020</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property> </configuration>2.修改hdfs-site.xmlhdfs-site.xml用于配置/HDFS的相关属性,例如数据块的副本参数,数据块的副本对于完全分布式来说建议为3<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop104:50090</value> </property> <property> <name>dfs.name.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp/name</value> </property> <property> <name>dfs.data.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp/data</value> </property> </configuration>3.修改yarn-site.xml<configuration> <!-- Site specific YARN configuration properties --> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> </property> </configuration>4.修改mapred-site.xml重命名文件,本身是没有mapred-site.xml这个文件的输入mv mapred-site.xml.template mapred-site.xml完成后[root@hadoop102 ~]#vim mapred-site.xml <configuration> <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop102:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop102:19888</value> </property> </configuration>5.修改slavesslaves文件里面记录的是集群里所有DataNode的主机名[root@hadoop102 hadoop]# vim slaves hadoop102 hadoop103 hadoop1046.修改yarn-env.sh,配置JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_1917.修改hadoop-env.sh,配置JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_191这些配置文件改好后,返回/opt/module目录下把hadoop102下修改的文件分发到hadoop103和hadoop104下[root@hadoop102 module]# scp -r hadoop root@hadoop103:/opt/module/ [root@hadoop102 module]# scp -r hadoop root@hadoop104:/opt/module/测试Hadoop集群格式化namenode[root@hadoop2 hadoop-2.7.2]# bin/hdfs namenode –format格式化成功后,启动集群启动集群[root@hadoop2 hadoop-2.7.2]# start-all.sh每个节点上使用jps命令查看hadoop启动状况hadoop102[root@hadoop102 hadoop-2.7.2]# jpshadoop103[root@hadoop104 hadoop-2.7.2]# jpshadoop104[root@hadoop104 hadoop-2.7.2]# jps启动完成后在浏览器上访问可视化页面:http://namenode所在节点IP:50070
2022年05月06日
4,021 阅读
0 评论
1 点赞
2022-05-06
Hadoop伪分布式搭建
Hadoop伪分布式搭建{lamp/}前言hadoop集群模式:模式描述本地模式单机运行,只是用来演示一下官方案例伪分布式模式单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境完全分布式模式多台服务器组成分布式环境教程使用环境:操作环境主机名IP地址JDKHadoop版本CentOS7hadoop101192.168.128.101jdk1.8.0_191hadoop-2.7.2安装Hadoophadoop上传与解压配置好自己的虚拟机后,可以自行在网上下载xftp和xshell,对虚拟机进行远程上传文件和远程操作。下载安装好这两款软件后,就可以将hadoop的解压包上传至虚拟机,将解压包上传至/opt/software中,开始解压hadoop,将hadoop解压至/opt/module/中,同时建议将java也解压至/opt/module/中,方便后面的管理。配置环境变量vi /etc/profile具体配置:在/etc/profile的最后面添加如下配置,关于vi编辑器的用法可以自行百度export JAVA_HOME=/opt/module/jdk1.8.0_191 export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin使环境变量生效source /etc/profile测试环境变量是否生效hadoop version成功则显示Hadoop 2.7.2 Subversion Unknown -r Unknown Compiled by root on 2017-05-22T10:49Z Compiled with protoc 2.5.0 From source with checksum d0fda26633fa762bff87ec759ebe689c This command was run using /opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar配置Hadoop在伪分布式里只需要改三个配置文件core-site.xml和hdfs-site.xml还有hadoop-env.sh这三个文件在hadoop目录下的etc/hadoop文件夹下core-site.xml文件包含了NameNode主机地址,监听端口等信息,对于这个伪分布式模型来说,我的主机地址为hadoo101,NameNode默认使用的端口为8020。修改core-site.xml<configuration> <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop101:8020</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property> </configuration>修改hdfs-site.xmlhdfs-site.xml用于配置/HDFS的相关属性,例如数据块的副本参数,数据块的副本对于伪分布式来说应该为1<configuration> <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>修改hadoop-env.shexport JAVA_HOME=/opt/module/jdk1.8.0_191初始化Hadoophdfs namenode -format初始化成功:启动Hadoop集群在hadoop-2.7.2目录下输入sbin/start-dfs.sh sbin/start-yarn.sh或sbin/start-all.sh可以在web端查看HDFS文件系统http://192.168.128.101:50070192.168.128.171是我的ip地址,如果配置的不同,改一下即可
2022年05月06日
3,243 阅读
0 评论
0 点赞
1
...
4
5
6
首页
复制
搜索
前进
后退
重载网页