1 安装jdk
1.1 移除所有java相关包的方法
sudo apt-get update
sudo apt-cache search Java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
sudo apt-get -y autoremove
//清除配置信息
sudo dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
//清除java配置及缓存
sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
//手动清除JVMs
sudo rm -rf /usr/lib/jvm/*
1.2 安装
// 下载(下载链接可能有问题,直接下载压缩包丢进去)
sudo wget http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-i586.tar.gz?AuthParam=1450494209_eedfc9b7c3f8482ca06d415172852c69 -O jdk8.tar.gz
//新建jdk目录
sudo mkdir /usr/lib/jdk
sudo chown -R hadoop:hadoop /usr/lib/jdk/
//解压到jdk目录
tar vzxf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jdk/
配置环境变量
编辑配置文件
sudo vim ~/.bashrc
文件末尾添加以下代码
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
令配置文件生效
source ~/.bashrc
下载好的jdk压缩包传给其他机器
scp ./jdk-8u131-linux-x64.tar.gz hadoop@ht05-13:/home/hadoop
scp ./jdk-8u131-linux-x64.tar.gz hadoop@ht05-14:/home/hadoop
1.3 检查
java -version
javac -version
2 新建用户
2.1 添加新用户
添加用户hadoop
sudo adduser hadoop
根据提示设置密码,其余信息可为空
2.2 赋予新用户sudo权限
sudo usermode -aG sudo hadoop
2.3 测试
切换用户
su hadoop
测试sudo权限
sudo visudo
3 设置ssh免密登录
在主机
ssh localhost //登录本地自动创建~/.ssh文件夹
exit //退出本地登录
cd ../.ssh
ssh-keygen -t rsa //一路enter 生成ssh登录认证公钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //生成的公钥保存到认证文件
scp ~/.ssh/id_rsa.pub hadoop@ht05-13:/home/hadoop // 公钥拷贝到slave中
scp ~/.ssh/id_rsa.pub hadoop@ht05-14:/home/hadoop
在slave中
ssh localhost //登录本地自动创建~/.ssh文件夹
exit //退出本地登录
cd ../.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys // 将master的公钥保存到slave的认证文件中
完成后 master就可以使用ssh无密码登录到slave节点
4 master节点安装hadoop
4.1 下载安装hadoop
//下载
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz
//解压到 /usr/local
sudo tar vzxf hadoop-2.6.0.tar.gz -C /usr/local
//修改文件夹名
sudo mv hadoop-2.6.0/ hadoop
//修改文件夹所属用户和组
sudo chown -R hadoop:hadoop hadoop
cd hadoop/
// 测试
./bin/hadoop
4.2 配置hadoop
在hadoop的slaves文件末尾添加slave节点名
sudo vim /usr/local/hadoop/etc/hadoop/slaves
这里用的slave节点名为 ht05-13 ht05-14
因此配置后的文件内容为
localhost
ht05-13
ht05-14
编辑配置文件 core-site.xml,将如下配置添加到标签之间
<property>
<name>fs.defaultFS</name>
<value>hdfs://ht05-12:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories</description>
</property>
修改hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>ht05-12:50090</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/tmp/dfs/name</value>
<description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/tmp/dfs/data</value>
<description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改mapred-site.xml
复制mapred-site.xml.template并改名为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
编辑mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
编辑 yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>ht05-12</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
修改,添加JDK支持:
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_131
5 在slave节点安装配置hadoop
将master节点的/usr/local 目录下的hadoop目录打包 发送给slave节点
sudo tar czvf hadoop.tar.gz hadoop
scp hadoop.tar.gz hadoop@ht05-13:/home/hadoop
scp hadoop.tar.gz hadoop@ht05-14:/home/hadoop
在slave节点解压文件并修改文件所属用户以及组
sudo tar vzxf hadoop.tar.gz -C /usr/local
sudo chown -R hadoop:hadoop /usr/local/hadoop
6 运行hadoop
cd /usr/local/hadoop/
// 格式化
./bin/hdfs namenode -format
// 启动
./sbin/
./sbin/
//检验运行状态
jps
./bin/hdfs dfsadmin -report
//运行hadoop自带例程
cd bin/
//本地创建input目录存放输入
sudo mkdir input
//复制文件作为输入
sudo cp ../etc/hadoop/core-site.xml input/words.txt
//在hdfs上创建目录input
./hdfs dfs -mkdir /input
//查看hdfs上的input目录下的文件
./hdfs dfs -ls /
//本地文件移动到hdfs上的input中
./hdfs dfs -put input/* /input
//执行例程
./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input /output
执行结果
停止hadoop
./sbin/
./sbin/
7 安装Scala
7.1 解压
sudo tar -xzvf scala-2.12.2.tgz -C /usr/local
7.2 重命名
cd /usr/local
sudo mv scala-2.12.2 scala
7.3 配置环境变量
sudo vim /etc/profile
# 在最后添加下面内容
export SCALA_HOME=/usr/local/scala
export PATH=$SCALA_HOME/bin:$PATH
7.4 使配置生效
source /etc/profile
7.5 测试
scala -version
8 安装spark
8.1 解压
sudo tar -zxf spark-2.1.1-bin-hadoop2.6.tgz -C /usr/local
8.2 重命名
cd /usr/local
sudo mv spark-2.1.1-bin-hadoop2.6 spark
8.3 添加环境变量
sudo vim /etc/profile
# 在最后添加下面内容
export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
8.4 修改权限
sudo chown -R hadoop:hadoop ./spark
8.5 拷贝配置文件
cd /usr/local/spark
cp ./conf/.template ./conf/
8.6 修改配置文件
cd /usr/localsudo /spark
vim ./conf/
# 添加下面一行
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_131
8.7 运行简单示例
/usr/local/spark/bin/run-example SparkPi 2>&1 | grep "Pi is roughly"
8.8 启动spark
/usr/local/spark/sbin/
8.9 进入spark shell
输入
spark-shell
可以看到界面