Sqoop框架基础王振龙

本节我们主要需要了解的是大数据的一些协作框架,也是属于Hadoop生态系统或周边的内容,比如:

**数据转换工具:Sqoop

**文件收集库框架:Flume

**任务调度框架:Oozie

**大数据Web工具:Hue

这些框架为什么成为主流,请自行百度谷歌,此处不再赘述。

Cloudera公司发布的CDH版本,在国内,很多大公司仍在使用,比如:一号店,京东,淘宝,百度等等。Cloudera公司发布的每一个CDH版本,其中一个最大的好处就是,帮我们解决了大数据Hadoop2.x生态系统中各个框架的版本兼容问题,我们直接选择某一版本,比如CDH5.3.6版本,其中hadoop版本2.5.0,hive版本0.13.1,flume版本1.4.5;还有一点就是类似Sqoop、Flume、Oozie等框架,在编译的时候都要依赖对应的Hadoop2.x版本,使用CDH版本的时候,已经给我们编译好了,无需再重新配置编译。

**这一点与之前配置安装apache的hadoop差不多,所以,直接写主体思路:

1、在modules中创建新目录cdh来解压hadoop-cdh

2、修改hadoop以下配置文件的JAVA_HOME

**hadoop-env.sh

**yarn-env.sh

**mapred-env.sh

3、继续修改以下配置文件

**core-site.xml

**hdfs-site.xml

**yarn-site.xml

**mapred-site.xml

**slaves

4、拷贝至其他服务器

1、修改zoo.cfg

2、修改myid(zkData目录不变的话,就不用再次修改了)

3、格式化HDFS,初始化zookeeper,并开启服务

三台机器:

分别开启:

**zookeeper服务,以及journalnode节点服务

$sh/opt/modules/zookeeper-xx.xx.xx/bin/zkServer.shstart

$sbin/hadoop-daemon.shstartjournalnode

**接着格式化namenode节点

$bin/hadoopnamenode-format

**然后在备用namenode机器上执行元数据同步

$bin/hdfsnamenode-bootstrapStandby

**最后依次启动即可

$sbin/start-dfs.sh

$sbin/start-yarn.sh

$sbin/mr-jobhistory-daemon.shstarthistoryserver

(尖叫提示:如果设置了日志聚合功能,请在yarn-site.xml中配置yarn.log.server.url,如下图)

**修改如下配置文件:

**hive-env.sh

**hive-site.xml

**拷贝JDBC驱动到hive的lib目录下

$cpmysql-connector-java-5.1.27-bin.jar/opt/modules/cdh/hive-0.13.1-cdh5.3.6/lib/

**启动mysql,设置用户,权限

**修改目录权限

确保HDFS正常运行,之后涉及命令:

$bin/hadoopfs-chmodg+w/tmp

$bin/hadoopfs-chmodg+w/user/hive/warehouse

z01:

z02:

z03:

**什么?这个英文单词的意思?只能这么解释:

SQL-TO-HADOOP

看加粗部分即可明白,这个东西其实就是一个连接传统关系型数据库和Hadoop的桥梁,有如下两个主要功能:

**把数据从Hadoop系统里抽取并导出到关系型数据库里

在转储过程中,sqoop利用mapreduce加快数据的传输速度,以批处理的方式进行数据传输。

如图所示:

**版本划分

**sqoop1(1.4.x+)和sqoop2(1.99.x+),注意这两个版本是完全不兼容的

**sqoop2的进化:

***引入了sqoopserver,集中化管理Connector

***多种访问方式:CLI,WebUI,RESTAPI

***引入基于角色的安全机制

**sqoop设计架构

**sqoop使用逻辑

基于上图,我们需要理解几个概念:

**import:

向HDFS、hive、hbase中写入数据

**export

向关系型数据库中写入数据

**安装sqoop

***将sqoop压缩包解压至/opt/modules/cdh目录下

***拷贝sqoop-env-template.sh文件并命名为sqoop-env.sh文件

***配置sqoop-env.sh

根据里面的英文注释,应该也能够明白需要改些什么:没错,就是让sqoop去关联其他服务,hbase先不用管它。

配置好后如图:

***拷贝jdbc的驱动到sqoop的lib目录下

$cp/opt/modules/apache-hive-0.13.1-bin/lib/mysql-connector-java-5.1.27-bin.jarlib/

**开始玩耍sqoop

***查看sqoop帮助:

$bin/sqoophelp,如图:

***测试sqoop是否连接成功

$bin/sqooplist-databases--connectjdbc:mysql://z01:3306/metastore--usernameroot--password123456

如图:

开启mysql服务:

#systemctlstartmysqld.service

登入mysql服务:

#mysql-uroot-p123456

创建一个新的数据库:

mysql>createdatabasedb_demo;

创建完成后,显示一下,如图:

在db_demo下创建一张表:

mysql>usedb_demo;

mysql>createtableuser(

->idint(4)primarykeynotnullauto_increment,

->namevarchar(255)notnull,

->sexvarchar(255)notnull

->);

mysql>insertintouser(name,sex)values('Thomas','Male');如果需要插入行数据,你知道怎么做。

