The variety and complexity of data-intensive applications and systems have increased drastically over the past decade. A SQL-based big data analytics request running on Apache Spark can be very different from a deep learning training job using TensorFlow. Nevertheless, these data-intensive applications increasingly run on shared hardware resources in data centers or on high-performance computing (HPC) platforms. These hardware resources are also diverse today, ranging from general-purpose CPUs and GPUs to programmable FPGAs and specialized machine learning hardware such as TPUs. There is a pressing need for a more resource-aware infrastructure that effectively orchestrates different data-intensive tasks over heterogeneous processing units. To achieve this, our goal is to first investigate the resource consumption characteristics of different data-intensive workloads, and then to establish and implement guidelines for hardware resource management in data-intensive systems.