Hi,
this means that your clone is - for some reason - not containing all branches. How did you clone the repository? If you have used the download script, it should actually contain all branches, not just master. Can you please clone the repo on a machine with Internet access?
git clone https://github.com/elastic/rally-tracks.git
And then transfer your clone to the target machine? It is important that it contains all branches. Then you will be able to benchmark also Elasticsearch 2.
Daniel
Umm,unfortunately our company is not permitted for internet access.
Could I get it through browser?
So you are behind a proxy? But you are still allowed to browse https sites I'd assume? You just need to configure git so it uses your proxy. Then the above command should work just fine. See for example this proxy configuration howto.
I can't get access to the link you gave:crying_cat_face:
could you paste the manual here please?
thank you so much:kissing_cat:
The tl;dr is that you need to configure the proxy like this:
git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port
where you need to replace proxyUsername, proxyPassword, proxy.server.com and port with your proxy server configuration.
If you get SSL errors, you might also need to set:
git config --global http.sslVerify false
The full reference is at https://git-scm.com/docs/git-config (which I really hope you are able to open).
If that is still not working you need to find a machine where you can issue this command:
git clone https://github.com/elastic/rally-tracks.git default
and then transfer the complete contents of the directory default to ~/.rally/benchmarks/tracks on the target machine. Before you did not solve this issue, there is no point in continuing benchmarking.
I execute command as following:
git config --global user.email zhengshan@hikvision.com
but still, it does not work.
and here's no machine that can access to network, OMG!
I have downloaded the default folder by other's help. 
But still it failed by running esrally command.
Running create-index [ 0% done]
[ERROR] Cannot race. Error in load generator [0]
Request returned an error. Error type: transport, Description: mapper_parsing_exception ({'error': {'root_cause': [{'type': 'mapper_parsing_exception', 'reason': 'No handler for type [text] declared on field [admin1_code]'}], 'type': 'mapper_parsing_exception', 'reason': 'Failed to parse mapping [type]: No handler for type [text] declared on field [admin1_code]', 'caused_by': {'type': 'mapper_parsing_exception', 'reason': 'No handler for type [text] declared on field [admin1_code]'}}, 'status': 400})
Getting further help:
Hi,
the text mapping type was introduced in Elasticsearch 5.0 so there is still a problem with the repository. There is one workaround: You can download also a single branch of a repo from Github. For Elasticsearch 2.x you need the branch "2". You can download just this branch via any browser: https://github.com/elastic/rally-tracks/archive/2.zip
Extract this anywhere on your file system, e.g. to ~/my-tracks/default/2. If you do it like this, you need to specify --track-path=~/my-tracks/default/2/geonames instead of --track=geonames. This is definitely not ideal because benchmarking across major versions of Elasticsearch gets more complicated (you need to download and refer to each branch separately instead of having Rally do this for you) but I fear there is no way around this in your environment.
Daniel
Exactly, I don't know why I need to download the ES2.X, for in my env, I installed the ES5.x actually.
You do not need to use Elasticsearch 2.x. Based on the output of the error message I've assumed that you run (and want to run) an older version of Elasticsearch than 5.0. It seems to me that Rally is pointed to an older cluster.
In "Esrally run failed for "Cannot find documents-2.json.bz2" - #2 by Jessica254" you mentioned that you invoke Rally like this:
esrally --track=geonames --target-hosts=10.3.68.168:9200,10.3.68.172:9200,10.3.68.174:9200 --challenge=append-no-conflicts-index-only --pipeline=benchmark-only --offline
- How did you install Elasticsearch?
- How and on which machine do you start it (IP address and port)? Is it still
10.3.68.168:9200,10.3.68.172:9200,10.3.68.174:9200?
- What does the output of
curl -X GET "http://10.3.68.168:9200/?pretty" show?
Daniel
I'm so sorry that it seems I have confused the ES version and ESRally verison. 
My ES is 2.X:
[root@hdh154 ~]# curl -X GET "http://10.3.68.168:9200/?pretty"
{
"name" : "hdh168",
"cluster_name" : "SERVICE-ELASTICSEARCH-d491f3f7ba9740cdbb4aa4061df99a01",
"version" : {
"number" : "2.3.5",
"build_hash" : "${buildNumber}",
"build_timestamp" : "2017-09-18T03:13:06Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}
Hi,
that looks good indeed.
Glad we made it now. Just remember that you need to take care now if you want to benchmark a different (major) version of Elasticsearch because the version that you reference now via --track-path only works for Elasticsearch 2.x.
Daniel
OK, get it. Maybe I'll meet some other problem when I use ES5.X, then will trouble you again. 