STORM入门之(集成HDFS)

总体

Storm集成hdfs需要做前期工作

1.hadoop单机版安装

2.自己写hdfs demo 查看是否写入成功


首先让我们来安装hadoop 

版本:hadoop-2.6.5.tar

jdk:1.7

Hadoop部分

(1)hadoop配置文件修改

core-site.xml

<configuration>
		 <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/soc/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>     
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://10.176.63.105:9000</value>
        </property>
</configuration>
hdfs-site.xml

<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/soc/hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/soc/hadoop/tmp/dfs/data</value>
        </property>
		<property>
			<name>dfs.permissions.enabled</name>
             <value>false</value>
		</property>
</configuration>


(2)hadoop用户免密码操作:http://blog.csdn.net/yl3395017/article/details/78496979

(3)hadoop-native-64-2.6.0.tar增加解压后的文件放入到hadoop-2.6.5/lib

(4)如果在windows平台调用centos平台的hadoop ,需要在system32下加入hadoop2.6(x64)V0.2.zip中的hadoop.dll 否则会报错

(5)别忘记修改目录权限

(6)启动namenode datanode secondnamenode  脚本在hadoop-2.6.5/bin 或者是/sbin下

./start-dfs.sh

./stop-dfs.sh

(7)jps查看是否启动 namenode datanode secondnamenode 如果报错 需要查看hadoop日志


STROM部分

bolt构建

    private static HdfsBolt HdfsConfig(){
        // 输出字段分隔符
        RecordFormat format = new DelimitedRecordFormat().withFieldDelimiter("|");

        // 每1000个tuple同步到HDFS一次
        SyncPolicy syncPolicy = new CountSyncPolicy(1000);

        // 每个写出文件的大小为100MB
        FileRotationPolicy rotationPolicy = new FileSizeRotationPolicy(100.0f, FileSizeRotationPolicy.Units.MB);

        // 设置输出目录
        FileNameFormat fileNameFormat = new DefaultFileNameFormat().withPath("/soc/hadoop/tmp/dfs/data");

        // 执行HDFS地址
        HdfsBolt hdfsBolt = new HdfsBolt()
                .withFsUrl("hdfs://10.176.63.105:9000")
                .withFileNameFormat(fileNameFormat)
                .withRecordFormat(format)
                .withRotationPolicy(rotationPolicy)
                .withSyncPolicy(syncPolicy);
        return  hdfsBolt;

    }

Toplogy构建方式

builder.setBolt("Hdfs", HdfsConfig())


查询hdfs javademo

    public static void ReadFile() throws Exception {
        String uri = "hdfs://10.176.63.105:9000/soc/hadoop/tmp/dfs/data/Hdfs-1-0-1510634654752.txt";
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem. get(URI.create (uri), conf);
        InputStream in = null;
        try {
        in = fs.open( new Path(uri));
        IOUtils.copyBytes(in, System.out, 4096, false);
        } finally {
        IOUtils.closeStream(in);
        }
     }

具体的hadoop详情可以在  http://localhost:50070 查看

注意 localhost改为你自己的hadoop服务器

结果

启动storm入库生成hdfs文件成功



通过demo查询 hdfs 成功




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值