hadoop 分布式环境搭建

来源:互联网 发布:unity3d lua教程 编辑:程序博客网 时间:2024/05/18 01:42
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

























原创粉丝点击