I want to set the pivot of all the arrows to their bottoms like the pic below. The method of "origin to geometry" does not help in this case. I have like 6000 arrows, so... Any ideas?
Well I'm not sure of a good way to do this, you can try to select all your arrows, and then select the one with the correct origin, then press CTRL+L, and select "Object Data" from the list.. Unfortunately this is not ideal, as it also copies all other object data such as materials and UVs, effectively making all the arrows instances of the active one.
You can use advanced align tools to change objects origin points based on objects bounding box x/y/z, min/max/center etc. values
In 2.82, you can select all objects then set origin to geometry and it will set each objects origin to its own geometry... But some may be a little off. Before doing anything else, look to the lower left of the screen where that little gray box pops up when you do any action. In that box you need to change "Median Center" to "Bounds Center". At that point, if you want to change the origin to the bottom of each object, go into edit mode while they are all selected and move them all up at once to where you want.