Different options.
You mostly run aggregations but on a small subset of columns?
Hive with ORC, this is a column compressed format so only the columns you need will actually be read. This means you would have to say goodbye to the json format but as long as your data model is pretty flat. ( There are lists and arrays in Hive as well ). If you restrict by a column as well employ partitioning/sorting/predicate pushdown.
You mostly run aggregations on a small number of rows ( thousands to millions )
Hbase/Phoenix sound like a good choice.