hue_beeswax_tester.sh 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. #!/bin/bash
  2. # Licensed to Cloudera, Inc. under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with this work for additional information
  5. # regarding copyright ownership. Cloudera, Inc. licenses this file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use this file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing, software
  13. # distributed under the License is distributed on an "AS IS" BASIS,
  14. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. # See the License for the specific language governing permissions and
  16. # limitations under the License.
  17. # NOTE: This script requires curl to be installed. Also, it does not have to run on the Hue server, it can run anywhere that curl is installed. As long as that host can reach the Hue server.
  18. # Please change USERS to contain a list of users that you would like to use to generate load
  19. #USERS="cconner test1 test2 test3 test4 test5 test6 test7 test8 test9 test10"
  20. #Please enter the Hue server name below
  21. HUE_SERVER="cdh412-1"
  22. #Please enter the Hue server port below
  23. HUE_PORT="8888"
  24. #Plase enter the query to be run in beeswax
  25. #QUERY="select+*+from+movies+where+name+like+'D%'%3B"
  26. #QUERY="select+t1.id%2C%0D%0A+t1.name%2C+t2.movie_date%2C+t3.movie_url%2C%0D%0A+CASE+WHEN+t1.id+%3C+500+THEN+%270%27%0D%0A+WHEN+t1.id+%3C+1000+THEN+%27500%27%0D%0A+WHEN+t1.id+%3C+1500+THEN+%271000%27%0D%0A+else+%271500%27+END+as+id_number%0D%0A+from+rc_movies+t1%0D%0A+join+movie2.movie_date+t2+on+%28t1.id+%3D+t2.id%29%0D%0A+join+movie3.movie_url+t3+on+%28t1.id+%3D+t3.id%29%0D%0A+where+t2.movie_date+like+%27%251993%25%27%0D%0A+or+t2.movie_date+like+%27%251994%25%27%3B"
  27. #QUERY="select+t1.id,+t1.name,+t2.movie_date,+t3.movie_url+from+rc_movies+t1+join+movie2.movie_date+t2+on+(t1.id+=+t2.id)+join+movie3.movie_url+t3+on+(t1.id+=+t3.id)+where+t2.movie_date+like+'%1993%'+or+t2.movie_date+like+'%1994%'%3B"
  28. #Please create an entry below for every user that you added to USERS above. After the = replace "password" with the correct password for each user. If you have more or less than the number of entries below, add or delete rows as necessary.
  29. #declare -A password_hash
  30. #password_hash[cconner]="password"
  31. #password_hash[test1]="password"
  32. #password_hash[test2]="password"
  33. #password_hash[test3]="password"
  34. #password_hash[test4]="password"
  35. #password_hash[test5]="password"
  36. #password_hash[test6]="password"
  37. #password_hash[test7]="password"
  38. #password_hash[test8]="password"
  39. #password_hash[test9]="password"
  40. #password_hash[test10]="password"
  41. declare -A query_hash
  42. query_hash[1]="blah"
  43. HUE_PASS_URL="${HUE_SERVER}:${HUE_PORT}/accounts/login/"
  44. HUE_BEES_URL="${HUE_SERVER}:${HUE_PORT}/beeswax/execute"
  45. HUE_USERS=60
  46. rm -f /tmp/test*.txt
  47. #for user in $USERS
  48. for ((x=1;x<=${HUE_USERS};x++))
  49. do
  50. user="test$x"
  51. echo "Running Command:"
  52. # echo "curl -i -c /tmp/${user}_cookie.txt -d \"username=${user}&password=${password_hash[${user}]}\" \"${HUE_PASS_URL}\""
  53. # curl -i -c /tmp/${user}_cookie.txt -d "username=${user}&password=${password_hash[${user}]}" "${HUE_PASS_URL}" > /dev/null
  54. echo "curl -i -c /tmp/${user}_cookie.txt -d \"username=${user}&password=password\" \"${HUE_PASS_URL}\""
  55. curl -i -c /tmp/${user}_cookie.txt -d "username=${user}&password=password" "${HUE_PASS_URL}" > /dev/null
  56. done
  57. while [ 1 ]
  58. do
  59. # for ((x=1;x<=${HUE_USERS};x++))
  60. # do
  61. # user="test$x"
  62. # QUERY_CREATE_DB="create+database+if+not+exists+${user}%3B"
  63. # echo "running Command:"
  64. # echo "curl --data \"query-is_parameterized=on&query-query=${QUERY_CREATE_DB}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute\" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt \"${HUE_BEES_URL}\""
  65. # curl --data "query-is_parameterized=on&query-query=${QUERY_CREATE_DB}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt "${HUE_BEES_URL}" 2>&1 > /dev/null
  66. # rand_sleep=$((RANDOM%10+1))
  67. ## sleep ${rand_sleep}
  68. # sleep 2
  69. # done
  70. # for ((x=1;x<=${HUE_USERS};x++))
  71. # do
  72. # user="test$x"
  73. # echo "Gathering Location from /tmp/${user}_headers.txt"
  74. # DESIGN=`grep "Location: " /tmp/${user}_headers.txt | awk '{print $2}'`
  75. # RESULTS=""
  76. # while [ "$RESULTS" == "" ]
  77. # do
  78. # sleep 2
  79. # echo "Running Command:"
  80. # echo "curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN}"
  81. # curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN} 2>&1 > /dev/null
  82. # echo "Gathering Location from /tmp/${user}_headers.txt"
  83. # RESULTS=`grep "Location: " /tmp/${user}_headers.txt | awk '{print$2}'`
  84. # done
  85. # echo "Running Command:"
  86. # echo "curl -i -b /tmp/${user}_cookie.txt ${RESULTS}"
  87. # curl -i -b /tmp/${user}_cookie.txt ${RESULTS} > /tmp/${user}_results.txt
  88. # done
  89. # for ((x=1;x<=${HUE_USERS};x++))
  90. # do
  91. # user="test$x"
  92. # QUERY_DROP="drop+table+if+exists+${user}.students%3B"
  93. # echo "running Command:"
  94. # echo "curl --data \"query-is_parameterized=on&query-query=${QUERY_DROP}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute\" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt \"${HUE_BEES_URL}\""
  95. # curl --data "query-is_parameterized=on&query-query=${QUERY_DROP}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt "${HUE_BEES_URL}" 2>&1 > /dev/null
  96. # rand_sleep=$((RANDOM%10+1))
  97. ## sleep ${rand_sleep}
  98. # sleep 2
  99. # done
  100. # for ((x=1;x<=${HUE_USERS};x++))
  101. # do
  102. # user="test$x"
  103. # echo "Gathering Location from /tmp/${user}_headers.txt"
  104. # DESIGN=`grep "Location: " /tmp/${user}_headers.txt | awk '{print $2}'`
  105. ## RESULTS=""
  106. # while [ "$RESULTS" == "" ]
  107. # do
  108. # sleep 2
  109. # echo "Running Command:"
  110. # echo "curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN}"
  111. # curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN} 2>&1 > /dev/null
  112. # echo "Gathering Location from /tmp/${user}_headers.txt"
  113. # RESULTS=`grep "Location: " /tmp/${user}_headers.txt | awk '{print$2}'`
  114. # done
  115. # echo "Running Command:"
  116. # echo "curl -i -b /tmp/${user}_cookie.txt ${RESULTS}"
  117. # curl -i -b /tmp/${user}_cookie.txt ${RESULTS} > /tmp/${user}_results.txt
  118. # done
  119. #
  120. # for ((x=1;x<=${HUE_USERS};x++))
  121. # do
  122. # user="test$x"
  123. # QUERY_CREATE_TABLE="create+table+${user}.students(name+String,+age+Int,+gpa+Int,+date1+Timestamp)+ROW+FORMAT+DELIMITED+FIELDS+TERMINATED+BY+','%3B"
  124. # echo "running Command:"
  125. # echo "curl --data \"query-is_parameterized=on&query-query=${QUERY_CREATE_TABLE}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute\" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt \"${HUE_BEES_URL}\""
  126. # curl --data "query-is_parameterized=on&query-query=${QUERY_CREATE_TABLE}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt "${HUE_BEES_URL}" 2>&1 > /dev/null
  127. # rand_sleep=$((RANDOM%10+1))
  128. ## sleep ${rand_sleep}
  129. # sleep 2
  130. # done
  131. # for ((x=1;x<=${HUE_USERS};x++))
  132. # do
  133. # user="test$x"
  134. # echo "Gathering Location from /tmp/${user}_headers.txt"
  135. # DESIGN=`grep "Location: " /tmp/${user}_headers.txt | awk '{print $2}'`
  136. # RESULTS=""
  137. # while [ "$RESULTS" == "" ]
  138. # do
  139. # sleep 2
  140. # echo "Running Command:"
  141. # echo "curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN}"
  142. # curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN} 2>&1 > /dev/null
  143. # echo "Gathering Location from /tmp/${user}_headers.txt"
  144. # RESULTS=`grep "Location: " /tmp/${user}_headers.txt | awk '{print$2}'`
  145. # done
  146. # echo "Running Command:"
  147. # echo "curl -i -b /tmp/${user}_cookie.txt ${RESULTS}"
  148. # curl -i -b /tmp/${user}_cookie.txt ${RESULTS} > /tmp/${user}_results.txt
  149. # done
  150. #
  151. for ((x=1;x<=${HUE_USERS};x++))
  152. do
  153. user="test$x"
  154. QUERY_LOAD_DATA="LOAD+DATA+INPATH+'/user/cconner/data/random_names2/blah.txt'+INTO+TABLE+${user}.students%3B"
  155. echo "running Command:"
  156. echo "curl --data \"query-is_parameterized=on&query-query=${QUERY_LOAD_DATA}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute\" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt \"${HUE_BEES_URL}\""
  157. curl --data "query-is_parameterized=on&query-query=${QUERY_LOAD_DATA}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt "${HUE_BEES_URL}" 2>&1 > /dev/null
  158. rand_sleep=$((RANDOM%10+1))
  159. # sleep ${rand_sleep}
  160. sleep 2
  161. done
  162. for ((x=1;x<=${HUE_USERS};x++))
  163. do
  164. user="test$x"
  165. echo "Gathering Location from /tmp/${user}_headers.txt"
  166. DESIGN=`grep "Location: " /tmp/${user}_headers.txt | awk '{print $2}'`
  167. RESULTS=""
  168. while [ "$RESULTS" == "" ]
  169. do
  170. sleep 2
  171. echo "Running Command:"
  172. echo "curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN}"
  173. curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN} 2>&1 > /dev/null
  174. echo "Gathering Location from /tmp/${user}_headers.txt"
  175. RESULTS=`grep "Location: " /tmp/${user}_headers.txt | awk '{print$2}'`
  176. done
  177. echo "Running Command:"
  178. echo "curl -i -b /tmp/${user}_cookie.txt ${RESULTS}"
  179. curl -i -b /tmp/${user}_cookie.txt ${RESULTS} > /tmp/${user}_results.txt
  180. done
  181. for ((x=1;x<=${HUE_USERS};x++))
  182. do
  183. user="test$x"
  184. QUERY_SELECT="select+count(*)+from+${user}.students1+where+name+like+'D%'%3B"
  185. echo "running Command:"
  186. echo "curl --data \"query-is_parameterized=on&query-query=${QUERY_SELECT}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute\" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt \"${HUE_BEES_URL}\""
  187. curl --data "query-is_parameterized=on&query-query=${QUERY_SELECT}&settings-next_form_id=0&file_resources-next_form_id=0&functions-next_form_id=0&button-submit=Execute" --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt "${HUE_BEES_URL}" 2>&1 > /dev/null
  188. rand_sleep=$((RANDOM%10+1))
  189. # sleep ${rand_sleep}
  190. sleep 2
  191. done
  192. for ((x=1;x<=${HUE_USERS};x++))
  193. do
  194. user="test$x"
  195. echo "Gathering Location from /tmp/${user}_headers.txt"
  196. DESIGN=`grep "Location: " /tmp/${user}_headers.txt | awk '{print $2}'`
  197. RESULTS=""
  198. while [ "$RESULTS" == "" ]
  199. do
  200. sleep 2
  201. echo "Running Command:"
  202. echo "curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN}"
  203. curl --dump-header /tmp/${user}_headers.txt -i -b /tmp/${user}_cookie.txt ${DESIGN} 2>&1 > /dev/null
  204. echo "Gathering Location from /tmp/${user}_headers.txt"
  205. RESULTS=`grep "Location: " /tmp/${user}_headers.txt | awk '{print$2}'`
  206. done
  207. echo "Running Command:"
  208. echo "curl -i -b /tmp/${user}_cookie.txt ${RESULTS}"
  209. curl -i -b /tmp/${user}_cookie.txt ${RESULTS} > /tmp/${user}_results.txt
  210. done
  211. done