Can I perform hypothesis testing on non-normal data? I am fairly new to statistical inference. I have data with the following histogram. No of rows in dataset is 147

Can I perform hypothesis testing on this?
Also, I generated a sampling distribution of this, with size 200 and each sample size 8.
The code was:
for(i in 1:200) {
  a=sample(data[[8]],8,replace=T)
  b=mean(a)
  samp[length(samp)+1]=b
}

What does the sampling distribution being normal signify? If I were to perform hypothesis testing on the original or sampling distribution, what would be the consequences of either? I read somewhere that hypothesis testing can be conducted on non-normal data as long as it has finite variance, what does this mean? How can I normalize the original data? I know I haven't given much details on my dataset but any broad methods to do it would do. 
 A: It depends on what hypothesis you want to test. More specifically, it usually depends on what kind of parameter on which you'd like to run the test.
For example, you can perform a z-test or t-test for a population mean, even if the population is non-normal, as long as you have a large sample size. (Weiss, Introductory Statistics, Procedure 9.1 and 9.3). You can do the same for a population proportion (Procedure 12.1).
On the other hand, you cannot do the same if you were performing a test on a population standard deviation. For example, Weiss writes regarding the chi-squared test (Procedure 11.1):

Unlike the z-tests and t-tests for one and two population means, the
one-standard-deviation $\chi ^2$-test is not robust to moderate
violations of the normality assumption. In fact, it is so nonrobust
that many statisticians advise against its use unless there is
considerable evidence that the variable under consideration is
normally distributed or very nearly so.

Now, the OP's code shows that the parameter they had in mind was indeed the mean. If the sample size was 8 (as considered at one point), that is not considered to be a "large sample", so hypothesis tests in that case would not be considered valid. But if the sample size was 147 (considered at a different point), then that is indeed a large sample, and a z-test or t-test would be considered legitimate. This is of course an effect of the central limit theorem, that the sampling distribution of the sample mean (or proportion) fortunately always becomes a normal curve in the limit at infinite sample size. (The threshold for "large sample" is usually considered to be around 25 or 30.)
In cases of other parameters, then you'll have to commit to carefully reading the prerequisites to whatever hypothesis test procedure you're using, and make sure that you've met them. As noted, some testing procedures are robust to violations of the normal-population assumption, and others are not.
A: Here's another idea: Instead of sampling N=8 200 times (with replacement), you could sample all data points (N=147) let's say 1000 times. That approach is called a bootstrap and is a great method for analyzing data irrespective of distributional aassumptions.
From the resulting bootstrap distribution of 1000 mean values, you can e.g. construct a confidence interval using the percentiles of this distribution. The bootstrap method may therefore be used for statistical inference as well.
Btw. the bootstrap is not restricted to the mean. Other parameters can be estimated as well. Also, the standard bootstrap requires independent data.
