HDFS

外网无法访问HDFS解决方法

戏子无情 提交于 2020-02-25 21:22:08
原文链接: https://blog.csdn.net/vaf714/article/details/82996860 A 云主机是 Linux 环境,搭建 Hadoop 伪分布式,公网 IP:49.4.71.xxx,内网 IP:192.168.0.80,主机名:ruixin4。 Hadoop 配置信息如下: <property> <name>fs . defaultFS< / name> <value>hdfs: / / ruixin4:8020< / value> < / property> Hosts 文件配置 : 127 . 0 . 0 . 1 localhost localhost . localdomain localhost4 localhost4 . localdomain4 ::1 localhost localhost . localdomain localhost6 localhost6 . localdomain6 192 . 168 . 0 . 80 ruixin4 在 A 云主机上开启 HDFS,JPS 查看进程都没有异常,通过 Shell 操作 HDFS 文件也没有问题。 通过浏览器访问 50070 端口管理界面也没有问题。 在本地机器上使用 Java API 操作远程 HDFS 文件,URI 使用公网 IP,代码如下: fileSystem =

#IT明星不是梦#Hive面试总结

浪子不回头ぞ 提交于 2020-02-25 19:04:41
1、Hive导出数据有几种方式?如何导出数据 (1)insert 导出本地: insert overwrite local directory '本地路径' select * from 表名; 导出到HDFS: insert overwrite directory 'hdfs路径' select * from 表名; (2)hadoop命令 hdfs dfs -get /user/hive/warehouse/student/student/txt /opt/bigdata/data (3)Bash shell $bin/hive -e "select * from b" (4)export导出hdfs export table default.student to 'hdfs路径' 2、将一个表的数据按照指定的分隔符(@)导出一各文件 insert overwrite local directory '本地路径' rom format delimited fields terminated by '@' select * from 表名; 3、分区和分桶的区别 分区: 是指按照数据表的某列或这某些列分为多个区,区从形式来讲可以理解为文件夹,比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天回生成大量的数据,导数数据表的内容过于巨大

45亿数据迁移记录

别等时光非礼了梦想. 提交于 2020-02-25 16:06:49
45亿数据迁移记录 背景 数据库数据量日益增加,逐渐开始显得很是臃肿,日常查询统计的时候,仅仅是count(1) 查询下总数,耗费的时间也在500s左右,而且之前的orcle数据库,前期建立的时候,也未考虑太多,未进行索引,分表,等优化。后面鉴于种种考虑,以及后期的规划,准备将数据迁移至clickhouse(oracle -> clickhouse)。 clickhouse 相关背景 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 相关介绍 迁移相关考虑 数据库现有数据45亿 每天还有新数据持续入库-数据量 3000万/天 资源 服务器资源 CPU 16C;内存 48G;硬盘 500G磁盘左右,总共3台 准备 开始查看相关的数据迁移工具 datax 阿里推出的一个,但是相对而言,社区不是很活跃。 相关链接 waterdrop 社区活跃,作者很用心。再次感谢在使用过程中给与我的帮助 相关链接 过程-时间-思考 选择方式,与迁移工具 首先,选择截断数据日期,进行之前的数据迁移。 最开始看的datax 的相关,这里说下datax的clickhouse官方还没提供指定的插件,所有无法直接到达clickhouse。 尝试 oracle -> datax -> mysql -> clickhouse 使用 clickhouse 的insert into

Hadoop学习笔记02

╄→尐↘猪︶ㄣ 提交于 2020-02-25 10:58:03
hdfs的shell操作 hadoop fs -操作命令 -参数 -ls #显示目录信息 -copyFromLocal #从本地文件系统中拷贝文件到hdfs路径 -copyToLocal #从hdfs中拷贝到本地文件系统 -put #等同于copyFromLocal -get #等同于copyToLocal -getmerge #合并下载多个文件 -moveFromLocal #类似剪切,本地->hdfs -moveToLocal #类似剪切,hdfs->本地 -cp #拷贝 hdfs->hdfs -mv #移动hdfs->hdfs -mkdir #在hdfs上创建文件夹 -rm #删除文件或文件夹 -rmdir #删除空目录 -cat #显示文件内容 hdfs运行机制 文件系统 hdfs有一个统一的命名空间,客户端访问hdfs文件时就是通过指定目录树中路径来访问 分布式 hdfs文件都是分块(block)存储的,其大小可通过dfs.blocksize来规定,hadoop2.x默认128M,老版本64M block分布在各个datanode服务节点上,并且可以存储多个副本(通过dfs.replication配置) namenode负责维护目录树,以及每个文件对应的block信息 hdfs适用于一次写入,多次读出,不支持文件的修改 hdfs的Java操作 导包 public

大数据的技术生态圈:Hadoop,hive,spark

