大数据开发之Hadoop篇----hdfs读写权限操作

由于hdfs的结构和linux是差不多的,所以我们在hdfs的读写操作上也是会面临权限和路径问题问题,先让我们来看下这些都是些什么问题。

这里我先上传了一个README.txt的文件上去,通过hdfs dfs -ls /user/hadoop命令我们已经可以查看到hdfs上有了这个文件了,现在我们再上传一次,看会报什么错误。

这个时候就报了一个文件以存在的错误给你了,而在底层的实现过程是我前几篇博文hdfs写流程中提到到client在使用DistributedFileSystem这个对象的create方法和NN通信来确认你所提交的路径是否可写入。

现在我们切换到root用户来使用hdfs提交作业看下会发生什么?

我们来看下这个异常:put: Permission denied: user=root, access=WRITE, inode="/user/hadoop":hadoop:supergroup:drwxr-xr-x

提示的是Permission denied,就是权限不够你被拒绝了, user=root,使用的是root用户,access=WRITE,操作是写入。而这个hdfs历经的提示是:inode="/user/hadoop":hadoop:supergroup:drwxr-xr-x,只用hadoop可以执行写操作,连supergroup组和other组都只有读和执行的权限。

所以这个时候在生产上我们一般是这么做的:a,切换到hadoop用户来执行。如果你觉得每次都要这样的话很麻烦就使用hadoop用户帮你添加个权限。

