sudo gedit /etc/hosts 编写hosts文件,每台机子都要编辑
ip master
ip data1
ip data2
如果能互相ping 说明成功
安装JDK 每台都要安装
java -version查看java version,ubuntu默认没装jdk,centos默认装openjdk,所以要是centos,先卸载openjdk在安装
sudo apt-get update 更新软件包信息
sudo apt-get install default-jdk 安装默认jdk
java -version 查看是否安装成功
update-alternatives --display java 查看安装路径,等会配置java_home /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
设置SSH无密码登录
sudo apt-get install ssh 安装ssh
su hadoop 切换hadoop用户,也就是你当前用户
cd /home/hadoop
$ ssh-keygen -t rsa 一直回车,生成密钥
完成后,在home跟目录下会产生隐藏文件夹.ssh(每台机子都要做到这里)
master 生成authorized
$ cd .ssh
cp id_rsa.pub authorized_keys(或者cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将产生的密钥放到许可者文件中)
将authorized_keys复制到每个data下的.ssh文件夹
测试:
$ssh data1 免输密码
关闭并重新打开终端 $ssh data1 免输密码
在master上安装HADOOP
sudo tar -zxvf hadoop-2.7.3.tar.gz 解压hadoop
sudo mv hadoop-2.7.3 /usr/local/hadoop 移动到文件夹(用命令移动,这样子会自动删除hadoop-2.7.3这个文件夹,之后配置hadoop_home就不用多写一个文件夹路径)
sudo gedit ~/.bashrc 设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
source ~/.bashrc 使环境变量立即生效
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 修改hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 修改里面的javahome
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml 修改core-site.xml
<property>
<name>fs.default.name</name>
</value>hdfs://master:9000</value>
</property>
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml 修改yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property><name>yarn.resourcemanager.address</name><value>master:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>master:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:8031</value></property>
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml 修改hdfs-site.xml
如果是分布式模式,还需其他配置,本文是伪分布模式,即master和slave为同一台机子,适合初学者,以及编写代码练习
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
复制模板文件 sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml 编辑mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
将hadoop目录复制到data1 data2 修改hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml 修改hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
创建并格式HDfS目录
在master上 sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
在data上 sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
分别在所有机器上更改权限sudo chown hduser:hduser -R /usr/local/hadoop 将hadoop目录的所有者权限更改为hduser
在master上:hadoop namenode -format 格式化namenode
启动hadoop
start-all.sh或者分别启动dfs和yarn(start-dfs.sh、start-yarn.sh)
jps查看进程
在master上
可以看到
3120 ResourceManager
3650 NameNode
4025 SecondaryNameNode
4395 Jps
jps查看进程
在datanode上
可以看到
4288 NodeManager
4395 Jps
3820 DataNode
ip master
ip data1
ip data2
如果能互相ping 说明成功
安装JDK 每台都要安装
java -version查看java version,ubuntu默认没装jdk,centos默认装openjdk,所以要是centos,先卸载openjdk在安装
sudo apt-get update 更新软件包信息
sudo apt-get install default-jdk 安装默认jdk
java -version 查看是否安装成功
update-alternatives --display java 查看安装路径,等会配置java_home /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
设置SSH无密码登录
sudo apt-get install ssh 安装ssh
su hadoop 切换hadoop用户,也就是你当前用户
cd /home/hadoop
$ ssh-keygen -t rsa 一直回车,生成密钥
完成后,在home跟目录下会产生隐藏文件夹.ssh(每台机子都要做到这里)
master 生成authorized
$ cd .ssh
cp id_rsa.pub authorized_keys(或者cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将产生的密钥放到许可者文件中)
将authorized_keys复制到每个data下的.ssh文件夹
测试:
$ssh data1 免输密码
关闭并重新打开终端 $ssh data1 免输密码
在master上安装HADOOP
sudo tar -zxvf hadoop-2.7.3.tar.gz 解压hadoop
sudo mv hadoop-2.7.3 /usr/local/hadoop 移动到文件夹(用命令移动,这样子会自动删除hadoop-2.7.3这个文件夹,之后配置hadoop_home就不用多写一个文件夹路径)
sudo gedit ~/.bashrc 设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
source ~/.bashrc 使环境变量立即生效
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 修改hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 修改里面的javahome
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml 修改core-site.xml
<property>
<name>fs.default.name</name>
</value>hdfs://master:9000</value>
</property>
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml 修改yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property><name>yarn.resourcemanager.address</name><value>master:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>master:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:8031</value></property>
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml 修改hdfs-site.xml
如果是分布式模式,还需其他配置,本文是伪分布模式,即master和slave为同一台机子,适合初学者,以及编写代码练习
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
复制模板文件 sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml 编辑mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
将hadoop目录复制到data1 data2 修改hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml 修改hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
创建并格式HDfS目录
在master上 sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
在data上 sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
分别在所有机器上更改权限sudo chown hduser:hduser -R /usr/local/hadoop 将hadoop目录的所有者权限更改为hduser
在master上:hadoop namenode -format 格式化namenode
启动hadoop
start-all.sh或者分别启动dfs和yarn(start-dfs.sh、start-yarn.sh)
jps查看进程
在master上
可以看到
3120 ResourceManager
3650 NameNode
4025 SecondaryNameNode
4395 Jps
jps查看进程
在datanode上
可以看到
4288 NodeManager
4395 Jps
3820 DataNode