精华内容
下载资源
问答
  • hive和hadoop交互关系图:    上述流程图整理如下: 1、通过用户界面提交SQL 驱动接收SQL 2、驱动将SQL传送给编译器 3、编译器获得SQL 检查语法、匹配资源、去metastore查询 4、metastore返回相应的...

     

    1 简介:

     

    架构图:

     



     

     

     

    hive和hadoop交互关系图:

     



     上述流程图整理如下:

    1、通过用户界面提交SQL		驱动接收SQL
    2、驱动将SQL传送给编译器	
    3、编译器获得SQL		检查语法、匹配资源、去metastore查询
    4、metastore返回相应的数据库字段信息	优化SQL、产生执行计划
    5、驱动接收执行计划			将执行计划发送执行引擎
    6、执行引擎解析
    6.1、	DDL操作:直接和metastore交互
    		create table t1(name string);
    		drop table t1;
    6.1、	DML:直接读取数据,和namenode、datanode交互
    		select * from t1 limit 100;
    		select name form t1;   现在的hive已经能够针对查询单个列来不执行mr直接和namenode datanode交互了 
    
    6.1、	执行MapReduce
    		跑MR job
    		返回结果集信息
    		select count(1) from t1;

     

     

     

    a) 概念:

    Hive 是建立在 Hadoop  上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop  中的大规模数据的机制。Hive 定义了简单的类 SQL  查询语言,称为 QL ,它允许熟悉 SQL  的用户查询数据。
    同时,这个语言也允许熟悉 MapReduce  开发者的开发自定义的 mapper  和 reducer  来处理内建的 mapper 和 reducer  无法完成的复杂的分析工作。

    Hive作为数据仓库,仓库中的数据是存储在HDFS中,HQL语句的执行是转化为MapReduce的job执行的。也就是说,Hive只是把HQL语句转换为MapReduce的job,然后交给MapReduce去查询位于HDFS中的数据。
    因此,Hive依赖于Hadoop,没有Hadoop就没有Hive。

     

    b) 解释:

    b.1) 数据库侧重于一些操作型的事情,事务型的东西,底层设计侧重于操作

    b.2) 数据仓库侧重于查询,底层设计侧重于查询, 在相同数据量下,数据仓库查询速度会更快。

    b.3) hive和mapreduce的区别:
    相同处: 都是对海量数据的查询
    不同处:
    mapreduce是用Java开发的,对非Java的人有瓶颈,
    hive:封装在Hadoop之上的可以使用SQL进行海量数据查询的框架,因为SQL学习简单使用简单因此降低了使用门槛。

    b.4) ETL:
    E: 抽取 比如业务提供9个字段,我们之获取4个字段
    T: 转化 transform,比如有的业务男女用 true false,有的业务用1,0 在汇总到hive时,需要转成统一标示
    L: 加载 load

     

    b.5) hive其数据仓库的数据是外面导入进来的。

    b.6) hive转化成mapreduce时,需要知道启多少个map  多少个reduce,运行的数量和运行速度是需要关心的。 
    对hive的优化实际就是对生成的map-reduce的优化。

     

    c) HQL中的信息和hdfs对应规则如下:

    表 ----> hdfs文件/文件夹
    表中数据 ----> hdfs文件/文件夹内数据
    表中列  ----> hdfs文件数据的不同字段

    以上对应关系存放在hive的metastore组件中,metastore表现为关系数据库,可以是derby,也可以是mysql

    类比于 hibernate和mysql的对应关系:
    User  <------> cn_user    对应关系在 *.hbm.xml内

    metastore表现默认使用derby,但是这种存储太小众,一般需要将hive和hdfs对应关系存储在MySQL中

     

     

    hive除了有SQL, UDF
    还支持熟悉mr的用户自定义mapper reducer来处理内建的mapper reducer无法完成的复杂分析工作。

    是解析引擎,将SQL转换为mr任务,来在hadoop上执行。

     

    何时走jobtracker   select 非* ,

                                   (据说在高版本的hive中这种查询不需要再走mr,在hive0.13测试中发现还在走mr)
    何时走namenode     select *

     

     

    eg: select count(1) from stu;  处理后的结果就是reduce信息的输出结果,依旧会去Hadoop中来找最后的存储结果。

     

     

     只要具备Hadoop环境的每一台机器都可以安装hive, 没有必要安装成hive集群。

     

    2 安装hive

    2.1) 一定要配置在Hadoop集群的某个节点上

    2.2) 类比于QQ,是一款比较简易的客户端安装软件,安装简单

    2.3) 安装过程:

     

    [root@master local]# tar -zxvf hive-0.9.0.tar.gz   解压
    [root@master local]# mv hive-0.9.0 hive    改名
    [root@master hive]# cd conf 
    [root@master conf]# ls
    hive-default.xml.template  hive-exec-log4j.properties.template
    hive-env.sh.template       hive-log4j.properties.template
    [root@master conf]# mv hive-exec-log4j.properties.template  hive-exec-log4j.properties
    [root@master conf]# mv hive-log4j.properties.template hive-log4j.properties
    [root@master conf]# ls
    hive-default.xml.template  hive-exec-log4j.properties
    hive-env.sh.template       hive-log4j.properties
    [root@master conf]# mv hive-env.sh.template  hive-env.sh
    [root@master conf]# mv hive-default.xml.template  hive-default.xml
    [root@master conf]# cp hive-default.xml hive-site.xml
    [root@master conf]# ls
    hive-default.xml  hive-exec-log4j.properties  hive-site.xml
    hive-env.sh       hive-log4j.properties
    
    [root@master conf]# cat hive-site.xml    修改hive-site.xml 成如下样子:
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>  
            <name>javax.jdo.option.ConnectionURL</name>  
            <value>jdbc:mysql://single:3306/hive?createDatabaseIfNotExist=true</value>  
    </property>  
    <property>  
            <name>javax.jdo.option.ConnectionDriverName</name>  
            <value>com.mysql.jdbc.Driver</value>  
    </property>  
    <property>  
            <name>javax.jdo.option.ConnectionUserName</name>  
            <value>root</value>  
    </property>  
    <property>  
            <name>javax.jdo.option.ConnectionPassword</name>  
            <value>123456</value>  
    </property> 
    
    </configuration>
    
    [root@master bin]# vi hive-config.sh   修改hive/bin/hive-config.sh  增加如下信息:
    
    export JAVA_HOME=/usr/local/jdk
    export HADOOP_HOME=/usr/local/hadoop  // 关联上hadoop集群
    export HIVE_HOME=/usr/local/hive
    
    [root@master bin]# ls       
    ext  hive  hive-config.sh
    [root@master bin]# jps
    20011 Jps
    9800 JobTracker
    9572 NameNode
    9721 SecondaryNameNode
    [root@master bin]# hive    保证Hadoop集群开启下,来启动hive
    WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
    Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties ----> 标明配置写出日志文件的配置文件
    Hive history file=/tmp/root/hive_job_log_root_201412111909_207218151.txt   -----> 表示日志文件
    hive> show databases;   
    OK
    default
    Time taken: 14.129 seconds
    hive> use default;
    OK
    Time taken: 0.141 seconds
    hive> show tables;
    OK
    Time taken: 0.995 seconds
    hive> create table t1(id int);
    OK
    Time taken: 1.015 seconds
    hive> show tables;
    OK
    t1
    Time taken: 0.068 seconds
    hive> quit;
    [root@master bin]# ls -->上面表创建后,可见下面增加文件derby.log和metastore_db
    derby.log  ext  hive  hive-config.sh  metastore_db
    

     

     2.3.1) 配置hive环境变量:

    配置hive环境变量:
    export JAVA_HOME=/usr/local/jdk
    export HADOOP_HOME=/usr/local/hadoop
    export HIVE_HOME=/usr/local/hive
    export PATH=.:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
    [root@master data]# source /etc/profile   立马生效

     

     

    2.4) hive默认数据库对应hdfs路径:

     

    hive中的数据库,表对应HDFS中文件夹对应关系:
    
    http://master:50070/dfshealth.jsp
    --->Browse the filesystem
    --->user
    --->hive
    --->warehouse
    --->t1 看到我们通过命令创建的表 对应目录为:/user/hive/warehouse/t1
    
    其中:
    当hive部署成功后,hive默认的数据库default在hdfs上对应的目录是/user/hive/warehouse

     

     

     

    如下图:



     

     

     

    2.5) hive 映射关系metastore 将默认derby修改成mysql做法:

     

    前提
    a) mysql数据库安装上
    b) 如果mysql服务没有安装在当前hive所在机器,那么设置mysql服务远程连接和操作授权
    c) 将mysql-jdbc驱动扔到hive/lib下
    [root@master bin]# cp /usr/local/mysql-connector-java-5.1.10.jar ../lib
    d) 修改配置文件hive/bin/hive-site.xml  增加mysal连接信息:
    [root@master conf]# vi hive-site.xml    修改增加如下内容
    
    [root@master conf]# cat hive-site.xml 
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://master:3306/hive_cr00?createDatabaseIfNotExist=true</value>  hive_cr00表示数据库名
    </property>
    <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
    </property>
    <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>admin</value>
    </property>
    </configuration>
    
    e) 进入hive/bin,删除derby.log  metastore_db等信息:
    [root@master bin]# ls
    derby.log  ext  hive  hive-config.sh  metastore_db
    [root@master bin]# rm -rf derby.log 
    [root@master bin]# rm -rf metastore_db/
    [root@master bin]# ls
    ext  hive  hive-config.sh
    
    f) 继续执行hive命令:
    [root@master bin]# hive
    WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
    Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties
    Hive history file=/tmp/root/hive_job_log_root_201412112247_263167195.txt
    hive> show databases;
    OK
    default
    Time taken: 7.634 seconds
    hive> use default;    // 使用hive默认数据库
    OK
    Time taken: 0.094 seconds
    hive> show tables;
    OK
    Time taken: 1.034 seconds 
    hive> create table t1(id int);   // 创建表
    OK
    Time taken: 0.43 seconds
    hive> [root@master bin]# ls   // 此时没有在产生 derby.log  metastore_db等存储映射信息的文件和库
    ext  hive  hive-config.sh
    
    g) 进入MySQL服务,查看刚才hive创建操作生成的结果:
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema | 
    | hive_cr00          | 
    | mysql              | 
    | test               | 
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> use hive_cr00   //  使用配置文件 hive-site.xml内配置的库 hive_cr00
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +---------------------+
    | Tables_in_hive_cr00 |
    +---------------------+
    | BUCKETING_COLS      | 
    | CDS                 | 
    | COLUMNS_V2          | 
    | DATABASE_PARAMS     | 
    | DBS                 | 
    | PARTITION_KEYS      | 
    | SDS                 | 
    | SD_PARAMS           | 
    | SEQUENCE_TABLE      | 
    | SERDES              | 
    | SERDE_PARAMS        | 
    | SORT_COLS           | 
    | TABLE_PARAMS        | 
    | TBLS                | 
    +---------------------+
    14 rows in set (0.00 sec)
    
    mysql> select * from DBS    // 可以看到hive默认数据库名default,默认路径为hdfs://master:9000/user/hive/warehouse
        -> ;
    +-------+-----------------------+----------------------------------------+---------+
    | DB_ID | DESC                  | DB_LOCATION_URI                        | NAME    |
    +-------+-----------------------+----------------------------------------+---------+
    |     1 | Default Hive database | hdfs://master:9000/user/hive/warehouse | default | 
    +-------+-----
    
    mysql> select * from TBLS \G;   // 可以看到之前通过hive操作创建的表t1,
    *************************** 1. row ***************************
                TBL_ID: 1
           CREATE_TIME: 1418366898
                 DB_ID: 1
      LAST_ACCESS_TIME: 0
                 OWNER: root
             RETENTION: 0
                 SD_ID: 1
              TBL_NAME: t1
              TBL_TYPE: MANAGED_TABLE
    VIEW_EXPANDED_TEXT: NULL
    VIEW_ORIGINAL_TEXT: NULL
    
    mysql> select * from COLUMNS_V2   // 可以看到之前通过hive操作创建的表t1字段 id
        -> ;
    +-------+---------+-------------+-----------+-------------+
    | CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME | INTEGER_IDX |
    +-------+---------+-------------+-----------+-------------+
    |     1 | NULL    | id          | int       |           0 | 
    +-------+---------+-------------+-----------+-------------+
    1 row in set (0.00 sec)
    

     

     

     

     2.6) 通过hive将本地磁盘文件上传到hdfs中做法:

     



     

    实验代码:

    a) 通过hive创建单字段表,并上传本地文件到hive:

    [root@master data]# cat onecolumn   // 在本地磁盘文件中的创建数据
    1
    2
    3
    4
    5
    // 通过hive hql将本地文件数据上传到hive中(1 实际是将本地磁盘文件数据写到hdfs中 2 通过hive将hdfs和hive表对应关系保持到MySQL中)
    hive> load data local inpath '/usr/local/data/onecolumn' into table t1; 
    Copying data from file:/usr/local/data
    Copying file: file:/usr/local/data/onecolumn
    Loading data to table default.t1
    OK
    Time taken: 16.166 seconds
    hive> select * from t1;
    OK
    1
    2
    3
    4
    5
    Time taken: 0.812 seconds
    
    上述命令解释如下:
    load data local inpath '/usr/local/data/onecolumn' into table t1;
    load data 文件在本地(local)  inpath位置在   '可以是绝对路径也可以是相对路径'  into table t1(加载到表t1中)

     

    结果图:



     

     

    b) 通过hive创建多字段表,并上传本地文件到hive:

     

     

    通过hive创建多字段表:
    create table t2(id int, name string) row format delimited fields terminated by '\t';	
    解释: row format delimited fields terminated by 是固定不动的,不管是多少个字段, '\t'是可变的,表示字段之间的间隔
    从外部加载的时候 要知道如何划分字段。\t表示外部数据用这个方式来间隔彼此
    hive> create table t2(id int, name string) row format delimited fields terminated by '\t'; // hive中创建多字段表,接受的实际数据之间用'\t'间隔
    OK
    Time taken: 0.462 seconds
    
    [root@master data]# cat user // 准备本次磁盘文件数据
    1       zhangsan
    2       lisi
    3       wangwu
    4       zhaoliu
    
    hive> load data local inpath '/usr/local/data/user' into table t2;   
    
    hive> select * from t2;
    OK
    1       zhangsan
    2       lisi
    3       wangwu
    4       zhaoliu
    
    hive> select name from t2;    // 在查询某个/某几个列的时候 没办法全表扫描,只能通过map-reduce去做,
    Total MapReduce jobs = 1
    Launching Job 1 out of 1
    Number of reduce tasks is set to 0 since there's no reduce operator
    Starting Job = job_201412080304_0005, Tracking URL = http://master:50030/jobdetails.jsp?jobid=job_201412080304_0005
    Kill Command = /usr/local/hadoop/libexec/../bin/hadoop job  -Dmapred.job.tracker=master:9001 -kill job_201412080304_0005
    Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
    2014-12-12 00:15:53,940 Stage-1 map = 0%,  reduce = 0%
    2014-12-12 00:16:00,119 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.58 sec
    2014-12-12 00:16:01,129 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.58 sec
    2014-12-12 00:16:02,144 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 0.58 sec
    MapReduce Total cumulative CPU time: 580 msec
    Ended Job = job_201412080304_0005
    MapReduce Jobs Launched: 
    Job 0: Map: 1   Cumulative CPU: 0.58 sec   HDFS Read: 237 HDFS Write: 29 SUCCESS
    Total MapReduce CPU Time Spent: 580 msec
    OK
    zhangsan
    lisi
    wangwu
    zhaoliu
    Time taken: 42.547 seconds

     

     

     

    展开全文
  • 本地文件加载到hive

    2021-04-01 20:30:17
    1文件上传到服务器(xftp)2服务器上的文件上传到s3 1)上传文件 awss3cplocal_file_names3://transsion-bigdata-warehouse/test/shy/upload/upload.txt 2)查看是否上传成功 awss3lss3://transsion-bigdata-warehouse/...

    1 文件上传到服务器(xftp)


    2 服务器上的文件上传到s3
            1) 上传文件
            aws s3 cp local_file_name s3://transsion-bigdata-warehouse/test/shy/upload/upload.txt
            2) 查看是否上传成功
            aws s3 ls s3://transsion-bigdata-warehouse/test/shy/upload/


    3 启动spark-sql读取s3文件, 数据写入表中
            1) 启动客户端
            spark-sql \
                    -S \
                    --name ShyTestError \
                    --master yarn \
                    --deploy-mode client \
                    --num-executors 1 \
                    --executor-memory 4G \
                    --executor-cores 1 \
                    --driver-memory 512M \
                    --conf spark.dynamicAllocation.enabled=false \
                    --conf spark.default.parallelism=2 \
                    --conf spark.sql.shuffle.partitions=2

            2) 加载数据到临时表
            create table tranods_dev.t_shy_gazj as ( select _c0, _c1, _c2 from csv.`s3://transsion-bigdata-warehouse/test/shy/upload/upload.txt` )


            3) 验证数据是否加载成功
            select * from tranods_dev.t_shy_gazj limit 20;


    4 不再使用后清除临时表
            drop table tranods_dev.t_shy_gazj;

     

     


     

    展开全文
  • Hive - 将本地磁盘文件导入到Hive

    千次阅读 2019-01-21 18:05:47
    桌面有txt文件名为: words.txt 上传本地服务器: rz 在Hive中建表 create table tmp.words_counts (word string ) STORED AS TEXTFILE LOCATION '/user/portal/...将本地磁盘文件导入Hive表中: LOAD DATA LOCAL I...
    • 桌面有txt文件名为: words.txt
    • 上传至本地服务器: rz
    • 上传到HDFS: hadoop fs -put 12312312.txt /user/portal/user/portal/tmp/words.txt
    • 在Hive中建表

    create external table if not EXISTS tmp.words_counts (word string ) STORED AS TEXTFILE LOCATION '/user/portal/tmp/xx1/words';

    • 将本地磁盘文件导入Hive表中:

    LOAD DATA INPATH '/home/hadoop_portal/tmp/words.txt' OVERWRITE INTO TABLE tmp.words_counts

    • done
    展开全文
  • hive本地文件上传到文件系统出错

    千次阅读 2015-09-21 14:53:45
    以前什么都好好的,现在真是问题百出啊。...老老实实找到日志文件,再次定位问题 hive日志得查找方法,看 默认是在/tmp/root 错误日志: 2015-09-21 22:08:46,148 INFO [Thread-7]: hdfs.DFSClient (DFSOutputS

    以前什么都好好的,现在真是问题百出啊。。。真是坑


    问题来了。。。。网上说了一大堆hadoop问题,真是各种尝试遍了,不能忍啊。。。

    老老实实找到日志文件,再次定位问题

    hive日志得查找方法,看


    默认是在/tmp/root

    错误日志:

    2015-09-21 22:08:46,148 INFO  [Thread-7]: hdfs.DFSClient (DFSOutputStream.java:createBlockOutputStream(1378)) - Exception in createBlockOutputStream
    java.net.NoRouteToHostException: No route to host
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529)
    at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1516)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1318)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1272)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:525)
    2015-09-21 22:08:46,150 INFO  [Thread-7]: hdfs.DFSClient (DFSOutputStream.java:nextBlockOutputStream(1275)) - Abandoning BP-1942161036-127.0.0.1-1422629557699:blk_1073741826_1002
    2015-09-21 22:08:46,163 INFO  [Thread-7]: hdfs.DFSClient (DFSOutputStream.java:nextBlockOutputStream(1278)) - Excluding datanode 10.1.65.122:50010
    2015-09-21 22:08:46,192 WARN  [Thread-7]: hdfs.DFSClient (DFSOutputStream.java:run(627)) - DataStreamer Exception
    org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hive-root/hive_2015-09-21_22-08-45_011_4031672304169783871-1/-ext-10000/t_hive.txt could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1441)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2702)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:584)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2007)


    at org.apache.hadoop.ipc.Client.call(Client.java:1410)
    at org.apache.hadoop.ipc.Client.call(Client.java:1363)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
    at com.sun.proxy.$Proxy18.addBlock(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103)
    at com.sun.proxy.$Proxy18.addBlock(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:361)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1439)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1261)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:525)
    2015-09-21 22:08:46,193 ERROR [main]: exec.Task (SessionState.java:printError(545)) - Failed with exception File /tmp/hive-root/hive_2015-09-21_22-08-45_011_4031672304169783871-1/-ext-10000/t_hive.txt could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1441)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2702)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:584)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2007)


    org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /tmp/hive-root/hive_2015-09-21_22-08-45_011_4031672304169783871-1/-ext-10000/t_hive.txt could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1441)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2702)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:584)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2007)


    at org.apache.hadoop.ipc.Client.call(Client.java:1410)
    at org.apache.hadoop.ipc.Client.call(Client.java:1363)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
    at com.sun.proxy.$Proxy18.addBlock(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103)
    at com.sun.proxy.$Proxy18.addBlock(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:361)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1439)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1261)
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:525)


    2015-09-21 22:08:46,211 ERROR [main]: ql.Driver (SessionState.java:printError(545)) - FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.CopyTask
    2015-09-21 22:08:46,211 INFO  [main]: log.PerfLogger (PerfLogger.java:PerfLogEnd(135)) - </PERFLOG method=Driver.execute start=1442844525888 end=1442844526211 duration=323 from=org.apache.hadoop.hive.ql.Driver>
    2015-09-21 22:08:46,211 INFO  [main]: log.PerfLogger (PerfLogger.java:PerfLogBegin(108)) - <PERFLOG method=releaseLocks from=org.apache.hadoop.hive.ql.Driver>
    2015-09-21 22:08:46,212 INFO  [main]: log.PerfLogger (PerfLogger.java:PerfLogEnd(135)) - </PERFLOG method=releaseLocks start=1442844526211 end=1442844526212 duration=1 from=org.apache.hadoop.hive.ql.Driver>
    2015-09-21 22:08:46,242 INFO  [main]: log.PerfLogger (PerfLogger.java:PerfLogBegin(108)) - <PERFLOG method=releaseLocks from=org.apache.hadoop.hive.ql.Driver>
    2015-09-21 22:08:46,242 INFO  [main]: log.PerfLogger (PerfLogger.java:PerfLogEnd(135)) - </PERFLOG method=releaseLocks start=1442844526242 end=1442844526242 duration=0 from=org.apache.hadoop.hive.ql.Driver>

    再次判断错误是由于防火墙。。。。

    查看主节点防火墙。显示关闭,郁闷了。。没有人去开启啊

    最后纠结了半天,去看了一下从节点。。发现巨坑。。。不知道谁把这台机器得防火墙给开启了。。。。

    泪奔啊!!!


    骚年凡事不要怕,看日志吧。。。。。。。。。。。。。。

    展开全文
  • 文章目录一、scp命令上传文件/文件夹二、macOS登录远程服务器三、进入hive窗口四、hive中创建表五、向创建表中导入txt文件 一、scp命令上传文件/文件夹 可以选择: 上传一个文件: scp -r /path/filename ...
  • 1、首先,先将windows系统下的csv文件上传到虚拟机目录中。我的是在/my_dbdata/下 2、启动hive,我提前创建了一个名为toutiao的hive业务数据库。创建时使用的命令: create database if not exists toutiao comment...
  • 1.本地文本文件上传前的准备 将文本保存为"uft-8"格式,并用"|"进行字段间的分割(个人习惯,可以选用其它符号,但要避免和编程语言产生冲突)。 2.将文本文件通过Xshell上传到HDFS上 (1)首先要新建(Alt+N)一个...
  • 需求:最近有个需求,类似需要将pre环境的oracle文件,放prd环境中hive集群...通过脚本让prd环境的ftp服务器自动读取本地文件到服务器节点,然后在通过定时hive任务,以触发的形式自动将ftp服务器中的数据读入h...
  • hive 本地文件导入表

    2020-11-07 11:58:23
    Hive中将本地文件导入...将桌面文件上传到服务器 (使用shell命令 rz 或者直接在服务器的目录下用vim编辑保存为test.txt) 查看新建的idata_tmp.yanxue_hivetest表在hdfs的路径 show create table idata_tmp.stu
  • 请完成本地数据集的预处理: ... 新建HDFS目录bigdatacase/dataset,完成本地文件上传到HDFS目录中。 新建Hive外部表,location指向第2步的HDFS文件目录。 正确答案: 我的答案: ...
  • 在实际业务中,很多情况下,比如自建的字典传入线上数据库中供他人查询;或者一些线下业务,如线下客户经理记录数据,电话销售...一、将本地文件导入Hive表 首先要确保集群上存在对应的表,如果还没有建表,则需要先...
  • 数据上传hive

    2020-03-19 16:03:48
    一、从本地文件系统中导入数据到Hive表 先在Hive里面创建好表,如下: hive> create table wyp > (id int, name string, > age int, tel string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY ‘\...
  • HDFS常用文件操作命令 #创建目录 hdfs dfs -mkdir /demo1 #创建多级目录 hdfs dfs -mkdir -P /demo2/haha/wa (-P表示存在不再创建) #删除目录 hdfs dfs -rm -R 删除...#上传文件 ...#下载文件到本地 hd...
  • #将本地文件到hive建表时的hdfs路径下 hadoop fs -put /opt/datas/test.txt(要上传的文件) /user/hive/warehouse/stg/test/bus_date=20191101(上传的目标文件夹) tips: 若是需要将文件夹数据全部导入
  • 因为两个Hadoop集群都开启了kerberos身份认证,直接进行数据迁移不太好实现,所以需要先将A集群的数据下载到本地,再迁移到B集群本地,最后从B本地上传到B集群的Hive库里。不过有一个问题,因为Hive库表中有大量的小...
  • 将HDFS中的文件映射为Hive中的表

    万次阅读 2018-01-15 16:21:11
    上一篇文章中已经将服务器本地文件上传到HDFS指定文件夹中,现在要将文件中的内容存入Hive对应的表中,步骤如下。 su hive //切换到hive用户 create table test_hdfs_to_hive (id string, tel_num string,...
  • 题目:有一批气象观测站,现需要获取这些站点的观测数据,并存储到 ... 通过 shell 或 python 等调用 api,结果先暂存本地,最后将本地文件上传到 Hive 中。 B. 通过 datax 的 httpReader 和 hdfsWriter 插件,从...
  • 通过shell 或python 等调用api,结果先暂存本地,最后将本地文件上传到 Hive 中。 B.通过 datax 的 httpReader 和 hdfsWriter 插件,从而获取所需的数据。 C.比较理想的回答,是在计算引擎的 UDF 中调用查询 api,...
  • 实时读取本地文件到HDFS案例1)案例需求:实时监控Hive日志,并上传到HDFS中2)需求分析:3)实现步骤:Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包将commons-configuration-1.6.jar、hadoop-auth-2.7.2....
  • 一、创建表,并加载数据表中。请执行如下hive命令,并将执行结果截图提交。 创建数据库myhive,使用数据库myhive 创建表student,包含学号,... 创建本地文件test.txt 上传test.txtHDFS的当前路径中
  • hive创建表格并导入文件数据csv文件

    千次阅读 2019-11-18 16:53:30
    hive创建表格并导入本地数据 ...1.把文件上传到虚拟机 2.查看是否上传成功 1 cat /opt/ab.csv 3.启动hive 1 hive 4.hive创建表格 > reate table best( pm int comment'排名', xx string commen...
  • 实时读取本地文件到HDFS案例1)案例需求:实时监控Hive日志,并上传到HDFS中2)需求分析:3)实现步骤:Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包将commons-configuration-1.6.jar、hadoop-auth-2.7.2....
  • 1)案例需求:实时监控Hive日志,并上传到HDFS中 2)需求分析: 3)实现步骤: Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包 将commons-configuration-1.6.jar、 hadoop-auth-2.7.2.jar、 hadoop-...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 139
精华内容 55
关键字:

本地文件上传到hive