- 博客(67)
- 收藏
- 关注
原创 读json文件
scala> val fileRDD=sc.textFile(“hdfs://192.168.5.51:9000/kb09file/op.log”)scala> val jsonStrRDD=fileRDD.map(x=>x.split(’|’)).map(x=>(x(0),x(1)))scala> val jsonRDD=jsonStrRDD.map(x=>{var jsonStr=x._2;jsonStr= jsonStr.substring(0,jsonStr
2020-11-23 13:44:30
154
原创 读json文件
scala> val fileRDD=sc.textFile(“hdfs://192.168.116.60:9000/kb09file/op.log”)scala> val jsonStrRDD=fileRDD.map(x=>x.split(’|’)).map(x=>(x(0),x(1)))scala> val jsonRDD=jsonStrRDD.map(x=>{var jsonStr=x._2;jsonStr= jsonStr.substring(0,jsonS
2020-11-22 19:06:19
140
原创 读shell日志
将文件传到hdfs上:hdfs dfs -put “/opt/File/op.log” “/File”读取文件:val fileRDD=sc.textFile(“hdfs://192.168.5.51:9000/File/op.log”)按|分成前后两部分:val jsonStrRDD=fileRDD.map(x=>x.split(’|’)).map(x=>(x(0),x(1))) //’|’,"|“后面解析不了将前面id的部分拼接到后面:val jsonRDD=jsonStrRDD.
2020-11-22 19:05:31
163
原创 rdd‘建立连接
Java:SparkConf conf = new SparkConf().setAppName(“para”).setMaster(“local[*]”);JavaSparkContext sc = new JavaSparkContext(conf);Scala:val conf = new SparkConf().setMaster(“local[*]”).setAppName(“parallelize”)val sc = new SparkContext(conf)//写的时候new后面
2020-11-22 19:04:46
156
原创 hive-mysql-dataframe-scalab=版本
读json文件:val spark = SparkSession.builder().master(“local[*]”).appName(“1”).getOrCreate()import spark.implicits._val sc = spark.sparkContextval rdd1 = sc.textFile(“in/users.json”)rdd1.collect().foreach(println)//SparkSession要删掉() 直接写,不用加new !!rdd转换成
2020-11-22 19:04:20
82
原创 hive-mysql-DataFrame
将json文件转成DataFrame:spark-shell:1.开启spark-shell2.val df=spark.read.json(“file:///opt/File/users.json”) 默认读取hdfs,file:// 读取本地文件3.df.showjava:val conf = new SparkConf().setAppName(“1”).setMaster(“local[*]”)val sc = new SparkContext(conf)val rdd1 = sc
2020-11-22 19:03:43
160
原创 UDF
1、UDF:(一进一出)用户定义(普通)函数,只对单行数值产生作用val spark = SparkSession.builder().master(“local[*]”).appName(“1”).getOrCreate()import spark.implicits._val sc = spark.sparkContextval rdd = sc.textFile(“in/hobbies.txt”)val df = rdd.map(x => x.split(" ")).map(x =&
2020-11-22 19:02:56
406
原创 定义schama的两种方式
//定义schame的第一种方式val schema = StructType(Array(StructField(“name”, StringType),StructField(“age”, StringType),StructField(“yundong”, StringType)))//定义schame的第二种方式val schema = new StructType().add(“name”,StringType).add(“age”,StringType).add(“shen
2020-11-22 19:02:31
788
原创 2020-11-12
Idea的安装1.拖入ideaIU-2018.2.2.ex 开始安装:https://pan.baidu.com/s/18vcWyphS3eMWWSv6emNGvQ 提取码: 9z472.安装完成后,打开idea下的bin文件,找到idea64.exe.vmoptions3.到这个界面,将sn文件拖入即可。
2020-11-12 15:00:10
71
原创 scala
抽象类abstract和接口的差别:抽象类(extends来继承)捕捉子类通用特性 不能实例化 接口(implements来实现)是抽象方法的集合,继承接口即继承此接口的抽象方法抽象类和普通类的差别:抽象类不能被实例化 抽象类可以有构造函数 抽象方法不能被声明为静态 含有抽象方法的类必须申明为抽象类java:class ABC extends XYZ implements Interfacescala:trait接口 接口可以继承其他接口 calss abc extends 类/接口(trait
2020-10-29 14:56:24
66
原创 scala菜鸟
scala是面向对象的,也是面向函数的var: 可重读定义一个变量val:不可重复定义一个变量 但是可以继续值的修改都为空时,原始值是不一样的:var i:Int= 0 var s:String=_ null 必须大写定义函数:def fangfa(x:Int):Int={val r=x*x; print(x); r} 同一行写多个语句要用分号隔开x:Int 简单的值 x:=>Int 传过来的是地址过滤filter: .filter(%3==0).map(/4) 取出
2020-10-29 14:55:53
187
原创 scala元组和集合的区别
scala纯面向对象的语言元组:元组是不同类型的值的集合与列表list一样,元组也是不可变的,但与列表不同的是元组可以包含不同类型的元素a._1 a._2 访问第一/二个元素迭代元组: a.productIterator.foreach创建元组: val a=new Tuple(1,“hello”) val a=(1,“hh”)元素交换swap:当只有两个元素时可以使用List(列表):特征是其元素以线性方式存储,集合中可以存放重复对象所有元素类型相同 是不可变的一维/二维:List
2020-10-29 14:55:19
826
原创 scala6
groupBy:a.groupBy(x=>x.split(" "))(0) 按空格分组取第一个 可以结合模式匹配head last tail initinits:a=(1234) 输出:123 12 1 nulla.indices 返回下标intersect:取两个集合交集lastIndexOf:最后一个元素的位置indexOf:第一个出现的位置 只有一个时 则一样a.lengthCompare(n): 计算结果是:a.length-na.maxa.maxBy(&
2020-10-29 14:54:48
83
原创 scala5
java集合:数据的容器List:有序 可重复Set:无序 不可重复Map:无序 kv键值对 key不可重复scala集合:可变集合(Array List)不可变集合(数组)不可变字符串String可变字符串:StringBuilder StringBuffer按字母顺序查找:++ <=> ++: a ++ b (在列表的尾部添加另外一个列表)+::+ 集合与元素/集合与集合: a:+3 (把3放到a最后一个元素) a:+b (把Lis
2020-10-29 14:54:11
101
原创 Scala方法
取值:val a=number(0)赋值:number(3)=100number.map(_2)=number.map(x=>x2)++ 不去重合并集合++: 输出类型取决于右边元素往上添加:0 +: a 0加到前面 +和数字在一边a :+ 3 3加到后面 /: 从左边开始 \: 从右边开始addString:val a =List(1,2,3,4) val b= new StringBuilder a.addString(b) res20.toStri
2020-10-29 14:53:42
74
原创 scala层级及一些方法
scala数据层次结构:AnyAnyVal AnyRefdouble float long int short byte unit boolean char list option yourclass(scalaObject scala.String)nothing nullnothing单词计数:st.flatMap(x=>x.split(" ")).map(x=>(x,1)).groupBy(x=>x._1).
2020-10-29 14:53:07
260
原创 scala1
右边操纵数b的类型决定着返回结果的类型: a ++:b println(c.getClass().getName()) c的类型添加一个元素到最前面: 0 +: a添加一个元素到最后面: a :+ 010加上数组里的每项的和/:val c=(10 /: a)(+) a(1,2,3)则c=16 /:折叠返回一条数据将数组中的元素逐个添加到b中(直接拼在一起)([用,隔开]):val a=List(1,2,3,4) val b=new StringBuilder() val c=a.ad
2020-10-29 14:52:28
161
原创 mapreduce
1、hdfs读写文件流程hdfs写流程:1:客户端向namenode发出写文件请求2:namonode校验请求 检查权限 通过检查后返回输出流对象3:client端切割文件(128M)4:client根据namenode返回的可写的datanode列表和data数据发给最近的datanode client向输出流对象中写数据5:datenode写完一个块后会返回确认信息6:写完数据 关闭输出流7: 发送完成信号给NameNode强一致性:强一致性则需要所有DataNode写完后才向Name
2020-10-12 08:22:53
112
原创 hadoop具体框架
hadoop框架:1:hadoop-core:hdfs分布式文件存储系统:读文件流程写文件流程分布式:数据按块存储 块存在不同的机器上java api:1:首先创建maven工程2:其次加入依赖hadoop-corehadoop-commonhadoop-clienthadoop-hdfscommon-s-logging3:代码部分:1:Configuration对象2:FileSystem对象3:FSDataInputStream对象,读取数据4:FSDataOutpu
2020-10-12 08:21:51
186
原创 物流系统
数据仓库:面向分析的数据集合各种查询 维度 结构(1星型(以一个为中心) 2雪花(多层)) 深度 非易失目标:分析结果给管理层看 辅助决策数据库:对数据的增删改查支持3范式(单列数据不可分隔)目标:web项目数据仓库分层:ODS:数据接入层DWD:数据明细层DWS:数据汇总层ADS:数据应用层ODS:人物画像:id name gender born_date 籍贯地址表:用户关系表:消费:银行卡消费记录表:电子支付消费记录表:…收入:工作:DWD:主题:消费用户天
2020-10-12 08:21:16
313
原创 数据仓库
create database retail将表导入到mysql:有以下两种方法在命令行: mysql -uroot -pok retail < /root/day01/retail_db.sql 在mysql: use retail; source /root/day01/retail_db.sql use retail; show tables;select * from categories;select count(1) from customers;desc cu
2020-10-12 08:20:38
82
原创 2020-10-08
首先时间同步:1.确认是否已安装ntprpm –qa | grep ntp如有:yum –y remove ntpdate-4.2.6p5开始安装ntp:yum –y install ntp配置ntp服务:vi /etc/ntp.conf对于单机或者集群主机做如下修改:选择一个主机开始修改:vi /etc/ntp.conf当前节点ip地址:找到位置: restrict default nomodify notrap nopeer noquery增加(可复制上一行): restr
2020-10-08 13:45:08
74
原创 2020-10-08
hbase安装(前提是安装hadoop 单机hbase使用内置的zookeeper 如分布式需要安装zookeeper):tar -zxvf hbase-1.2.0-cdh5.14.2.tar.gz -C /optmv hbase-1.2.0-cdh5.14.2.tar.gz hbasecd hbase :1:vi /etc/profile:export PATH=JAVAHOME/bin:JAVA_HOME/bin:JAVAHOME/bin:JAVA_HOME/jre/bin:HADOOP
2020-10-08 13:44:31
48
原创 2020-10-08
tarmvrm -rfmv sqoop-env-template.sh sqoop-env.shvi sqoop-env.sh:export HADOOP_COMMON_HOME=/opt/hadoopexport HADOOP_MAPRED_HOME=/opt/hadoopexport HBASE_HOME=/opt/hbaseexport HIVE_HOME=/opt/hiveexport ZOOKEEPER_HOME=/opt/zkprexport ZOOCFGDIR=/opt/z
2020-10-08 13:43:34
56
原创 2020-10-08
条件时安装好了jdk java -verison以zip结尾的包:yum install -y unzipunzip apache-tomcat-8.5.45.ziprm -rf apache-tomcat-8.5.45.zipmv apache-tomcat-8.5.45/ tomcat-C 目录:指定目录 bin目录下一般都是命令chmod 777 *.shsh startup.sh 启动tomcat查看:jps 或者 ps -ef | grep tomcat Bootstra
2020-10-08 13:42:53
56
原创 2020-10-08
一台机器安装完hadoop 关机状态下克隆两台{!!!!!勾选创建完整克隆!!!!!}两台新的需要重新生成网络适配器打开三台机器vi /etc/sysconfig/network-scripts/ifcfg-ens33:1:改iip地址:最后一行2:主机名字(hostnamectl set-hostname mingzi) 输入hostname可查看主机名systemctl restart networksystemctl stop firewalldsystemctl stop fir
2020-10-08 13:42:09
47
原创 2020-10-08
1、hadoop集群搭建(伪分布式) OK2、zookeeper OK(时区同步 OK)3、core-site.xmla:name集群的名称(hdfs的nameservice)即ip地址改为ns 9000也删fs.defaultFShdfs://nsb:zookeeper 2181地址: ha.zookeeper.quorum hadoop001:2181,hadoop002:2181,hadoop003:21814、hdfs-site.xml nameservices集群下面
2020-10-08 13:41:27
52
原创 2020-10-08
Haddop安装:建议使用JDK 1.8.11 建议使用Hadoop 2.7.3拖入安装包:tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gzmv hadoop-2.6.0-cdh5.14.2 /opt/hadooprm -rf 删除安装包修改主机名字:hostnamectl set-hostname 名字hostname查询名字配置环境变量:vi /etc/profile在jdk配置导入三条后加上以下:注意是加上:export HADOOP_HOME=/o
2020-10-08 13:40:50
154
原创 2020-09-22Hive的DML操作
一、加载文件数据到表1:hive常用DML(数据操纵语言)操作:select update insert delete2:加载文件数据到表:hive>:load data [local] inpath “filepath” [overwrite] into table mingzi 或者外面输入:hdfs dfs -put wenjianlujing biaodeweizhia:LOCAL 关键字代表从本地文件系统加载文件,省略则代表从 HDFS 上加载文件b:从 HDFS 加载文件时候,f
2020-09-22 17:02:43
63
原创 Hhive
在hive中的语句HQL的练习:hive进去命令行:看库:show databases;建库/删库:create/drop schema hive 不是databases?进库:use ku看表:show tables;建表:create table employee(id int, name string);不需要指定长度mysql需要显示表结构:desc employee;显示创建表的信息:show create table employee;显示表名的分区show partiti
2020-09-17 20:18:41
98
原创 HIVE
20200917:1hive中的数据类型与mysql有什么区别基本类型:string binary 并且没有长度复杂类型:array map structhive比string多了string map struct array2hive中如何指定各种分隔符row format delimited列: fields termaneted by ‘’list:collection itemsmap keys …lines …array和struct用collection items ter
2020-09-17 20:18:08
62
原创 java与hdfs
Java与hadoop交互1、Configuration cfg=new Configuration();2、cfg.set(“fs.defaultFS”,“hdfs://ip地址:9000”);3、获取文件系统:FileSystem fs=FileSystem.get(cfg);1~3合起来的写法,与HDFS文件系统建立连接:FileSystem fs=FileSystem(new URI(“hdfs://ip地址:9000”),new Configuration(),“root”);4 获取
2020-09-16 08:18:55
227
原创 高可用集群搭建
1.最终去开发MapReduce计算程序2.新版本,hadoop2.x 出现了yarn:资源管理 -> MR没有后台的长服务yarn模型:container 容器,里面会运行我们的application master,map/reduce task目的:解耦计算程序和资源调度MapReduce on yarn架构:角色:resource manager 和 node manager搭建:将角色变成相应的活动JVM运行起来4台服务器,分别是node01 node02 node03 nod
2020-09-16 08:17:53
284
原创 yarn的搭建
1.最终去开发MapReduce计算程序2.新版本,hadoop2.x 出现了yarn:资源管理 -> MR没有后台的长服务yarn模型:container 容器,里面会运行我们的application master,map/reduce task目的:解耦计算程序和资源调度MapReduce on yarn架构:角色:resource manager 和 node manager搭建:将角色变成相应的活动JVM运行起来4台服务器,分别是node01 node02 node03 nod
2020-09-16 08:17:09
705
原创 Hadoop处的命令
格式化namenode:hdfs namenode -format启动hadoop:start-all.sh启动hadoop:start-all.shstop-all.sh但是有时候直接启动进程并不完整,我们就需要使用单独的命令2.分模块启动(推荐)2.1.启动和关闭 namenode,secondaryNamenode和datenode (启动hdfs)start-dfs.sh stop-dfs.sh2.2启动yarnstart-yarn.sh s
2020-09-16 08:15:53
56
原创 hadoop集群的配置
一台机器安装完hadoop关机状态下克隆两台!!勾选创建完整克隆两台新的需要重新生成网络适配器打开三台机器vi /etc/sysconfig/network-scripts/ifcfg-ens33 给两台机器改ip地址一创建sessionsystemctl restart networkhostnamectl set-hostname mingzi增加互信:ssh-keygencat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys或者
2020-09-16 08:15:14
61
原创 zkpr集群的配置
1集群备好可以成功启动2zookper 时区同步 都可以正常运行3core-site.xmlname集群的名称zookeep 2181地址4hdfs-site.xmlnameservices集群下面的各个nameservice服务对应的映射包含rpc-address的地址9000和http-address的地址50070journalnode的共享地址(各个datonode)qjournal://datanode:8485;列表/集群名出错处理,切换方式及隔离机制的设置四个proper
2020-09-16 08:14:39
220
原创 mapjoin和reducejoin
20200912:1:两种区别:map join:在map端实现文件合并重写setup和map方法 没有reduce有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中reducejoin:map端实现分隔,reduce端实现文件合并2:shuuffer的过程:数据从map端溢出进入环形缓冲区 实现combiner partiton进行分区 key值进行排序讲解:1:mapjoin是会利用cachefile接入数据 与map端接入的数据进行逻辑连接 不需要写reducerre
2020-09-16 08:14:10
1409
1
原创 以前的总结
七、主机名和主机列表1.默认的主机名是localhost.localhostDomain2.修改主机名的两种方式:(1) hostnamectl set-hostname 新主机名(2) vi /etc/hostname 在其中把[主机名]改成[新主机名]需要重启才能生效3.主机列表 vi /etc/hosts 在其中加上:主机ip地址 主机名4.连接主机 ssh 用户名@主机名/ip地址:连接到对应的主机5.添加互信:(每台机器都要对其他机器做下面的动作)(1) 生成密钥:ssh-keyg
2020-09-15 19:53:06
79
原创 20200915:hbase的安装
hbase安装:tar -zxvf bao -C /optmv mingzi hbasecd hbase :1:vi conf/hbase-env.shexport JAVA_HOME=/opt/java8注视掉46 47:#export HBASE_MASTER_OPTS=“KaTeX parse error: Expected 'EOF', got '#' at position 90: …acheSize=256m"#̲export HBASE_RE…HBASE_REGIONSERV
2020-09-15 17:45:24
59
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人