最后我的表变成了这样:

step3、使用sqoop导入数据至HDFS

形式1:全部导入

$bin/sqoopimport\

--connectjdbc:mysql://z01:3306/db_demo\

--usernameroot\

--password123456\

--tableuser\

--target-dir/user/hive/warehouse/user\

--delete-target-dir\

--num-mappers1\

--fields-terminated-by"\t"

解释:

**--target-dir/user/hive/warehouse/user:指定HDFS输出目录

**--delete-target-dir\:如果上面输出目录存在,就先删除

**--num-mappers1\:设置map个数为1,默认情况下map个是4,默认会在输出目录生成4个文件

**--fields-terminated-by\t:指定文件的分隔符为\t

成功后,HDFS对应目录中会产生一个part文件,如图所示:

查看该文件:

形式2:导入指定查询结果

--fields-terminated-by"\t"\

--query'selectid,namefromuserwhereid>=3and$CONDITIONS'

--query'selectid,namefromuserwhereid>=3and$CONDITIONS':把select语句的查询结果导入

形式3:导入指定列

--columnsid,sex

形式4:where指定条件

--columnsid,name\

--where"id<=3"

hive>createdatabasedb_hive_demo;

createtabledb_hive_demo.user(

idint,

namestring,

sexstring

)

rowformatdelimitedfieldsterminatedby"\t";

操作如图:

--hive-import\

--hive-databasedb_hive_demo\

--hive-tableuser\

--hive-overwrite

完成后,查看:

