I have a 3D vector Starting at some point A and ending at some point B. I have an arrow sitting at point A. I need to rotate the arrow such that it is pointing along the vector from point A to point B. The arrow starts pointing along the y axis (take a look at the image to see this better). I'm really not much of a mathematician and I'm struggling with this. Any help would be much appreciated.

So you need three things:
So the first step is simply cross product. 2nd step is angle between vectors using $$ a=\frac{acos(a_1 \cdot a_2)}{len(a_1)*len(a_2)} $$, where $len(a_0) = \sqrt{a_x^2+a_y^2+a_z^2}$
3rd step is a matrix: \begin{bmatrix} cos(a)+(1-cos(a))*x^2 & (1-cos(a))*x*y-sin(a)*z & (1-cos(a))*x*z+sin(a)*y & 0 \\ (1-cos(a))*y*x+sin(a)*z & cos(a)+(1-cos(a))*y^2 & (1-cos(a))*y*z-sin(a)*x & 0 \\ (1-cos(a))*z*x-sin(a)*y & (1-cos(a))*z*y+sin(a)*x & cos(a)+(1-cos(a))*z^2 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} There $(x,y,z) = normalize(cross(a_1,a_2))$.
Note that you can only apply the matrix when the vectors start from origo, so you need translate the system from point A to origo using standard translate matrix. and then after applying the matrix, translate it back to point A.