冷暖自知 提交于 2020-02-24 23:14:22
一文教你看懂大数据的技术生态圈:Hadoop,hive,spark 责任编辑:editor005 | 来源: 企业网D1Net 2015-03-02 13:50:51 本文摘自:中国大数据 /*--> */ /*--> */ 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。 大数据,首先你要能存的下大数据。 传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs /tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样。HDFS为你管理这些数据。 存的下数据之后,你就开始考虑怎么处理数据。虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成T上P的数据(很大的数据哦

HDFS的搭建

我的未来我决定 提交于 2020-02-24 20:09:57
所有的节点都必须做的:(NameNode,DataNode) 1 需要知道hadoop依赖Java和SSH Java 1.5.x (以上),必须安装。安装目录为 /usr/java/jdk1.7.0 1 下载合适的jdk //此文件为64Linux 系统使用的 RPM包 http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.rpm 2 安装jdk rpm -ivh jdk-7-linux-x64.rpm 3 验证java [root@hadoop1 ~]# java -version java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode) [root@hadoop1 ~]# ls /usr/java/ default jdk1.7.0 latest 4 配置java环境变量 #vim /etc/profile //在profile文件中加入如下信息: #add for hadoop export JAVA_HOME =/usr/java/jdk1.7.0 export CLASSPATH =.:

hadoop集群搭建(hdfs)

核能气质少年 提交于 2020-02-24 20:08:18
   (搭建hadoop集群的前提是服务器已成功安装jdk以及服务器之间已设置免密码登录,服务器之间的免密码登录可参考《 linux服务器间ssh免密码登录 》) 1、下载hadoop安装包   wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0-src.tar.gz 2、解压安装包   tar zxvf hadoop-3.0.0-src.tar.gz 3、配置hadoop的环境变量    vi /etc/profile(三台机器)   增加以下配置    #Hadoop 3.0 export HADOOP_PREFIX=/home/hadoop/hadoop-3.0.0 export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin export HADOOP_COMMON_HOME=$HADOOP_PREFIX export HADOOP_HDFS_HOME=$HADOOP_PREFIX export HADOOP_MAPRED_HOME=$HADOOP_PREFIX export HADOOP_YARN_HOME=$HADOOP_PREFIX export HADOOP_INSTALL=$HADOOP_PREFIX

Hadoop之HDFS的FileSystem类的使用

僤鯓⒐⒋嵵緔 提交于 2020-02-23 17:25:42
1.导入jar包 解压hadoop-2.7.7.tar.gz,并在如下路径找到图中所示三个jar包 下图所示路径所有jar包 还要用到下面三个jar包 下图所示路径所有jar包 把以上jar包全部加入到项目中 2.查看文件信息 @Test public void connectHDFS() { Configuration conf = new Configuration(); //做一个配置 conf.set("fs.defaultFS", "hdfs://192.168.0.51:9000");//服务器的地址 端口号 try { FileSystem fileSystem = FileSystem.get(conf); FileStatus fileStatus = fileSystem.getFileStatus(new Path("/upload/hello.txt")); System.out.println(fileStatus.isFile()); //判断是不是一个文件 System.out.println(fileStatus.isDirectory()); //判断是不是一个文件夹 System.out.println(fileStatus.getPath()); //获取文件路径 System.out.println(fileStatus.getLen());

012 HDFS API 文件读写代码演示

我的梦境 提交于 2020-02-23 13:48:25
一:准备工作 1.新建class类    2.开启HDFS服务    3.将配置文件拷贝进resources路径      方便了Configuration的读取配置。 二:读出HDFS文件系统中的文件到控制台 4.读出在路径中的文件,显示在控制台上    5.分别解析,获取文件系统(两种方式)   (方式一)      (方式二)      这种方式不需要复制配置文件进resources,但是这种被写死了。 6.分别解析,写入流    7.优化readFile    三:把文件上传到HDFS上,即为WriteFile      注意点:fileName="user/beifeng/wc.input",加上wc.input 四:完整源代码 1 package com.senior.hdfs; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 7 import org.apache.hadoop.conf.Configuration; 8 import org.apache.hadoop.fs.FSDataInputStream; 9 import org.apache.hadoop.fs.FSDataOutputStream; 10 import

sqoop Mysql 导入到hdfs、hive

穿精又带淫゛_ 提交于 2020-02-23 13:44:24
sqoop是一个用于在Hadoop和关系型数据库(Oracle,Mysql...)间数据传递的开源工具。下面以mysql、sqlserver为例,介绍使用sqoop将数据从mysql、sqlserver导入到Hadoop中(HDFS、Hive) #导入命令及参数介绍 通用参数 参数名 参数说明 --connect <jdbc-uri> JDBC连接字符串 --username <username> 数据库用户名 --password <password> 数据库密码 -P 导入时,从控制台获取数据库密码 --password-file 从指定的文件中获取数据库密码 --verbose 导入时,输出更多的日志信息 控制参数 参数 说明 –append 将数据追加到hdfs中已经存在的dataset中。使用该参数,sqoop将把数据先导入到一个临时目录中,然后重新给文件命名到一个正式的目录中,以避免和该目录中已存在的文件重名。 –as-avrodatafile 将数据导入到一个Avro数据文件中 –as-sequencefile 将数据导入到一个sequence文件中 –as-textfile 将数据导入到一个普通文本文件中,生成该文本文件后,可以在hive中通过sql语句查询出结果。 –boundary-query 边界查询,也就是在导入前先通过SQL查询得到一个结果集