Heat 4 tablespoons canola oil in a medium skillet over high heat until shimmering. Add the 3 thinly sliced shallots and cook until they begin to bubble, then reduce heat to medium. Stir often and cook until the shallots are golden brown, about 12 minutes. Use a slotted spoon to transfer the shallots to a paper towel–lined plate to drain and crisp as they cool.
While the shallots cook (or immediately after), bring a large pot of water to a boil and add kosher salt. Add the 1 1/2 pounds green beans (ends snapped off) and cook until just tender-crisp, 3 to 5 minutes. Do not overcook. Drain the green beans and set aside.
While the beans cook or after draining, toast the 1/3 cup roughly chopped hazelnuts in a small dry skillet over medium heat, stirring frequently, until they are fragrant and lightly browned, about 3 to 5 minutes. Transfer to a plate.
Melt 3 tablespoons butter in a large skillet over medium heat. Stir or swirl the pan as the butter foams. Watch closely and remove the skillet from the heat as soon as the butter turns golden brown and smells nutty (about 2–4 minutes) to avoid burning.
Add the drained green beans to the skillet with the brown butter, return to medium heat, and toss until the beans are evenly coated and heated through, about 1–2 minutes. Season with kosher salt and black pepper to taste.
Transfer the green beans to a serving bowl or platter, top with the crispy shallots and toasted hazelnuts, and serve warm.