基本環(huán)境及軟件:
軟件版本 | 軟件包 |
---|---|
centos-6.x | |
JDK-1.8 | jdk-8u112-linux-x64.tar.gz |
scala-2.11.8 | jdk-8u112-linux-x64.tar.gz |
hadoop-2.7 | hadoop-2.7.4.tar.gz |
spark-2.1.2 | spark-2.1.2-bin-hadoop2.7.tgz |
鍵入命令如下,安裝hadoop所需的基礎(chǔ)軟件:
yum install -y ssh pdsh
jdk和scala安裝
1漾根、鍵入如下命令將jdk軟件包解壓至指定目錄:
tar -zxvf jdk-8u112-linux-x64.tar.gz -C /usr/local/
2荚板、鍵入如下命令將scala軟件包解壓至指定目錄:
tar -zxvf scala-2.11.8.tgz -C /usr/local/
3窍蓝、鍵入如下命令編輯profile文件:
vim /etc/profile
4穿肄、設(shè)置jdk和scala環(huán)境變量狡逢,在profile文件的末尾添加如下內(nèi)容:
export JAVA_HOME=/usr/local/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SCALA_HOME=/usr/local/scala-2.11.8
export PATH=$JAVA_HOME/bin:$SCALA_HOME/bin:$PATH
5级及、鍵入如下命令讓颠锉,環(huán)境變量立即生效:
source /etc/profile
6法牲、檢查jdk
[root@localhost ~]# java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
7、檢查scala
[root@localhost ~]# scala -version
Scala code runner version 2.11.8 -- Copyright 2002-2016, LAMP/EPFL
解壓&安裝hadoop
1琼掠、鍵入如下命令將hadoop軟件包解壓至指定目錄:
tar -zxvf hadoop-2.7.4.tar.gz -C /usr/local/
2拒垃、鍵入如下命令,給hadoop添加java環(huán)境變量:
vim /usr/local/hadoop-2.7.4/etc/hadoop/hadoop-env.sh
在hadoop-env.sh
文件中添加如下內(nèi)容:
export JAVA_HOME=/usr/local/jdk1.8.0_112
3瓷蛙、修改hadoop配置文件:
1)鍵入如下命令悼瓮,切換至hadoop配置文件目錄:
/usr/local/hadoop-2.7.4/etc/hadoop
2)編輯core-site.xml
配置文件,添加如下內(nèi)容:
<configuration>
<!--指定NamNode通信地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--指定Hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)路徑-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
3)編輯hdfs-site.xml
配置文件,添加如下內(nèi)容:
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
<description>namenode上存儲(chǔ)hdfs名字空間元數(shù)據(jù) </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
<description>datanode上數(shù)據(jù)塊的物理存儲(chǔ)位置</description>
</property>
<!-- 設(shè)置hdfs副本數(shù)量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4)編輯mapred-site.xml
配置文件艰猬,配置mapreducer框架運(yùn)行在yarn上:
鍵入如下命令復(fù)制mapred-site.xml
配置文件:
cp mapred-site.xml.template mapred-site.xml
mapred-site.xml
配置文件內(nèi)容如下:
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4)編輯yarn配置yarn-site.xml
横堡,添加如下內(nèi)容:
<configuration>
<!--reducer取數(shù)據(jù)的方式是mapreduce_shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4、鍵入如下命令冠桃,創(chuàng)建hadoop數(shù)據(jù)目錄:
mkdir -p /opt/hadoop/{tmp,hdfs/{data,name}}
5命贴、鍵入如下命令,配置免密鑰登錄:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
6食听、開啟防火墻端口:
鍵入如下命令胸蛛,編輯防火墻配置文件:
vim /etc/sysconfig/iptables
添加如下內(nèi)容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT
重啟防火墻:
service iptables restart
7、格式化hdfs樱报,只需要在第一次安裝的時(shí)候格式化hdfs
,命令如下:
/usr/local/hadoop-2.7.4/bin/hdfs namenode -format
8胚泌、鍵入如下命令,啟動(dòng)hdfs和yarn:
/usr/local/hadoop-2.7.4/sbin/start-all.sh
9肃弟、在瀏覽器中分別輸入如下地址校驗(yàn),hadoop是否安裝成功:
1)hadoop管理界面:http://{your_ip_address}:50070/
2)hadoop集群狀態(tài)界面:http://{your_ip_address}:8088/
解壓&安裝spark
1零蓉、鍵入如下命令將spark軟件包解壓至指定目錄:
tar -zxvf spark-2.1.2-bin-hadoop2.7.tgz -C /usr/local/
2笤受、編輯spark環(huán)境變量配置文件:
鍵入如下命令復(fù)制spark-env.sh
配置文件
cp spark-env.sh.tamplate spark-env.sh
在spark-env.sh
配置文件中添加如下內(nèi)容:
export SCALA_HOME=/usr/local/scala-2.11.8
export JAVA_HOME=/usr/local/jdk1.8.0_112
export HADOOP_HOME=/usr/local/hadoop-2.7.4
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export SPARK_MASTER_IP=localhost
export SPARK_LOCAL_IP=localhost
export SPAPK_LOCAL_DIRS=/usr/local/spark-2.1.2-bin-hadoop2.7
export SPARK_DRIVER_MEMORY=1G
3、在slave配置文件中添加如下內(nèi)容:
localhost
4敌蜂、鍵入如下命令箩兽,啟動(dòng)spark:
/usr/local/spark-2.1.2-bin-hadoop2.7/sbin/start-all.sh
mapreduce 和 spark wordcount測試
1、創(chuàng)建WordCount.txt
文件,內(nèi)容如下:
Hello hadoop
hello spark
2章喉、在hdfs
中創(chuàng)建一個(gè)目錄wordcount
汗贫,并上傳WordCount.txt
文件身坐,命令如下:
創(chuàng)建目錄:
hadoop fs -mkdir /wordcount
上傳文件:
hadoop fs -put -f WordCount.txt /wordcount
3、編寫wordcount程序并執(zhí)行:
1)mapreduce 版本示例代碼落包,跳轉(zhuǎn)至github地址
將git上的程序編譯之后上傳至hadoop服務(wù)器部蛇,鍵入如下命令運(yùn)行mapreduce:
hadoop jar mapreduce-wordcount.jar org.cooze.hadoop.mapreduce.wordcount.WordCount /wordcount /output
- spark java版本示例代碼,跳轉(zhuǎn)至github地址
將git上的程序編譯之后上傳至hadoop服務(wù)器咐蝇,鍵入如下命令將spark程序提交到spark中運(yùn)行:
spark-submit --master spark://localhost:7077 \
--name WordCount --class org.cooze.hadoop.spark.wordcount.java.WordCount \
--executor-memory 512M --total-executor-cores 2 \
./spark-wordcount-java.jar /wordcount
- spark scala版本示例代碼涯鲁,跳轉(zhuǎn)至github地址
將git上的程序編譯之后上傳至hadoop服務(wù)器,鍵入如下命令將spark程序提交到spark中運(yùn)行:
spark-submit --master spark://localhost:7077 \
--name WordCount --class org.cooze.hadoop.spark.wordcount.scala.WordCount \
--executor-memory 512M --total-executor-cores 2 \
./spark-wordcount-scala.jar /wordcount
- spark python版本示例代碼有序,跳轉(zhuǎn)至github地址
鍵入如下命令將spark程序提交到spark中運(yùn)行:
spark-submit --executor-memory 512M --total-executor-cores 2 \
spark-wordcount-python.py