hadoopconf.sh 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #!/usr/bin/env bash
  2. # File: badoopconf.sh
  3. # Name: D.Saravanan
  4. # Date: 09/09/2020
  5. # Script to insall and configure Hadoop-3.2.1
  6. # update and install sudo
  7. apt-get update
  8. apt-get install -y sudo
  9. # add user and add user to group sudo with bash shell
  10. user="raman"
  11. useradd -m -s /bin/bash -G sudo $user
  12. # ssh configuration
  13. apt-get update
  14. apt-get install -y vim openssh-server ssh
  15. mkdir /home/$user/.ssh/
  16. ssh-keygen -t rsa -P " " -f "/home/$user/.ssh/id_rsa" -q
  17. cat /home/$user/.ssh/id_rsa.pub >>/home/$user/.ssh/authorized_keys
  18. # start ssh
  19. service ssh start
  20. #systemctl start ssh
  21. # vim configuration
  22. touch /home/$user/.exrc
  23. echo "set autowrite
  24. set hidden
  25. set ignorecase
  26. set incsearch
  27. set nomesg
  28. set number
  29. set shiftwidth=4
  30. set showcmd
  31. set showmatch
  32. set smartcase
  33. set tabstop=4
  34. highlight LineNr cterm=NONE ctermfg=DarkGrey ctermbg=NONE" >>/home/$user/.exrc
  35. chown $user:$user /home/$user/.exrc
  36. source /home/$user/.exrc
  37. # installing openjdk8
  38. # updating the packages list
  39. apt-get update
  40. # installing the dependencies necessary to add a new repository over HTTPS
  41. apt-get install -y apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common
  42. # import the repository's GPG key
  43. wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
  44. # add the adoptopenjdk apt repository to the system
  45. add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
  46. # update apt sources and install Java 8
  47. apt-get update && apt-get install -y adoptopenjdk-8-hotspot
  48. # JAVA_HOME environment variable
  49. echo "JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64" >>/etc/environment
  50. # for changes to take effect on your current shell
  51. source /etc/environment
  52. # hadoop configuration
  53. wget -c https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
  54. tar -xzf hadoop-3.2.1.tar.gz
  55. chown -R $user:$user hadoop-3.2.1/
  56. mv hadoop-3.2.1/ /usr/local/hadoop/
  57. # set environment variables
  58. echo "PATH=/usr/local/hadoop/bin:/usr/local/hadoop/sbin:$PATH" >>/home/$user/.profile
  59. echo "export JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64
  60. export HADOOP_HOME=/usr/local/hadoop
  61. export HADOOP_INSTALL=$HADOOP_HOME
  62. export HADOOP_COMMON_HOME=$HADOOP_HOME
  63. export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  64. export HADOOP_HDFS_HOME=$HADOOP_HOME
  65. export HADOOP_MAPRED_HOME=$HADOOP_HOME
  66. export HADOOP_YARN_HOME=$HADOOP_HOME
  67. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
  68. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin" >>/home/$user/.bashrc
  69. source /home/$user/.bashrc
  70. # configuration of the node
  71. # hdfs-site.xml
  72. sed -i 's/<configuration>/& \
  73. \t<property> \
  74. \t\t<name>dfs.namenode.name.dir<\/name> \
  75. \t\t<value>\/usr\/local\/hadoop\/hdfs\/nameNode<\/value> \
  76. \t<\/property> \
  77. \t<property> \
  78. \t\t<name>dfs.datanode.data.dir<\/name> \
  79. \t\t<value>\/usr\/local\/hadoop\/hdfs\/dataNode<\/value> \
  80. \t<\/property> \
  81. \t<property> \
  82. \t\t<name>dfs.replication<\/name> \
  83. \t\t<value>2<\/value> \
  84. \t<\/property> \
  85. \t<property> \
  86. \t\t<name>dfs.permission.enabled<\/name> \
  87. \t\t<value>true<\/value> \
  88. \t<\/property> \
  89. \t<property> \
  90. \t\t<name>dfs.namenode.acls.enabled<\/name> \
  91. \t\t<value>true<\/value> \
  92. \t<\/property> \
  93. /' /usr/local/hadoop/etc/hadoop/hdfs-site.xml
  94. # core-site.xml
  95. sed -i 's/<configuration>/& \
  96. \t<property> \
  97. \t\t<name>dfs.default.name<\/name> \
  98. \t\t<value>hdfs:\/\/node-master:9000<\/value> \
  99. \t<\/property> \
  100. /' /usr/local/hadoop/etc/hadoop/core-site.xml
  101. # mapred-site.xml
  102. sed -i 's/<configuration>/& \
  103. \t<property> \
  104. \t\t<name>mapreduce.framework.name<\/name> \
  105. \t\t<value>yarn<\/value> \
  106. \t<\/property> \
  107. \t<property> \
  108. \t\t<name>yarn.app.mapreduce.am.env<\/name> \
  109. \t\t<value>HADOOP_MAPRED_HOME=$HADOOP_HOME<\/value> \
  110. \t<\/property> \
  111. \t<property> \
  112. \t\t<name>mapreduce.map.env<\/name> \
  113. \t\t<value>HADOOP_MAPRED_HOME=$HADOOP_HOME<\/value> \
  114. \t<\/property> \
  115. \t<property> \
  116. \t\t<name>mapreduce.reduce.env<\/name> \
  117. \t\t<value>HADOOP_MAPRED_HOME=$HADOOP_HOME<\/value> \
  118. \t<\/property> \
  119. /' /usr/local/hadoop/etc/hadoop/mapred-site.xml