With many applications generating a large streaming data set, there is a critical need for scalable computing frameworks for processing it with low latency. Although there are various big data stream processing frameworks, they lack adequate virtualization and optimization mechanisms aimed at enhancing the process of big data stream processing. To address this problem, we propose a cloud-based framework that couples virtual machines and software-defined networks to enhance Cloud resource allocations to the applications with streaming data processing requirements. A novel Cloud resource allocation algorithm based on the proposed framework is also proposed. We validated the proposed resource allocation algorithm using CloudSIM and compared the proposed algorithm with baseline algorithms to determine its effectiveness. The results indicate that by using a virtual machine and an SDN controller, the virtual machine is able to handle 2000 requests at a maximum of 136 seconds.