这就可以使用root用户上传文件了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(Mysql、Postgresql...)间进行数据的传递,可以将一个关系 型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到HadoopHDFS中,也可以将HDFS的数据导进到关系型数据库中。项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速 的迭代开发,Sqoop独立成为一个Apache项目。目前主要有Sqoop1 和 Sqoop2 两大版本。 Sqoop简介 大数据-sqoop全文共16页,当前为第1页。 Sqoop1 和 Sqoop2 结构图。左图是Sqoop1 架构,右图是Sqoop2 架构 Sqoop架构图 大数据-sqoop全文共16页,当前为第2页。 Sqoop版本区别 Sqoop1与Sqoop2优缺点比较。 优点比较: Sqoop1的优点——架构部署简单。 Sqoop2的优点——多种交互方式,命令行,web UI,rest API,conncetor集中化管理,所有的链接安装在Sqoop server上,完善权限管理机制,connector规范化,仅仅负责数据的读写。 缺点比较: Sqoop1的缺点——命令行方式容易出错,格式紧耦合,无法支持所有数据类型,安全机制不够完善,例如密码暴漏, 安装需要root权限,connector必须符合JDBC模型 。 Sqoop2的缺点——架构稍复杂,配置部署更繁琐。 大数据-sqoop全文共16页,当前为第3页。 Sqoop2和Sqoop1的功能性对比 Sqoop的版本区别 功能 Sqoop1 Sqoop2 用于所有主要 RDBMS 的连接器 支持 不支持解决办法: 使用已在以下数据库上执行测试的通用 JDBC 连接器: Microsoft SQL Server 、 PostgreSQL 、 MySQL 和 Oracle 。 此连接器应在任何其它符合 JDBC 要求的数据库上运行。但是,性能可能无法与 Sqoop 中的专用连接器相比 Kerberos 安全集成 支持 不支持 数据从 RDBMS 传输至 Hive 或 HBase 支持 不支持解决办法: 按照此两步方法操作。 将数据从 RDBMS 导入 HDFS 在 Hive 中使用相应的工具和命令(例如 LOAD DATA 语句),手动将数据载入 Hive 或 Hbase 大数据-sqoop全文共16页,当前为第4页。 Sqoop版本区别 功能 Sqoop1 Sqoop2 数据从 Hive 或 HBase 传输至 RDBMS 不支持解决办法: 按照此两步方法操作。 从 Hive 或 HBase 将数据提取至 HDFS (作为文本或 Avro 文件) 使用 Sqoop 将上一步的输出导出至 RDBMS 不支持按照与 Sqoop 1 相同的解决方法操作 大数据-sqoop全文共16页,当前为第5页。 Sqoop的用途 Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了import和export这两个工具。 这两个工具非常强大,提供了很多选项帮助我们完成数据的迁移和同步。比如,下面两个潜在的需求: 1、业务数据存放在关系数据库中,如果数据量达到一定规模后需要对其进行分析或统计,单纯使用关系数据 库可能会成为瓶颈,这时可以将数据从业务数据库数据导入(import)到Hadoop平台进行离线分析。 2、对大规模的数据在Hadoop平台上进行分析以后,可能需要将结果同步到关系数据库中作为业务的辅助数据, 这时候需要将Hadoop平台分析后的数据导出(export)到关系数据库。 大数据-sqoop全文共16页,当前为第6页。 提纲 1 sqoop简介 2 sqoop安装 3 sqoop数据操作 大数据-sqoop全文共16页,当前为第7页。 环境软件准备: 1:Centos 6.8虚拟机 2:含有导入数据的Mysql数据库 3:Sqoop 安装包 下载地址: https://mirrors.cnnic.cn/apache/sqoop/ Sqoop安装 大数据-sqoop全文共16页,当前为第8页。 配置环境变量加入Sqoop的安装路径: 1、进入存放sqoop-1.4.7.tar.gz安装的目录执行下面的命令 sudo tar -zxvf /home/thinkgamer/下载/sqoop-1.4.7.tar.gz –C sudo mv sqoop-1.4.7/ sqoop 2、编辑/etc/profile文件,声明Sqoop的home路径和在path加入bin的路径: vi /etc/profile 在文件最底部添
单项选择题 1. 下面哪个程序负责 HDFS 数据存储。   a)NameNode   b)Jobtracker   c)Datanode   d)secondaryNameNode   e)tasktracker 2. HDfS 中的 block 默认保存几份?   a)3 份   b)2 份   c)1 份   d)不确定 3. 下列哪个程序通常与 NameNode 在一个节点启动?   a)SecondaryNameNode   b)DataNode   c)TaskTracker   d)Jobtracker 4. Hadoop 作者 大数据面试题-全文共15页,当前为第1页。  a)Martin Fowler 大数据面试题-全文共15页,当前为第1页。   b)Kent Beck   c)Doug cutting 5. HDFS 默认 Block Size   a)32MB   b)64MB   c)128MB 6. 下列哪项通常是集群的最主要瓶颈   a)CPU   b)网络   c)磁盘   d)内存 7. 关于 SecondaryNameNode 哪项是正确的?   a)它是 NameNode 的热备   b)它对内存没有要求   c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间   d)SecondaryNameNode 应与 NameNode 部署到一个节点 多选题 8. 下列哪项可以作为集群的管理工具 大数据面试题-全文共15页,当前为第2页。  a)Puppet 大数据面试题-全文共15页,当前为第2页。   b)Pdsh   c)Cloudera Manager   d)d)Zookeeper 9. 配置机架感知的下面哪项正确   a)如果一个机架出问题,不会影响数据读写   b)写入数据的时候会写到不同机架的 DataNode 中   c)MapReduce 会根据机架获取离自己比较近的网络数据 10. Client 端上传文件的时候下列哪项正确   a)数据经过 NameNode 传递给 DataNode   b)Client 端将文件切分为 Block,依次上传   c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作 11. 下列哪个是 Hadoop 运行的模式   a)单机版   b)伪分布式   c)分布式 12. Cloudera 提供哪几种安装 CDH 的方法   a)Cloudera manager   b)Tar ball 大数据面试题-全文共15页,当前为第3页。  c)Yum d)Rpm 大数据面试题-全文共15页,当前为第3页。 判断题 13. Ganglia 不仅可以进行监控,也可以进行告警。( ) 14. Block Size 是不可以修改的。( ) 15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。( ) 16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。( ) 17. Cloudera CDH 是需要付费使用的。( ) 18. Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。( ) 19. Hadoop 支持数据的随机读写。( ) 20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。( ) 21. NameNode 本地磁盘保存了 Block 的位置信息。( ) 22. DataNode 通过长连接与 NameNode 保持通信。( ) 23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。( ) 24. Slave 节点要存储数据,所以它的磁盘越大越好。( ) 25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。( ) 26. Hadoop 默认调度器策略为 FIFO( ) 大数据面试题-全文共15页,当前为第4页。27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。( ) 大数据面试题-全文共15页,当前为第4页。 28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。( ) 29. 每个 map 槽就是一个线程。( ) 30. Mapreduce 的 input split 就是一个 block。( ) 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( ) 32. Ha

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值