持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
| broker_name | 所使用的 broker 名称,可以通过 show broker 命令查看。不同的数据源需使用对应的 broker。 |
|---|
| broker_properties | 用于提供通过 broker 访问数据源的信息。不同的 broker,以及不同的访问方式,需要提供的信息不同。Apache HDFS:社区版本的 hdfs,支持简单认证、kerberos 认证。以及支持 HA 配置。l 简单认证:n hadoop.security.authentication = simple (默认)n username:hdfs 用户名n password:hdfs 密码l kerberos 认证:n hadoop.security.authentication = kerberosn kerberos_principal:指定 kerberos 的 principaln kerberos_keytab:指定 kerberos 的 keytab 文件路径。该文件必须为 broker 进程所在服务器上的文件。n kerberos_keytab_content:指定 kerberos 中 keytab 文件内容经过 base64 编码之后的内容。这个跟 kerberos_keytab 配置二选一就可以。l namenode HA: 通过配置 namenode HA,可以在 namenode 切换时,自动识别到新的 namenoden dfs.nameservices: 指定 hdfs 服务的名字,自定义,如:"dfs.nameservices" = "my_ha"n dfs.ha.namenodes.xxx:自定义 namenode 的名字,多个名字以逗号分隔。其中 xxx 为 dfs.nameservices 中自定义的名字,如 "dfs.ha.namenodes.my_ha" = "my_nn"n dfs.namenode.rpc-address.xxx.nn:指定 namenode 的rpc地址信息。其中 nn 表示 dfs.ha.namenodes.xxx 中配置的 namenode 的名字,如:"dfs.namenode.rpc-address.my_ha.my_nn" = "host:port"n dfs.client.failover.proxy.provider:指定 client 连接 namenode 的 provider,默认为:org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider |
| opt_properties | 用于指定一些特殊参数。语法:[PROPERTIES ("key"="value", ...)]可以指定如下参数:l timeout:指定导入操作的超时时间。默认超时为4小时。单位秒。l max_filter_ratio:最大容忍可过滤(数据不规范等原因)的数据比例。默认零容忍。l exec_mem_limit:设置导入使用的内存上限。默认为2G,单位字节。这里是指单个 BE 节点的内存上限。一个导入可能分布于多个BE。我们假设 1GB 数据在单个节点处理需要最大5GB内存。那么假设1GB文件分布在2个节点处理,那么理论上每个节点需要内存为2.5GB。则该参数可以设置为 2684354560,即2.5GB |
数据导入演示
| 操作步骤 | 说明 |
|---|
| 1 | 启动zookeeper集群(三台节点都启动) |
| | zkServer.sh start |
| 2 | 启动hdfs集群 |
| | start-dfs.sh |
| 3 | 进入mysqlclient,创建表 |
| | CREATE TABLE test_db . user_result **(**id INT **,**name VARCHAR ( 50 **),**age INT **,**gender INT **,**province VARCHAR ( 50 **),**city VARCHAR ( 50 **),**region VARCHAR ( 50 **),**phone VARCHAR ( 50 **),**birthday VARCHAR ( 50 **),**hobby VARCHAR ( 50 **),**register_date VARCHAR ( 50 **)****)**DUPLICATE KEY ( id **)**DISTRIBUTED BY HASH ( id ) BUCKETS 10 ; |
| 4 | 上传数据,将“资料\测试数据\user.csv”上传到hdfs |
| 5 | 导入数据 |
| | LOAD LABEL test_db . user_result**(DATA INFILE ( "hdfs://node1:8020/datas/user.csv" )INTO TABLE user_resultCOLUMNS TERMINATED BY ","FORMAT AS "csv"( id , name , age , gender , province , city , region , phone , birthday , hobby , register_date )****)WITH BROKER broker_name("dfs.nameservices" = "my_cluster" ,"dfs.ha.namenodes.my_cluster" = "nn1,nn2,nn3" ,"dfs.namenode.rpc-address.my_cluster.nn1" = "node1:8020" ,"dfs.namenode.rpc-address.my_cluster.nn2" = "node2:8020" ,"dfs.namenode.rpc-address.my_cluster.nn3" = "node3:8020" ,"dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider")PROPERTIES(** "max_filter_ratio"="0.00002" ); |