当前位置:   article > 正文

【大数据】——Ubuntu14.04 安装hadoop/spark/scala教程_vm虚拟机安装ubuntu系统,配置scala环境变量

vm虚拟机安装ubuntu系统,配置scala环境变量

需要的软件:

 

大体步骤(注意本文所有软件均安装在home/hadoop 文件夹下,下文不在提示)

  1. 安装ubuntu操作系统
  2. 安装JDK,配置环境变量
  3. 安装scala,配置环境变量
  4. 备份系统,需要几个节点,就克隆几份
  5. 对管理节点设置IP,登录名和hosts文件,对每个工作节点设置设置IP,登录名和hosts文件
  6. 安装ssh
  7. 安装hadoop 配置环境变量,修改配置文件,通过ssh传给其他工作节点
  8. 安装spark配置环境变量,修改配置文件,通过ssh传给其他工作节点

 

下面进行分步骤详细讲解。

1.安装ubuntu操作系统,以下为虚拟机安装方式

 中间过程不在详述,需要注意的是,虚拟机网络模式在VMare中选为NAT,计算机名为ubuntu spark 用户名为hadoop,密码为hadoop,NAT见下图

 

2.安装JDK,配置环境变量

解压jdk到home/hadoop文件夹下

tar zxvf jdk-8u51-linux-x64.tar.gz
 

上面首先第一步:

 

至此,jdk安装完毕,下面配置环境变量

一、PATH配置

这里提供一个简单的方法:
 

sudo gedit /etc/environment 添加jdk的bin文件夹路径



2.为了保证生效执行下面命令

Source /etc/environment


二、CLASSTH配置
上面只是配置了PATH,还需在配置CLASSPATH
export CLASSPATH=.:/home/hadoop/jdk/jre/lib
执行配置完毕
如果不起作用,采用通过下面配置:
java.sh配置
因为重启之后,很有会被还原,下面还需要配置java.sh
这里可以通过
cd /etc/profile.d
sudo gedit java.sh
把下面两行放到java.sh
export PATH=$PATH:/home/hadoop/jdk/bin
export CLASSPATH=.:/ home/hadoop/jdk/jre/lib
保存。这样就配置完毕了。
 

执行下面命令:

source java.sh

现在在执行 java -versionok

 

3.安装scala,配置环境变量

解压scala到home/hadoop文件夹下


 

上面首先第一步:

 

至此,scala安装完毕,下面配置环境变量

一、PATH配置

这里提供一个简单的方法:
 

sudo gedit /etc/environment 添加scala的bin文件夹路径



2.为了保证生效执行下面命令

Source /etc/environment

4.备份系统,克隆系统

 现从该系统,克隆两个系统,分别改计算机名为unbuntu spark slave1和unbuntu spark slave2

5. 对管理节点设置IP,登录名和hosts文件,对每个工作节点设置设置IP,登录名和hosts文件

这里我们搭建一个由三台机器组成的集群:

192.168.207.1 hadoop/hadoop  master

192.168.207.2 hadoop/hadoop slave1

192.168.207.3 hadoop/hadoop slave1

上面各列分别为IPuser/passwdhostname

 

下对master节点设置 slave1slave2节点设置相同

1.IP设置

进入 VMare 选择 虚拟网络编辑器

设置后保存

2 hostname设置

第一步:sudo gedit /etc/hostname

2 hosts设置,(所有节点该处设置全一样)

sudo gedit /etc/hosts

4.重启网络或重启机器

这一行,把它右边的旧主机名改成你的新主机名即可。重启网络
sudo /etc/init.d/networking restart
或则
reboot
重新启动计算机生效

 

5.slave1slave2重复上述操作

 

6 ssh配置

打通masterslave节点的SSH无密码登陆

这里面打通无密码登录,很多新手遇到了问题,这里安装的时候,具体的操作,可以查阅其他资料:

