配置Hadoop
Hadoop的集群部署模式需要修改Hadoop文件夹中/etc/hadoop/中的配置文件,更多设置项可见官方说明,这里只设置了常见的设置项:hadoop-env.sh
,yarn-env.sh、
core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves。
- 在hadoop-env.sh中配置JAVA_HOME
# The java implementation to use. export JAVA_HOME=/usr/local/jdk1.7
- yarn-env.sh中配置JAVA_HOME
# some Java parameters export JAVA_HOME=/usr/local/jdk1.7
- core-site.xml为全局配置文件,修改core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>dfs.http.address</name> <value>50070</value> </property> </configuration>
- hdfs-site.xml为HDFS的配置文件,修改hdfs-site.xml
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:50090</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/tmp/dfs/data</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
- mapred-site.xml为MapReduce的配置文件,修改mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
- yarn-site.xml为YARN资源管理器的配置文件,修改yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
- slaves文件配置从节点,配置slaves
slave1 slave2
将配置好的Hadoop文件夹分发给slaves
scp -r /opt/hadoop-2.6.0 hadoop@slave1:/opt/ scp -r /opt/hadoop-2.6.0 hadoop@slave2:/opt/
验证Hadoop是否安装成功
启动Hadoop,只需要在master进行下列操作即可
cd /opt/hadoop-2.6.0 #进入Hadoop目录 sudo bin/hadoop namenode –format #格式化namenode sbin/start-dfs.sh #启动HDFS sbin/start-yarn.sh #启动资源管理器
用jps查看机器上的进程,是否包含以下的进程:
master上的进程:
11164 SecondaryNameNode 17405 Jps 10535 ResourceManager 10949 NameNode
slave上的进程:
2164 DataNode 6440 Jps 1979 NodeManager
进入Hadoop的Web管理页面:http://master:50070/
注意:各个节点的时间一定要同步!!!!
六、Spark安装
下载Spark
进入官方网站下载最新Spark,下载地址,这里我下载的是spark-1.6.1-bin-hadoop2.6.tgz,能够在Hadoop2.6及更高版本上运行。
下载后,进行解压
sudo tar -zxvf spark-1.6.1-bin-hadoop2.6.tgz -C /opt/ sudo mv spark-1.6.1-bin-hadoop2.6/ spark-1.6.1 #重命名文件
配置Spark
cd /opt/spark-1.6.1/conf/ cp spark-env.sh.template spark-env.sh sudo vi spark-env.sh
在Spark-env.sh文件尾部添加以下配置:
export JAVA_HOME=/usr/local/jdk1.7 #Java环境变量 export SCALA_HOME=/usr/local/scala-2.10.6 #SCALA环境变量 export SPARK_WORKING_MEMORY=1g #每一个worker节点上可用的最大内存 export SPARK_MASTER_IP=master #驱动器节点IP export HADOOP_HOME=/opt/hadoop #Hadoop路径 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop #Hadoop配置目录
配置slave主机
$ cp slaves.template slaves $ sudo vim slaves
添加slave主机
slave1
slave2
将配置好的Spark分发给所有的slave
scp -r /opt/spark-1.6.1 hadoop@slave1:~/opt/
验证Spark是否安装成功
使用下面的命令,运行Spark
sbin/start-all.sh
用jps查看机器上的进程,是否包含以下的进程:
master上的进程:
slave上的进程:
进入Spark的Web管理页面:http://master:8080
运行简单示例
当需要运行Spark终端,必须将Spark的bin目录加入到系统路径。
export SPARK_HOME=/opt/spark-1.6.1 export PATH=$PATH:${SPARK_HOM}/bin
添加Spark的bin目录路径后,运行
spark-shell
查看是否出现欢迎界面,并可以运行scala脚本