HDFS

【Hadoop & Ecilpse】Exception in thread "main" org.apache.hadoop.security.AccessContr...

二次信任 提交于 2020-05-08 10:25:30
问题再现:   使用本机 Ecilpse (Windows环境) 去访问远程 hadoop 集群出现以下异常:    问题原因:   因为远程提交的情况下如果没有 hadoop 的系统环境变量,就会读取当前主机的用户名,所以 hadoop 集群的节点中没有该用户名的权限,所以出现的异常。 问题解决:   a、如果是测试环境,可以取消 hadoop hdfs 的用户权限检查。打开 conf/hdfs-site.xml,找到 dfs.permissions 属性修改为 false (默认为true),然后配置分发到其它节点,然后重启集群。 此法没有效果。   b、修改 hadoop location 参数,在 advanced parameter 选项卡中,找到 hadoop.job.ugi 项,将此项改为启动 hadoop 的用户名即可。(注意第一次设置的时候可能没有 hadoop.job.ugi 参数,报错后再去看就有了), 此法的参数没有找到!   c、因为 Eclipse 使用 hadoop 插件提交作业时,会默认以 当前主机的用户名 的身份去将作业写入 HDFS 文件系统中,由于 当前主机的用户名 对 hadoop 目录 并没有写入权限 ,所以导致异常的发生。     解决方法为:放开 hadoop 目录的权限 ,命令如下 : $ hadoop fs -chmod 777 /

Ubuntu搭建Hadoop的踩坑之旅(三)

萝らか妹 提交于 2020-05-08 09:24:51
之前的两篇文章介绍了如何从0开始到搭建好带有JDK的Ubuntu的过程,本来这篇文章是打算介绍搭建伪分布式集群的。但是后来想想反正伪分布式和完全分布式差不多,所幸直接介绍完全分布式了。 如果你想自己搭建伪分布式玩的话,参考: 在VMware下安装Ubuntu并部署Hadoop1.2.1分布式环境 - CSDN博客 这一篇主要参考这篇文章: Hadoop2.6.0安装 - 集群 (搭建的过程中没截图,大家可以到原博客看) 一、所需的环境和软件:(以下是我们的环境,仅供参考) 1. 操作系统:Windows 10 64位 2. 内存:4G以上(4G 可以搭建,不过虚拟机的运行可能会比较慢,这种情况可以考虑双系统) 3. VMware Workstation 12:VMware-workstation-full-12.5.7-5813279.exe 4. VMware Tools:通过VMware来安装 5. Ubuntu12.04:ubuntu-14.04.5-desktop-amd64.iso,ubuntu-16.04.3-desktop-amd64.iso(团队中两种系统都有人成功,不过高版本的比较顺利) 6. SSH:通过linux命令来安装 7. JDK1.8:jdk-8u11-linux-x64.tar.gz 8. Hadoop2.6.0:hadoop-2.6.0.tar

记一次菜鸟的问题排查:Docker搭建hadoop集群,通过JAVA API上传文件时出现异常Exception in thread "main" org.apache.ha...

ぃ、小莉子 提交于 2020-05-08 09:24:36
先说我的情况: 利用Docker搭建hadoop集群,包含1个master节点,2个slave节点。集群启动时将容器的50070、8088等端口映射到宿主机端口。在通过浏览器访问集群时访问"宿主机IP:映射端口"。到浏览器访问这一步都正常。但是在通过java api向集群上传文件时出现异常如下: Exception in thread " main " org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hadoop-yarn/staging/root/.staging/job_1556205714449_0006/job. split could only be replicated to 0 nodes instead of minReplication (= 1 ). There are 3 datanode(s) running and 3 node(s) are excluded in this operation. at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java: 1625 ) at org.apache.hadoop.hdfs

Windows平台安装及配置Hadoop(不借助cygwin)

