mac上安装hadoop

 

1,mac下的java

ll /usr/bin |grep'java'

默认:

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

具体的安装路径:

/Library/Java/JavaVirtualMachines/下面,

 

JAVA_HOME是/Library/Java/JavaVirtualMachines/jdk1.7.0_75/Contents/Home。

 

2,mac下的ssh

首先测试ssh localhost,

若不成功,看是否启动允许remotelogin,再尝试如果失败则继续下面的

 

ssh-keygen -t dsa-P '' -f ~/.ssh/id_dsa

ssh-keygen表示生成秘钥;

-t表示秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。

这个命令在”~/.ssh/“文件夹下创建两个文件id_dsa和id_dsa.pub,是ssh的一对儿私钥和公钥。

接下来,将公钥追加到授权的key中去,输入:

 

cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

再次尝试

ssh localhost

若无法打开,解决方法如下:

进入Mac的系统偏好设置 –> 共享–> 勾选remote login,并设置allow access for all users。

 

3,下载镜像,mirror,选择某一个tar.gz

http://mirror.bit.edu.cn/apache/hadoop/common/

 

4,设置环境变量

vi ~/.bash_profile 或者/etc/profile中

 

exportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75/Contents/Home 

exportJRE_HOME=$JAVA_HOME/jre 

exportHADOOP_HOME=/Users/xiaolong.zhao/ittools/hadoop

#是防止出现:Warning:$HADOOP_HOME is deprecated的警告错误。

exportHADOOP_HOME_WARN_SUPPRESS=1 

 

exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin: $ HADOOP_HOME /sbin:$HADOOP_HOME/bin:$PATH 

 

注意:linux与mac的安装,唯一区别就是mac下会有默认的jdk路径的,以及ssh配置的 


5,配置hadoop-env.sh

 

在/Users/xiaolong.zhao/ittools/hadoop/etc/hadoop目录下,找到hadoop-env.sh,打开编辑进行如下设置:

 

export  JAVA_HOME=${JAVA_HOME}(去掉注释)

export  HADOOP_HEAPSIZE=2000(去掉注释)

export  HADOOP_OPTS=”-Djava.security.krb5.realm=OX.AC.UK-Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk”(去掉注释)

 

 

6, 4个核心文件配置

 

6.1.配置core-site.xml——(defaultFS)指定了NameNode的主机名与端口 

<?xmlversion="1.0" encoding="UTF-8"?>  
<configuration>
     <!-- fs.defaultFS - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。
     DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。-->
    <property>  
       <name>fs.defaultFS</name> 
       <value>hdfs://localhost:8000</value>  
    </property>  
 
     <!-- hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。
     如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中-->
    <property>  
       <name>hadoop.tmp.dir</name> 
       <value>/Users/time/Documents/hadoop-2.7.3/tmp</value>  
        <description>A base for othertemporary directories.</description> 
    </property> 
</configuration>

 

6.2. 配置hdfs-site.xml——指定了HDFS的默认参数副本数

 
<?xmlversion="1.0" encoding="UTF-8"?>  
<configuration>  
     <!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它应该被设为3。
     少于三个的备份,可能会影响到数据的可靠性-->
        <property>
          <name>dfs.replication</name>
           <value>1</value>
        </property>
 
        <!-- datanaode和namenode的物理存储,如果不设置,它的值hadoop.tmp.dir-->
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/hdfs/name</value>
        </property>
 
        <!-- 可以不设置,namenode的Web 监控 端口,默认是0.0.0.0:50070-->
        <property>
            <name>dfs.namenode.http-address</name>
             <value>localhost:57000</value>
        </property>
 
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:/home/hdfs/data</value>
        </property>
 
</configuration>

 

注意这里的file

如果配置为: file:/path/a/c,则具体的路径就是: /path/a/c

如果配置为:file://path/a/c,则具体的路径就是: /a/c


6.3 mapred-site.xml配置

  

  <property>  
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property>

 

6.4 Yarn-site.xml 配置

<?xmlversion="1.0"?> 
 <configuration> 
 
  <!-- resourcemanager --> 
  <!-- client visit address -->
  <property> 
  <name>yarn.resourcemanager.address</name>
  <value>localhost:18040</value> 
  </property> 
 
  <!-- ApplicationMaster visit address-->
  <property> 
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>localhost:18030</value> 
  </property> 
 
  <!-- NodeManager visit address -->
  <property> 
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value> localhost:18025</value> 
  </property> 
 
  <!-- web visit address -->
  <property> 
  <name>yarn.resourcemanager.webapp.address</name>
  <value>localhost:18088</value> 
  </property> 
 
  <!-- NodeManager support mapreduce service--> 
  <property> 
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value> 
  </property> 
 </configuration>

 

 

7, 格式化namenode

hdfs namenode-format

 

8, 启动hadoop

 

8.1sbin/start-all.sh 

8.2 web测试

 

8.2.1 namenode-web

http://localhost:50070

 

8.2.2resourcemanager-web

http://localhost:18088

 

8.2.3 nodemanager-web

http://localhost:8042