I. Intro
最近生产实习开始了,我选择了Big Data 方向,虽然学习了一天,配置了一天的开发环境,但感觉还是懵懵懂懂的孩子一样,没有拨开迷雾,现在整理一下安装和配置 hadoop 的思路,因为网上大多都是 Linux 版配置,而我用的 macOS 所以,来来回回折腾了好几圈。还好,功夫不负有心人,最后还是 reach my tiny goal. Coding is my day and night.
Here is my result: ?
II.Get started
Build Java Env
- prepare your Java environment
需要JDK1.6以上版本支持。安装完成JDK后配置你的 Java 环境。
打开 ~/.bash_profile (这是一个系统全局环境变量文件)可以用vim打开。
这里我选择直接打开用 $ open ~/.bash_profile
添加Java 环境变量:
#Java env build
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home
export JRE_HOME=$JAVA_HOME/jre
查看Java 版本:
Build Hadoop Env
- 需要修改 etc/hadoop 下的5个配置文件:
1.hadoop-env.sh
2.core-site.xml
3.hdfs-site.xml
4.mapred-site.xml
5.yarn-site.xml
- config hadoop-env.sh
# export two envs for Java and hadoop
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home
export HADOOP_CONF_DIR=/Users/sheepcore/documents/hadoop/hadoop-2.8.4/etc/hadoop
- config core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录 自己创建-->
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/sheepcore/documents/hadoop/hadoop-2.8.4/tmp</value>
</property>
</configuration>
- config hdfs-site.xml
# config hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--不是root用户也可以写文件到hdfs-->
<property>
<name>dfs.permissions</name>
<value>false</value> <!--关闭防火墙-->
</property>
<!--把路径换成本地的name坐在位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/Users/sheepcore/documents/hadoop/hadoop-2.8.4/data/name</value>
</property>
<!--在本地新建一个存放hadoop数据的文件夹,然后将路径在这里配置一下-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/Users/sheepcore/documents/hadoop/hadoop-2.8.4/data/data</value>
</property>
</configuration>
- mapred-site.xml
# config mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- yarn-site.xml
# config yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9000</value>
</property>
</configuration>