南楼画角 提交于 2020-05-08 09:24:22
由于项目需要,我在VMware上装了几个虚拟机Windows server 2012 R2,并要搭建Hadoop集群。刚刚入门hadoop,一头雾水,然后开始搜各种教程,首先是选用cygwin进行安装,但是呢,后来出现一堆问题,然后放弃。最终选择直接在Windows server 2012 R2上安装配置Hadoop,在这里非常感谢博友教程,地址是 https://blog.csdn.net/antgan/article/details/52067441 ,基本是按照这个教程来的,主要说下我踩得坑吧。 整个流程是: JDK安装及环境变量配置(这个教程很多自己搜吧) 下载hadoop2.5.2.tar.gz 并解压,配置hadoop环境变量,修改hadoop配置文件,我的是直接放到C目录下,即C:\hadoop-2.5.2 其文件目录为 下载 hadooponwindows-master.zip 并解压,将bin目录替换原来hadoop目录下的bin目录即可 运行环境:运行cmd,窗口起到C:\hadoop-2.5.2\bin下,执行“hdfs namenode -format”命令,这里开始报错, 跟hdfs-site.xml文件相关, 异常: 2 字节的 UTF-8 序列的字节 2 无效 <?xml version="1.0" encoding="UTF-8"?> 直接将UTF

hadoop集群搭建及易踩坑收录

半腔热情 提交于 2020-05-08 08:16:51
配置前先把域名映射配好哈 详情参考我的其他随笔(哪里不通可以在下方评论) 下载好hdfs.tar.gz 后 在/home/ldy下 mkdir apps/ tar -xzvf hdfs.tar.gz -C /home/ldy/apps/ #专门用来安装hdfs 和jdk的 修改环境变量:vim /etc/profile 在最后的fi上面添加 export HDP_HOME=/home/ldy/apps/hadoop-2.8.5/etc/hadoop #路径因人而定 export PATH=$PATH:$HDP_HOME/sbin : $HDP_HOME/bin hadoop-daemon.sh 等命令在sbin目录下(旧版的在bin下) 最好两个都配。jdk的配置也是一样的道理 当出现命令not found 时:source /etc/profile 即可 配置文件: 在/home/ldy/apps/hadoop-2.8.5/etc/hadoop下 vim hadoop-env.sh #告诉它java_home即可 Vim core-site.xml 如果你只有一个namenode的话,得将fs.defaultFS改成fs.default.name Vim hdfs-site.xml vim slaves 这里记录了datenode服务器的主机名,域名映射配好后

building confluentinc kafka-connect-hdfs

大憨熊 提交于 2020-05-08 05:49:51
When I try to compile I get an error about a missing SNAPSHOT dependency. The error looks something like this: Failed to execute goal on project kafka-connect-hdfs: Could not resolve dependencies for project io.confluent:kafka -connect-hdfs:jar: 3.1 . 0 -SNAPSHOT: Failure to find io.confluent:kafka -connect-avro-converter:jar: 3.1 . 0 -SNAPSHOT in http: // packages.confluent.io/maven/ was cached in the local repository, resolution will not be reattempted until the update interval of confluent has elapsed or updates are forced The HDFS connector uses a few dependencies which we sometimes use

不同用户操作hadoop,Permission denied: user=root, access=WRITE, inode="/user"

▼魔方 西西 提交于 2020-05-08 05:20:38
关于不能执行 Hadoop 命令 并报权限问题执行错误 1 、 Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x mkdir: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x put: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x 这些类似的权限问题都属于同类问题,他是我说我们的执行 Hadoop 命令的用户没有,执行权限。 刚开始我想解决问题的思路是,将当前用户授权。(这种想法是不正确的,不要为了简化输入命令,就试图修改这些东西) 现在的想法:用的他指定的用户去执行 [root@cdh1 data]#sudo -u hdfs hadoop fs -mkdir /newFile 或者 [root@cdh1 data]#sudo -u hdfs dfhs dfs -mkdir /newFile 更简单的是,先进入这个用户, su hdfs 然后在这上面执行相应的命令就 ok 我顺便说一下,为什么会出现这样的问题。 如果你是用 tar 包解压缩的方式