Hadoop伪分布安装过程:Hadoop单机环境搭建指南(ubuntu

CentOS6.4之图解SSH无验证双向登陆配置

这是个人总结的哦命令,相信对你有所帮助

个人常用知识总结

然后这里在展示一下,authorized_keys是什么样子的:

http://www.aboutyun.com/data/attachment/forum/201405/12/180226k2qqdqybqz5d80hy.png 

 

上面的原理,将所有节点的公钥全部放在master节点的authorized_keys文件中,再将该文件覆盖掉所有节点原有的authorized_keys文件。

然后我们进行下面步骤:

3.1 安装ssh

一般系统是默认安装了ssh命令的。如果没有,或者版本比较老,则可以重新安    装:

sudo apt-get install ssh

安装过程可能出现ssh service 依赖无法安装 解决方法见ubuntu安装ssh 报依赖错误的解决过程》

 

3.2设置local无密码登陆

 

具体步骤如下:

第一步:产生密钥

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

第二部:导入authorized_keys

$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys  (任意目录下输入cd ~/.ssh 都能到ssh目录)

第二部导入的目的是为了无密码等,这样输入如下命令:

ssh localhost

就可以无密码登录了。

下面展示一下hosts的配置,及无密码登录的效果

locahost的配置

http://www.aboutyun.com/data/attachment/forum/201405/12/174735wniehuieuuavzuhu.png 
 

无密码登录效果:

http://www.aboutyun.com/data/attachment/forum/201405/12/174741lp9thdtmpdaacb0c.png  

3.3设置远程无密码登陆

 

进入slave1.ssh目录

ssh slave1 (输入slave1的密码后,进入slave1

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

sudo cat ~/.ssh/id_dsa.pub >> hadoop@master:~/.ssh/authorized_keys

exit

进入slave2.ssh目录

ssh slave2 (输入slave2的密码后,进入slave2

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

sudo cat ~/.ssh/id_dsa.pub >> hadoop@master:~/.ssh/authorized_keys

exit

 

master机器上执行

sudo scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh

sudo scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh

------------------------------------------------------------------------

根据上面的资料相信你能得到互通,这里展现一下效果:

http://www.aboutyun.com/data/attachment/forum/201405/11/192950itlm3pw9b97b7atz.png

上面是slave1无密码登录master

 

http://www.aboutyun.com/data/attachment/forum/201405/11/192953af0eerzqr0avsref.png

7.安装hadoop 配置环境变量,修改配置文件,通过ssh传给其他工作节点

hadoop集群中每个机器上面的配置基本相同,所以我们先在master上面进行配置部署,然后再复制到其他节点。所以这里的安装过程相当于在每台机器上面都要执行。

【注意】:masterslaves安装的hadoop路径要完全一样,用户和组也要完全一致

1 解压文件

解压hadoop
解压到/home/hadoop路径下

并且重命名,效果如下

2 hadoop配置过程

配置之前,需要在master本地文件系统创建以下文件夹:

~/dfs/name

~/dfs/data

~/tmp

这里要涉及到的配置文件有7个:

~/hadoop/etc/hadoop/hadoop-env.sh

~/hadoop/etc/hadoop/yarn-env.sh

~/hadoop/etc/hadoop/slaves

~/hadoop/etc/hadoop/core-site.xml

~/hadoop/etc/hadoop/hdfs-site.xml

~/hadoop/etc/hadoop/mapred-site.xml

~/hadoop/etc/hadoop/yarn-site.xml

以上文件默认不存在的,可以复制相应的template文件获得。下面举例:

http://www.aboutyun.com/data/attachment/forum/201405/12/185900q4086udwj00zsgun.png 

配置文件1hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/home/hadoop/jdk

配置文件2yarn-env.sh

 

修改JAVA_HOME值(export JAVA_HOME=/home/hadoop/jdk

配置文件3slaves (这个文件里面保存所有slave节点)

写入以下内容:

http://www.aboutyun.com/data/attachment/forum/201405/12/190053fq4mp58pq3krr1po.png 

 

配置文件4core-site.xml

  1. <configuration>
  2.        <property>
  3.                 <name>fs.defaultFS</name>
  4.                 <value>hdfs://master:8020</value>
  5.        </property>
  6.        <property>
  7.                 <name>io.file.buffer.size</name>
  8.                 <value>131072</value>
  9.         </property>
  10.        <property>
  11.                <name>hadoop.tmp.dir</name>
  12.                <value>file:/home/hadoop/tmp</value>
  13.                <description>Abase for other temporary   directories.</description>
  14.        </property>
  15.         <property>
  16.                <name>hadoop.proxyuser.hadoop.hosts</name>
  17.                <value>*</value>
  18.        </property>
  19.        <property>
  20.                <name>hadoop.proxyuser.hadoop.groups</name>
  21.                <value>*</value>
  22.        </property>
  23. </configuration>

  24.  

配置文件5hdfs-site.xml

  1. <configuration>
  2.        <property>
  3.                 <name>dfs.namenode.secondary.http-address</name>
  4.                <value>master:9001</value>
  5.        </property>
  6.      <property>
  7.              <name>dfs.namenode.name.dir</name>
  8.              <value>file:/home/hadoop/dfs/name</value>
  9.        </property>
  10.       <property>
  11.               <name>dfs.datanode.data.dir</name>
  12.               <value>file:/home/hadoop/dfs/data</value>
  13.        </property>
  14.        <property>
  15.                <name>dfs.replication</name>
  16.                <value>3</value>
  17.         </property>
  18.         <property>
  19.                  <name>dfs.webhdfs.enabled</name>
  20.                   <value>true</value>
  21.          </property>
  22. </configuration>

  23.  

配置文件6mapred-site.xml

  1. <configuration>
  2.           <property>                                                                  <name>mapreduce.framework.name</name>
  3.                 <value>yarn</value>
  4.            </property>
  5.           <property>
  6.                   <name>mapreduce.jobhistory.address</name>
  7.                   <value>master:10020</value>
  8.           </property>
  9.           <property>
  10.                 <name>mapreduce.jobhistory.webapp.address</name>
  11.                 <value>master:19888</value>
  12.        </property>
  13. </configuration>
  14.  


 

 

配置文件7yarn-site.xml

  1. <configuration>
  2.         <property>
  3.                <name>yarn.nodemanager.aux-services</name>
  4.                <value>mapreduce_shuffle</value>
  5.         </property>
  6.         <property>                                                                
  7. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  8.                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  9.         </property>
  10.         <property>
  11.                <name>yarn.resourcemanager.address</name>
  12.                <value>master:8032</value>
  13.        </property>
  14.        <property>
  15.                <name>yarn.resourcemanager.scheduler.address</name>
  16.                <value>master:8030</value>
  17.        </property>
  18.        <property>
  19.             <name>yarn.resourcemanager.resource-tracker.address</name>
  20.              <value>master:8031</value>
  21.       </property>
  22.       <property>
  23.               <name>yarn.resourcemanager.admin.address</name>
  24.                <value>master:8033</value>
  25.        </property>
  26.        <property>
  27.                <name>yarn.resourcemanager.webapp.address</name>
  28.                <value>master:8088</value>
  29.        </property>
  30. </configuration>
  31.  

3、复制到其他节点

上面配置完毕,我们基本上完成了90%了剩下就是复制。我们可以把整个hadoop复制过去:使用如下命令:

sudo scp -r /home/hadoop/hadoop hadoop@slave1:/home/hadoop

sudo scp -r /home/hadoop/hadoop hadoop@slave2:/home/hadoop

 

后面我们会经常遇到问题,经常修改配置文件,所以修改完一个配置文件后,其他节点都需要修改,这里附上脚本操作方便:

4.配置环境变量

第一步:

vi /etc/environment

 

第二步:添加如下内容:记得如果你的路径改变了,你也许需要做相应的改变(注意路径为/home/hadoop/)

http://www.aboutyun.com/data/attachment/forum/201405/12/191554b4i1nnoi10tuecdx.png

environment文件覆盖掉slave1slave2的对应位置使用scp命令

启动验证

 

启动hadoop

格式化namenode

  1. hdfs namenode –format

或则使用下面命令:

  1. hadoop namenode format

启动hadoop

cd /home/hadoop/hadoop

./sbin/start-all.sh

master有如下进程:

http://www.aboutyun.com/data/attachment/forum/201405/12/192416xkbc3g4vdj3dn3s4.png

此处可能会出现namenode无法启动现象,详细查看文档《因namenode未格式化,无法启动解决方案》


slave1有如下进程
http://www.aboutyun.com/data/attachment/forum/201405/12/192418txvotq7k0ufkctcc.png  

此时hadoop集群已全部配置完成!!!

【注意】:而且所有的配置文件<name><value>节点处不要有空格,否则会报错!

  1. http://master:8088/
  2. http://master:50070/

 

实际生产环境下,集群规模大,需要修改linux的部分配置,否则hdfs报错

1.提高网络队列长度:

sudo vim /etc/sysctl.conf

net.core.somaxconn = 4000     文件末尾加入

sudo sysctl -p

2.提高同时打开的文件数

(1) sudo vim /etc/security/limits.conf              

文件尾追加

* hard nofile 65535

* soft nofile 65535

 

(2) sudo vim /etc/pam.d/su

将 pam_limits.so 这一行注释去掉

(3) sudo vim /etc/profile

最后一行加上

ulimit -SHn 65535

1.提高网络队列长度 和 2.提高同时打开的文件数 都做完后 重启系统

8.安装spark配置环境变量,修改配置文件,通过ssh传给其他工作节点

解压缩spark到/home/hadoop目录下

修改配置文件(cd /home/hadoop/conf) 中的slaves 和 spark-env.sh.  spark本身没有slaves和spark-env.sh文件,只有 slaves.template和spark-env.sh.template文件

通过命令

scp slaves.template slaves 和 scp spark-env.sh.template spark-env.sh创建两文件

修改slavesgedit slaves

修改spark-env.shgedit spark-env.sh),spark有很多运行模式,该配置为standalone模式

配置环境变量

sudo gedit /etc/environment   (添加红线标示行)

spark文件夹和environment文件覆盖slave1slave2的对应位置

sudo scp -r /home/hadoop/spark hadoop@slave1:/home/hadoop

sudo scp -r /home/hadoop/spark hadoop@slave2:/home/hadoop

 

environment文件覆盖掉slave1slave2的对应位置使用scp命令

 

启动spark

cd /home/hadoop/spark

./sbin/start-all.sh

在web页面访问Spark集群http://master:8080

 

使用

cd /home/hadoop/spark

./bin/spark-shell

启动sparkscala版本)控制台(下图左)

此时可使用

http://master:4040 访问 webUI(下图右)

 

 

此时可能会出现一个警告为

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决办法详见《spark中本地hadoop运行库加载失败解决方案》

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/778611
推荐阅读
相关标签
  

闽ICP备14008679号