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
8.2.2resourcemanager-web
8.2.3 nodemanager-web
http://localhost:8042