windows
spark 可以看到spark要求hadoop版本大于2.7,解压完后将(D:/spark/bin)添加到环境变量中
hadoop 记得版本要大于2.7,我们下载hadoop-x.y.z.tar.gz 文件(带src的源文件,需要自己编译),同样将(D:/hadoop/bin)添加到环境变量中
这里有一个及其关键的操作,咱们创建一个HADOOP_HOME的环境变量,值为(D:/hadoop)
winutils 这个是保证hadoop在windows正常运行的依赖,找到与hadoop对应的版本,将bin里面的文件拷贝到hadoop的bin目录里
接着打开一个终端输入spark-shell就可以了
mac
mac上有brew,可以直接安装hadoop和scala,但是安装在/usr/local/Cellar/下面,因为权限的问题,hadoop启动非常不方便(我自己遇到的问题,如果没有可以忽略),所以还是下载hadoop和spark,然后解压到一个普通的目录,spark什么都不需要管,主要是hadoop
1.添加路径
为了在终端中方便的执行Hadoop命令,需要将hadoop的路径添加到配置文件中,我这里将spark的路径也添加进来了。打开配置文件
vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
export HADOOP_HOME=/Users/xx/software/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export SPARK_HOME=/Users/xx/software/spark
export PATH=$PATH:$SPARK_HOME/bin
然后source .bash_profile
终端中输入hadoop version,就可以看到hadoop的版本
修改hadoop配置文件
1.修改hadoop-env.sh文件
直接设置 JAVA_HOME 的路径,不要用$JAVA_HOME 代替。
mac查看java路径
/usr/libexec/java_home -V
然后将java的路径配置到hadoop-env.sh中
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
2 修改 core-site.xml 文件
设置 Hadoop 的临时目录和文件系统,localhost:9000 表示本地主机。在 core-site.xml 文件里作如下配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录自己创建-->
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/xx/hadoop/tmp</value>
</property>
</configuration>
3 修改 hdfs-site.xml 文件
hdfs-site.xml 的配置修改如下,注意 name 和 data 的路径都要替换成本地的路径:
<configuration>
<!--文件备份个数,因为是单机,只要备份一个就行,默认是3个-->
<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/xx/hadoop/hdfsdata/name</value>
</property>
<!--在本地新建一个存放hadoop数据的文件夹,然后将路径在这里配置一下-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/Users/xx/hadoop/hdfsdata/data</value>
</property>
</configuration>
4. 修改 mapred-site.xml 文件
由于根目录下 etc/hadoop 中没有 mapred-site.xml 文件,所以需要创建该文件。但是目录中提供了 mapred-site.xml.template 模版文件。我们将其重命名为 mapred-site.xml,然后将 yarn 设置成数据处理框架:
<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5. 修改 yarn-site.xml 文件
配置数据的处理框架 yarn:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
启动hadoop
格式化文件系统
hdfs namenode -format
显示SHUTDOWN_MSG其实是成功的状态。
启动Namenode和Datanode服务
start-dfs.sh
启动成功后可访问: http://localhost:9870/
启动yarn
start-yarn.sh
成功后可访问:http://localhost:8088/
hadoop 基本命令
默认情况下我们上传文件或者创建文件是在
hdfs://localhost:9000/user/
下面的,这个下面有自己的用户名,例如我的是didi
hadoop fs -mkdir -p data
这个文件夹就会创建