- 博客(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
253
原创 读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
254
原创 读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
251
原创 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
220
原创 hive-mysql-dataframe-scalab=版本
读json文件: val spark = SparkSession.builder().master(“local[*]”).appName(“1”).getOrCreate() import spark.implicits._ val sc = spark.sparkContext val rdd1 = sc.textFile(“in/users.json”) rdd1.collect().foreach(println) //SparkSession要删掉() 直接写,不用加new !! rdd转换成
2020-11-22 19:04:20
145
原创 hive-mysql-DataFrame
将json文件转成DataFrame: spark-shell: 1.开启spark-shell 2.val df=spark.read.json(“file:///opt/File/users.json”) 默认读取hdfs,file:// 读取本地文件 3.df.show java: val conf = new SparkConf().setAppName(“1”).setMaster(“local[*]”) val sc = new SparkContext(conf) val rdd1 = sc
2020-11-22 19:03:43
285
原创 UDF
1、UDF:(一进一出)用户定义(普通)函数,只对单行数值产生作用 val spark = SparkSession.builder() .master(“local[*]”).appName(“1”).getOrCreate() import spark.implicits._ val sc = spark.sparkContext val rdd = sc.textFile(“in/hobbies.txt”) val df = rdd.map(x => x.split(" ")).map(x =&
2020-11-22 19:02:56
670
原创 定义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
931
原创 2020-11-12
Idea的安装 1.拖入ideaIU-2018.2.2.ex 开始安装:https://pan.baidu.com/s/18vcWyphS3eMWWSv6emNGvQ 提取码: 9z47 2.安装完成后,打开idea下的bin文件,找到idea64.exe.vmoptions 3.到这个界面,将sn文件拖入即可。
2020-11-12 15:00:10
136
原创 scala
抽象类abstract和接口的差别:抽象类(extends来继承)捕捉子类通用特性 不能实例化 接口(implements来实现)是抽象方法的集合,继承接口即继承此接口的抽象方法 抽象类和普通类的差别:抽象类不能被实例化 抽象类可以有构造函数 抽象方法不能被声明为静态 含有抽象方法的类必须申明为抽象类 java: class ABC extends XYZ implements Interface scala:trait接口 接口可以继承其他接口 calss abc extends 类/接口(trait
2020-10-29 14:56:24
118
原创 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
282
原创 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
982
原创 scala6
groupBy:a.groupBy(x=>x.split(" "))(0) 按空格分组取第一个 可以结合模式匹配 head last tail init inits:a=(1234) 输出:123 12 1 null a.indices 返回下标 intersect:取两个集合交集 lastIndexOf:最后一个元素的位置 indexOf:第一个出现的位置 只有一个时 则一样 a.lengthCompare(n): 计算结果是:a.length-n a.max a.maxBy(&
2020-10-29 14:54:48
149
原创 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
168
原创 Scala方法
取值:val a=number(0) 赋值:number(3)=100 number.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
134
原创 scala层级及一些方法
scala数据层次结构: Any AnyVal AnyRef double float long int short byte unit boolean char list option yourclass(scalaObject scala.String) nothing null nothing 单词计数:st.flatMap(x=>x.split(" ")).map(x=>(x,1)).groupBy(x=>x._1).
2020-10-29 14:53:07
352
原创 scala1
右边操纵数b的类型决定着返回结果的类型: a ++:b println(c.getClass().getName()) c的类型 添加一个元素到最前面: 0 +: a 添加一个元素到最后面: a :+ 0 10加上数组里的每项的和/: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
252
原创 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
177
原创 hadoop具体框架
hadoop框架: 1:hadoop-core: hdfs分布式文件存储系统: 读文件流程 写文件流程 分布式:数据按块存储 块存在不同的机器上 java api: 1:首先创建maven工程 2:其次加入依赖 hadoop-core hadoop-common hadoop-client hadoop-hdfs common-s-logging 3:代码部分: 1:Configuration对象 2:FileSystem对象 3:FSDataInputStream对象,读取数据 4:FSDataOutpu
2020-10-12 08:21:51
330
原创 物流系统
数据仓库:面向分析的数据集合 各种查询 维度 结构(1星型(以一个为中心) 2雪花(多层)) 深度 非易失 目标:分析结果给管理层看 辅助决策 数据库:对数据的增删改查 支持3范式(单列数据不可分隔) 目标:web项目 数据仓库分层: ODS:数据接入层 DWD:数据明细层 DWS:数据汇总层 ADS:数据应用层 ODS: 人物画像:id name gender born_date 籍贯 地址表: 用户关系表: 消费: 银行卡消费记录表: 电子支付消费记录表: … 收入: 工作: DWD:主题:消费 用户天
2020-10-12 08:21:16
406
原创 数据仓库
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
136
原创 2020-10-08
首先时间同步: 1.确认是否已安装ntp rpm –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
134
原创 2020-10-08
hbase安装(前提是安装hadoop 单机hbase使用内置的zookeeper 如分布式需要安装zookeeper): tar -zxvf hbase-1.2.0-cdh5.14.2.tar.gz -C /opt mv hbase-1.2.0-cdh5.14.2.tar.gz hbase cd 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
84
原创 2020-10-08
tar mv rm -rf mv sqoop-env-template.sh sqoop-env.sh vi sqoop-env.sh: export HADOOP_COMMON_HOME=/opt/hadoop export HADOOP_MAPRED_HOME=/opt/hadoop export HBASE_HOME=/opt/hbase export HIVE_HOME=/opt/hive export ZOOKEEPER_HOME=/opt/zkpr export ZOOCFGDIR=/opt/z
2020-10-08 13:43:34
100
原创 2020-10-08
条件时安装好了jdk java -verison 以zip结尾的包: yum install -y unzip unzip apache-tomcat-8.5.45.zip rm -rf apache-tomcat-8.5.45.zip mv apache-tomcat-8.5.45/ tomcat -C 目录:指定目录 bin目录下一般都是命令 chmod 777 *.sh sh startup.sh 启动tomcat 查看:jps 或者 ps -ef | grep tomcat Bootstra
2020-10-08 13:42:53
96
原创 2020-10-08
一台机器安装完hadoop 关机状态下克隆两台 {!!!!!勾选创建完整克隆!!!!!} 两台新的需要重新生成网络适配器 打开三台机器 vi /etc/sysconfig/network-scripts/ifcfg-ens33: 1:改iip地址:最后一行 2:主机名字(hostnamectl set-hostname mingzi) 输入hostname可查看主机名 systemctl restart network systemctl stop firewalld systemctl stop fir
2020-10-08 13:42:09
87
原创 2020-10-08
1、hadoop集群搭建(伪分布式) OK 2、zookeeper OK(时区同步 OK) 3、core-site.xml a:name集群的名称(hdfs的nameservice)即ip地址改为ns 9000也删 fs.defaultFS hdfs://ns b:zookeeper 2181地址: ha.zookeeper.quorum hadoop001:2181,hadoop002:2181,hadoop003:2181 4、hdfs-site.xml nameservices集群下面
2020-10-08 13:41:27
99
原创 2020-10-08
Haddop安装:建议使用JDK 1.8.11 建议使用Hadoop 2.7.3 拖入安装包: tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz mv hadoop-2.6.0-cdh5.14.2 /opt/hadoop rm -rf 删除安装包 修改主机名字: hostnamectl set-hostname 名字 hostname查询名字 配置环境变量:vi /etc/profile 在jdk配置导入三条后加上以下:注意是加上: export HADOOP_HOME=/o
2020-10-08 13:40:50
283
原创 2020-09-22Hive的DML操作
一、加载文件数据到表 1:hive常用DML(数据操纵语言)操作:select update insert delete 2:加载文件数据到表:hive>:load data [local] inpath “filepath” [overwrite] into table mingzi 或者外面输入:hdfs dfs -put wenjianlujing biaodeweizhi a:LOCAL 关键字代表从本地文件系统加载文件,省略则代表从 HDFS 上加载文件 b:从 HDFS 加载文件时候,f
2020-09-22 17:02:43
146
原创 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
152
原创 HIVE
20200917: 1hive中的数据类型与mysql有什么区别 基本类型:string binary 并且没有长度 复杂类型:array map struct hive比string多了string map struct array 2hive中如何指定各种分隔符 row format delimited 列: fields termaneted by ‘’ list:collection items map keys … lines … array和struct用collection items ter
2020-09-17 20:18:08
106
原创 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
344
原创 高可用集群搭建
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
379
原创 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
821
原创 Hadoop处的命令
格式化namenode:hdfs namenode -format 启动hadoop:start-all.sh 启动hadoop: start-all.sh stop-all.sh 但是有时候直接启动进程并不完整,我们就需要使用单独的命令 2.分模块启动(推荐) 2.1.启动和关闭 namenode,secondaryNamenode和datenode (启动hdfs) start-dfs.sh stop-dfs.sh 2.2启动yarn start-yarn.sh s
2020-09-16 08:15:53
107
原创 hadoop集群的配置
一台机器安装完hadoop 关机状态下克隆两台 !!勾选创建完整克隆 两台新的需要重新生成网络适配器 打开三台机器 vi /etc/sysconfig/network-scripts/ifcfg-ens33 给两台机器改ip地址一创建session systemctl restart network hostnamectl set-hostname mingzi 增加互信: ssh-keygen cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys 或者
2020-09-16 08:15:14
112
原创 zkpr集群的配置
1集群备好可以成功启动 2zookper 时区同步 都可以正常运行 3core-site.xml name集群的名称 zookeep 2181地址 4hdfs-site.xml nameservices集群下面的各个nameservice服务对应的映射 包含rpc-address的地址9000和http-address的地址50070 journalnode的共享地址(各个datonode) qjournal://datanode:8485;列表/集群名 出错处理,切换方式及隔离机制的设置四个proper
2020-09-16 08:14:39
276
原创 mapjoin和reducejoin
20200912: 1:两种区别: map join:在map端实现文件合并重写setup和map方法 没有reduce 有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中 reducejoin:map端实现分隔,reduce端实现文件合并 2:shuuffer的过程: 数据从map端溢出进入环形缓冲区 实现combiner partiton进行分区 key值进行排序 讲解: 1:mapjoin是会利用cachefile接入数据 与map端接入的数据进行逻辑连接 不需要写reducer re
2020-09-16 08:14:10
1577
1
原创 以前的总结
七、主机名和主机列表 1.默认的主机名是localhost.localhostDomain 2.修改主机名的两种方式: (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
144
原创 20200915:hbase的安装
hbase安装: tar -zxvf bao -C /opt mv mingzi hbase cd hbase : 1:vi conf/hbase-env.sh export 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
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