Hive SQL之分区表与分桶表

谁都会走 提交于 2020-05-08 03:16:05
  Hive sql是Hive 用户使用Hive的主要工具。Hive SQL是类似于ANSI SQL标准的SQL语言,但是两者有不完全相同。Hive SQL和Mysql的SQL方言最为接近,但是两者之间也存在着显著的差异,比如Hive不支持行级数据的插入、更新和删除,也不支持事务操作。    注: HIVE 2.*版本之后开始支持事务功能,以及对单条数据的插入更新等操作 Hive的相关概念 Hive数据库       Hive中的数据库从本质上来说仅仅就是一个目录或者命名空间,但是对于具有很多用户和组的集群来说,这个概念非常有用。首先,这样可以避免表命名冲突;其次,它等同于与关系型数据库中数据库的概念,是一组表或者表的逻辑组,非常容易理解 Hive表      Hive中的表和关系型数据库中table概念是类似的,每个table在Hive中都有一个相应的目录存储数据。如果说,你没有指定表的数据库,那么Hive会通过{HIVE_HOME}/conf/hive_site.xml配置文件中的hive.metastore.warehouse.dir属性来使用默认值(一般是/usr/hive/warehouse,也可以根据实际情况来进行修改该配置),所有的table都保存在这个目录中。     Hive中的表分为两类,分别为 内部表 和 外部表 内部表(managed table)     

Hive 官方手册翻译 -- Hive DML(数据操纵语言)

被刻印的时光 ゝ 提交于 2020-05-08 02:31:08
由 Confluence Administrator创建, 最终由 Lars Francke修改于 八月 15, 2018 原文链接 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML 翻译:Google Google翻译,金山软件 金山词霸 校对:南大通用 范振勇 (2018.10.6) 在Hive中,有多种方式修改数据: LOAD INSERT 从查询到目标表 从查询到目录 成从SQL蜂巢表 UPDATE DELETE MERGE 从Hive0.8起可以使用EXPORT和IMPORT命令。 一、从文件加载到表 在将数据加载到表中时,Hive不执行任何转换。当前,Load操作是纯复制/移动操作,仅将数据文件移动到与Hive表对应的位置。 1.1、 语法 LOAD DATA [ LOCAL ] INPATH ' filepath ' [ OVERWRITE ] INTO TABLE tablename [ PARTITION (partcol1=val1, partcol2=val2 ...) ] LOAD DATA [ LOCAL ] INPATH ' filepath ' [ OVERWRITE ] INTO TABLE tablename [ PARTITION (partcol1=val1,

Presto 架构和原理简介(转)

江枫思渺然 提交于 2020-05-07 22:14:11
Presto 是 Facebook 推出的一个基于Java开发的大数据分布式 SQL 查询引擎,可对从数 G 到数 P 的大数据进行交互式的查询,查询的速度达到商业数据仓库的级别,据称该引擎的性能是 Hive 的 10 倍以上。Presto 可以查询包括 Hive、Cassandra 甚至是一些商业的数据存储产品,单个 Presto 查询可合并来自多个数据源的数据进行统一分析。Presto 的目标是在可期望的响应时间内返回查询结果,Facebook 在内部多个数据存储中使用 Presto 交互式查询,包括 300PB 的数据仓库,超过 1000 个 Facebook 员工每天在使用 Presto 运行超过 3 万个查询,每天扫描超过 1PB 的数据。 目录: presto架构 presto低延迟原理 presto存储插件 presto执行过程 presto引擎对比 Presto架构 Presto查询引擎是一个Master-Slave的架构,由下面三部分组成: 一个Coordinator节点 一个Discovery Server节点 多个Worker节点 Coordinator: 负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行 Discovery Server: 通常内嵌于Coordinator节点中 Worker节点: 负责实际执行查询任务