I know C/C++. What are the best ways for me to learn Hadoop?
First of all if you know C/C++, then learning Java is not difficult at all. They are not too different after all. So the best idea would be spend few hours on learning Java basics and jump to Hadoop.
However if you do not want to learn Java then also you can directly start learning Hadoop.
As mentioned in the above paragraph, tools like Hive and Pig that are built on top of Hadoop offer their own high-level languages. You can also write your own code in C, Perl etc.
Also Pig can be programmed in Pig Latin and Hive can be programmed using HiveQL. Both of these programs will be automatically converted to MapReduce programs in Java.
Added advantage of C/C++ knowledge:
There are several parts of the Hadoop system that are written in C and C++:
If you interested in writing map-reduce applications using C++, then Hadoop also has pipes. Pipes is library which allows C++ source code to be used for Mapper and Reducer code.
What is the importance of SQL knowledge in Hadoop?
The need for RDBMS (and other DB) skills is not going away, and Hadoop isn't a replacement for those systems. Rather it's an augmentation of those systems for scenarios involving the volumes of data that they can't efficiently tackle.
While Hadoop may be a hot new technology, if you're already comfortable with SQL, then learning how to use Hive (one of the key projects within the Hadoop ecosystem) will feel very familiar as it's syntax and commands are very SQL-like..
Where can I get a sandbox system to learn and practice Hadoop?
You can use Hortonworks Sandbox for this purpose. It's a FREE, single-node, personal Hadoop environment that is a learning platform as well.
For more information on Hortonworks Sandbox, check Hadoop Basic Course