配置java
1.下载java
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
$cd /opt/jvm $tar -xf jdk-8u181-linux-x64.tar.gz
2.设置java
sudo update-alternatives --install /usr/bin/java java /opt/jvm/jdk1.8.0_181/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /opt/jvm/jdk1.8.0_181/bin/javac 300
3.修改默认java环境
sudo update-alternatives --config java sudo update-alternatives --config javac
修改host
其中的hslave 和 hmaster应当是对应计算机的hostname
$vim /etc/hosts 10.0.0.243 hslave1 10.0.0.244 hslave2 10.0.0.249 hslave3 10.0.0.254 hmaster
配置hadoop
1.在master和slave中创建hadoop用户
$useradd -m hadoop #设置密码 $passwd hadoop #为hadoop添加sudo权限 $visudo #在root ALL=(ALL) ALL下添加hadoop ALL=(ALL) ALL root ALL=(ALL) ALL hadoop ALL=(ALL) ALL #保存后退出,并切换回hadoop用户 $su hadoop
master与slave之间免密登录
注:以下master和slave中的操作都是在hadoop用户下
1.在master节点:
cd ~/.ssh/ # 若没有该目录,请先执行一次 ssh localhost ssh-keygen -t rsa #一直回车默认 #将在目录~/.ssh/下生成id_rsa.pub文件 $cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #给授权文件权限: $chmod 600 ~/.ssh/authorized_keys
将生成的id_rsa.put传输到所有slave节点
以slave1为例:
#将master上的authorized_keys传到slave1 sudo scp ~/.ssh/id_rsa.pub hadoop@slave1:~/
2.在每个slave节点
# 若没有~/.ssh/目录,请先执行一次 ssh localhost sudo cat ~/id_rsa.pub>>~/.ssh/authorized_keys sudo chmod 600 ~/.ssh/authorized_keys sudo rm ~/id_rsa.pub
配置环境变量
在master和slave节点
$su hadoop vim ~/.bashrc
#在文件最后添加
#Java env
export JAVA_HOME=/opt/jvm/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
#hadoop environment vars
export HADOOP_HOME=/opt/git/hadoop-2.7.7
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
保存退出使配置生效
source ~/.bashrc
其中/opt/jvm/jdk1.8.0_181为java所在的路径,/opt/git/hadoop-2.7.7为hadoop所在的路径。如果不知道java的路径可以通过这篇文章查看
hadoop文件配置
sudo chown hadoop hadoop-2.7.7
#配置文件在如下文件夹 /opt/git/hadoop-2.7.7/etc/hadoop
0. hadoop-env.sh
export JAVA_HOME="/opt/jvm/jdk1.8.0_181"
1.core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hmaster:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/git/hadoop-2.7.7/tmp</value> </property> </configuration>
2.hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/git/hadoop-2.7.7/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/git/hadoop-2.7.7/tmp/dfs/data</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hmaster:9001</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
3.mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
4.yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hmaster</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>
初始化hadoop(只执行一次,初始化时,以后不用再次执行)
hadoop namenode -format
启动服务
cd /opt/git/hadoop-2.7.7/sbin ./start-all.sh
访问web页面
http://master:50070