mysql>createtableuser_from_hadoop(

->namevarchar(255)defaultnull,

->sexvarchar(255)defaultnull

$bin/sqoopexport\

--tableuser_from_hadoop\

--export-dir/user/hive/warehouse/db_hive_demo.db/user\

--input-fields-terminated-by"\t"

导入成功后,查看:

类似hive,sqoop也可以将语句保存在文件中,然后执行这个文件。

例如:

编写该文件:

$mkdiropt/

viopt/job_temp.opt,内容如图:

执行该文件:

$bin/sqoop--options-fileopt/job_temp.opt,完成后查看该hive表,如图:

本节讲解了如何在CDH中配置使用hadoop、hive、sqoop,以及学习了整个操作流程,大家可以自己试着练习一下,数据分析并把结果输出到Mysql数据库中以便于接口等服务。

THE END
1.英英释义词组同义词词源中文解释权限 威信 影响力 许可 权威人士,专家 authority自然拼读 au·thor·i·ty thorihti authority变形 复数:authorities authority词根 词根:authority adj. authoritative有权威的;命令式的;当局的 authoritarian独裁主义的;权力主义的 adv. authoritatively权威地;命令式地;可信地 https://www.yswxk.com/en-detail/873e9c0b50183b613336eea1020f4369
2.Majority在出海法律翻译中的双层含义澎湃号·湃客澎湃新闻Majority在法律英语中主要有以下两层含义: 1.指逾总数之一半或超过50%,常见于公司章程。 如: majority rule (1)多数决定原则。指某一团体的多数有权作出约束整个团体的决定的政治原则。它是由实际参与投票的多数决定的原则,不论其是否构成有资格投票的多数,此系共和制政体的基础。 https://www.thepaper.cn/newsDetail_forward_29659827
3.解锁英语限定词:理解它们的种类和用法解锁英语限定词:理解它们的种类和用法 英语中的限定词是一种非常重要的词类,它们出现在名词之前,用来限定名词的含义,明确名词所指代的事物。限定词虽然看似简单,但种类繁多,用法灵活,很多学习者在运用时常常感到困惑。本篇将详细讲解英语限定词的种类、功能和用法,并通过丰富的例句帮助你轻松掌握它们,让你的英语https://baijiahao.baidu.com/s?id=1818917630187138940&wfr=spider&for=pc
4.disabled是什么意思?了解这个英文单词的含义和用法电脑教程了解这个英文单词的含义和用法 简介:在现代Web开发中,disabled是一个常见的HTML属性,用于禁用表单元素或其他交互式元素。本文将深入探讨disabled属性的含义、用法以及在实际开发中的应用,帮助读者更好地理解和运用这个重要的概念。 工具原料: 系统版本:Windows 11 Version 22H2https://www.koudaipe.com/funny/99853.html
5.jurisdiction什么意思怎么读?单词用法记忆法发音音标单词:jurisdiction的快速记忆法 ◆记忆方法一:词根词缀记忆法:jurisdiction n 司法权(juris 司法+dict+ion→说法律的→司法权),dict,dic=say,assert, 表示“说话,断言”◆记忆方法二:词根词缀记忆法:jurisdiction n 司法权;权限(juris+dict说,命令+ion→法律上命令→司法权),jur,juris=swear,law,表示“发誓,法https://english.downyuan.com/index.php?m=home&c=View&a=index&aid=r12550
6.权限表英文怎么写权限表英语怎么说及英文单词沪江英语词库精选权限表英文怎么写、权限表用英语怎么说及怎么读、权限表英文怎么写及英文单词、权限表的英语读音及例句。http://m.hujiang.com/ciku/w_867439_262838927/
7.Excel表格在财务会计的应用基本操作学习笔记一mMTZZA'g另外:如果认证会员及以上级别的朋友有兴趣的话,最好把你的答案设置阅读权限,以便我们低级别的朋友有思考的空间。 YMy%2@6本题小结见14# F5|ER|3引用: ^a, 9~Y再通过这题衍生一题,目的希望真正了解本题用法,衍生题如下: EZ=d1mhttps://www.360doc.cn/article/7391024_135786900.html
8.法律英语词汇集锦可是in capital 是指英文字母的大写,通常尤指英文单词的第一个字母的大写。如北京应写成 Beijing。而 in words 却指数字的大写,如 518 写成 five hundred and eighteen。因此total number of containers (in words)是指“集装箱总数须用大写”,不能用一般阿拉伯数目字表示。He signed a cheque for $10,000 https://doc.mbalib.com/view/fab11455a817a0b8f02e84480bd66932.html
9.英语单词联想记忆法3. 查字典得到词的准确意思和用法; 4. 将词及它的意思记在笔记本上; 5. 将词及它的用法记在笔记本上; 6. 通过口头重复记单词; 7. 通过反复默读记单词; 8. 通过英文或中文释义来记单词; 9. 通过联想一个和所记单词相似的熟悉的词; 10.在头脑中通过拼写以帮助记忆; https://www.360wenmi.com/f/filemszees5s.html
10.英语医学范文11篇(全文)分析:本句在原书中没有全句翻译,只是在句中夹注了两个单词的汉语:cutie(美人儿),beater(敲打者),而这两个汉语词汇和其对应的英文在此句中的意思根本就是风马牛不相及。这样的注释,注犹未注,甚至还会误导学生。其实,cutie是一种非正式用法,意为“a cute person”(Soukhanov et al,1996:463),此处指父母眼https://www.99xueshu.com/w/ikeyi0xv09qe.html
11.自治区的英文怎么说及单词怎么写是中国少数民族聚居地设立的省级民族区域自治地方。其地方政府在内部事务方面,会拥有比其他省级行政区来得高的自主空间。在我国现有内蒙古自治区、广西壮族自治区、西藏自治区、宁夏回族自治区、新疆维吾尔自治区五个自治区。下面,小编就着重为大家整理一些关于自治区的英文翻译及用法,供考生学习。https://sh.xhd.cn/ielts/cihui/862671.html
12.走遍美国走遍美国的每个句子都有标准的真人读音, 英汉对照,即点即读。文中每个英文单词都有详细的解释、音标、发音以及例句用法,在阅读的时候只需在任意单词上长按即可查阅,真正做到哪里不懂点哪里。 走遍美国全文定位点读,同步高亮显示,长按任意单词即弹出词典,可加入生词表。 https://apps.apple.com/id/app/%E8%B5%B0%E9%81%8D%E7%BE%8E%E5%9B%BD-%E7%BB%8F%E5%85%B8%E7%BE%8E%E5%BC%8F%E8%8B%B1%E8%AF%AD%E5%90%AC%E5%8A%9B%E5%8F%A3%E8%AF%AD%E5%8D%95%E8%AF%8D%E5%AD%A6%E4%B9%A0/id1549641983?l=id
13.法律英语词汇大全20231204085734.pdfaffect是普通英语中最常见最普通的单词之一,意思是影响,通常用在口语和非正式的场合中。但在法律英语, affect本(义没有改变,仍然是影响),确实非常正式的用法,通常不能用influence等单词替换。如Thefailure ofeitherpartyatanytimeortimestorequireperformanceofanyprovisionhereofshallinnomanneraffectits rightatalatertimetohttps://m.book118.com/html/2023/1204/7161126005006014.shtm
14.Oracle中的SQL语言OSCHINA模式:是一个数据库对象的集合。模式为一个数据库用户所有,并且具有与该用户相同的名称,比如 SYSTEM 模式,SCOTT 模式等。在一个模式内部不可以直接访问其他其他模式的数据库对象,即使在有访问权限的情况下,也要指定模式名称才可以访问其他模式的数据库对象。 https://my.oschina.net/u/4392232/blog/3508013
15.footprint这个英文单词是什么意思?声明: 本网站大部分资源来源于用户创建编辑,上传,机构合作,自有兼职答题团队,如有侵犯了你的权益,请发送邮箱到feedback@deepthink.net.cn 本网站将在三个工作日内移除相关内容,刷刷题对内容所造成的任何后果不承担法律上的任何义务或责任 https://www.shuashuati.com/ti/cebabbda83e84470b070992422291aef.html
16.SpringCloud必会知识点最全(精美版)腾讯云开发者社区Spring Cloud的版本命名比较特殊,因为它不是一个组件,而是许多组件的集合,它的命名是以A到Z为首字母的一些单词组成(其实是伦敦地铁站的名字): Spring Clound 和Spring Boot版本对应关系 4.微服务场景模拟 4.1.创建父工程 微服务中需要同时创建多个项目,为了方便课堂演示,先创建一个父工程,后续的工程都以这个工程为父https://cloud.tencent.com/developer/article/1779837