Hadoop2.8.4+spark2.3.1 Scala2.12.6 安装教程

创建新用户保证集群用户名一致
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop 修改用户名密码
sudo adduser hadoop 使新建用户加入管理员权限 提高权限
安装ssh
Sudo apt-get install ssh
安装java
首先把jdk文件拖到虚拟机中
cd ~/Desktop
sudo mv *.tar.gz /opt 移动压缩包
cd /opt
sudo tar –zxvf jdk-8u151-linuxx-x64.tar.gz 解压文件
sudo chown –R hadoop jdk-1.8.0_151/ 修改权限
安装vim
sudo apt-get install vim
sudo vim /etc/profile

source /etc/profile 修改文件生效
java –version 查看是否成功
查看IP
Ifconfig
主机名称 IP地址
master 10.2.6.44
slave01 10.2.6.33
slave02 10.2.6.64
三台电脑主机的用户名均为hadoop. 搭建集群必须用户名统一
三台机器可以ping双方的ip来测试三台电脑的连通性。
在master节点主机上的Shell中运行如下命令,测试能否连接到slave01节点主机
ping 10.2.6.33
为了更好的在Shell中区分三台主机,修改其显示的主机名,执行如下命令
sudo vim /etc/hostname 修改主机名 这里与用户名区分
重启三台电脑,重启后在终端Shell中才会看到机器名的变化
修改三台机器的/etc/hosts文件,添加同样的配置:
sudo vim /etc/hosts 集群IP文件
127.0.0.1 localhost
10.2.6.44 master
10.2.6.33 slave01
10.2.6.64 slave02
配置ssh无密码登录
ssh localhost
ssh-keygen –t rsa 之后输入四个回车
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
在保证了三台主机电脑都能连接到本地localhost后,还需要让master主机免密码登录slave01和slave02主机。在master执行如下命令,将master的id_rsa.pub传送给两台slave主机
scp ~/.ssh/id_rsa.pub hadoop@slave01:/home/hadoop/
scp ~/.ssh/id_rsa.pub hadoop@slave02:/home/hadoop/
在slave01,slave02主机上分别运行ls~命令
可以看到slave01、slave02主机分别接收到id_rsa.pub文件
接着在slave01、slave02主机上将master的公钥加入各自的节点上,在slave01和slave02执行如下命令:
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub 删除传递文件
如果master主机和slave01、slave02主机的用户名一样,那么在master主机上直接执行如下测试命令,即可让master主机免密码登录slave01、slave02主机。
ssh slave01 进入其他主机
安装Hadoop
先在master主机上做安装Hadoop,暂时不需要在slave01,slave02主机上安装Hadoop.稍后会把master配置好的Hadoop发送给slave01,slave02.
在master主机执行如下操作
sudo tar mv ~/Desktop/hadoop-2.8.4.tar.gz /usr/local
cd /usr/local/
sudo –zxvf hadoop-2.8.4.tar.gz
sudo mv ./hadoop-2.8.4/ ./hadoop 修改文件名
sudo chown –R hadoop ./hadoop 修改文件权限
编辑~/.bashrc文件 vim ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export PATH= PATH: P A T H : HADOOP_HOME/bin:$HADOOP_HOME/sbin
接着让环境变量生效,执行如下代码:
source ~/.bashrc
Hadoop集群配置
修改master主机修改Hadoop如下配置文件,这些配置文件都位于/usr/local/hadoop/etc/hadoop目录下。
修改slaves vim slaves
slave01
slave02
修改core-site.xml vim core-site.xml


hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abase for other temporary directories.


fs.defaultFS
hdfs://master:9000


修改hdfs-site.xml: vim hdfs-site.xml

dfs.replication
3


dfs.namenode.secondary.http-address
master:50090


dfs.name.dir
/usr/local/hadoop/namenode


dfs.data.dir
/usr/local/hadoop/datanode

vim mapred-site.xml(没有mapred-site.xml但是有一个 mapred-site.xml.template)
首先复制一份文件,命名为mapred-site.xml,之后配置
cp mapred-site.xml.template mapred-site.xml
修改mapred-site.xml: vim mapred-site.xml


mapreduce.framework.name
yarn


修改yarn-site.xml: vim yarn-site.xml


yarn.nodemanager.aux-services
mapreduce_shuffle


yarn.resourcemanager.hostname
master



yarn.log-aggregation-enable
true


yarn.log-aggregation.retain-seconds
604800


yarn.nodemanager.resource.memory-mb
2000


yarn.scheduler.maximum-allocation-mb
2000


yarn.scheduler.minimum-allocation-mb
500


mapreduce.reduce.memory.mb
2000


mapreduce.map.memory.mb
2000


yarn.nodemanager.vmem-pmem-ratio
2.1


yarn.resourcemanager.address
hadoop1:8032


yarn.resourcemanager.scheduler.address
hadoop1:8030


yarn.resourcemanager.resource-tracker.address
hadoop1:8031


配置好后,将 master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 master 节点主机上执行:
1. cd /usr/local/
2. rm -rf ./hadoop/tmp # 删除临时文件
3. rm -rf ./hadoop/logs/* # 删除日志文件
4. tar -zcf ~/hadoop.master.tar.gz ./hadoop
5. cd ~
6. scp ./hadoop.master.tar.gz slave01:/home/hadoop
7. scp ./hadoop.master.tar.gz slave02:/home/hadoop
在slave01,slave02节点上执行:
Sudo rm –rf /usr/local/hadoop/
Sudo tar –zxf ~/hadoop.master.tar.gz –C /usr/lacal
Sudo chown –R hadoop /usr/local/hadoop
启动hadoop集群
在master主机上执行如下命令:
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
运行后,在master,slave01,slave02运行jps命令,查看:

上传文件
hadoop@slave02:~/Desktop hadoopfsputsample.txt/s1.txthadoop@slave02: /Desktop h a d o o p f s − p u t s a m p l e . t x t / s 1. t x t 修 改 环 境 变 量 h a d o o p @ s l a v e 02 :   / D e s k t o p sudo vim /etc/profile
启动修改
hadoop@slave02:~/Desktop source/etc/profilemax.Jarhadoop@slave02: /Desktop s o u r c e / e t c / p r o f i l e 执 行 m a x . J a r 包 h a d o o p @ s l a v e 02 :   / D e s k t o p hadoop jar max.jar MaxTemperature /s1.txt /out2
18/08/03 21:10:10 INFO client.RMProxy: Connecting to ResourceManager at master/10.2.6.44:8032
18/08/03 21:10:10 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.
18/08/03 21:10:11 INFO input.FileInputFormat: Total input files to process : 1
18/08/03 21:10:11 INFO mapreduce.JobSubmitter: number of splits:1
18/08/03 21:10:11 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1533286346748_0003
18/08/03 21:10:11 INFO impl.YarnClientImpl: Submitted application application_1533286346748_0003
18/08/03 21:10:11 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1533286346748_0003/
18/08/03 21:10:11 INFO mapreduce.Job: Running job: job_1533286346748_0003
18/08/03 21:10:23 INFO mapreduce.Job: Job job_1533286346748_0003 running in uber mode : false
18/08/03 21:10:23 INFO mapreduce.Job: map 0% reduce 0%
18/08/03 21:10:30 INFO mapreduce.Job: map 100% reduce 0%
18/08/03 21:10:40 INFO mapreduce.Job: map 100% reduce 100%
18/08/03 21:10:40 INFO mapreduce.Job: Job job_1533286346748_0003 completed successfully
18/08/03 21:10:40 INFO mapreduce.Job: Counters: 49
File System Counters
FILE: Number of bytes read=61
FILE: Number of bytes written=314869
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=623
HDFS: Number of bytes written=17
HDFS: Number of read operations=6
HDFS: Number of large read operations=0
HDFS: Number of write operations=2
Job Counters
Launched map tasks=1
Launched reduce tasks=1
Data-local map tasks=1
Total time spent by all maps in occupied slots (ms)=5078
Total time spent by all reduces in occupied slots (ms)=7095
Total time spent by all map tasks (ms)=5078
Total time spent by all reduce tasks (ms)=7095
Total vcore-milliseconds taken by all map tasks=5078
Total vcore-milliseconds taken by all reduce tasks=7095
Total megabyte-milliseconds taken by all map tasks=5199872
Total megabyte-milliseconds taken by all reduce tasks=7265280
Map-Reduce Framework
Map input records=5
Map output records=5
Map output bytes=45
Map output materialized bytes=61
Input split bytes=90
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=61
Reduce input records=5
Reduce output records=2
Spilled Records=10
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=168
CPU time spent (ms)=1550
Physical memory (bytes) snapshot=340836352
Virtual memory (bytes) snapshot=3867357184
Total committed heap usage (bytes)=192020480
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=533
File Output Format Counters
Bytes Written=17
查看文件
hadoop@slave02:~/Desktop$ hadoop fs -cat /out/part-r-00000

1949 111
1950 22
查看生成文件
hadoop@slave02:/usr/local/hadoop$ hdfs dfs -ls /
Found 7 items
drwxr-xr-x - hadoop supergroup 0 2018-08-03 20:54 /out
drwxr-xr-x - hadoop supergroup 0 2018-08-03 21:04 /out1
drwxr-xr-x - hadoop supergroup 0 2018-08-03 21:10 /out2
-rw-r–r– 4 hadoop supergroup 533 2018-08-03 21:06 /s1.txt
-rw-r–r– 4 hadoop supergroup 533 2018-08-03 20:45 /sample.txt
-rw-r–r– 4 hadoop supergroup 533 2018-08-03 21:01 /sample1.txt
drwx—— - hadoop supergroup 0 2018-08-03 20:53 /tmp

清理hdfs
hdfs dfs -rm
hdfs dfs -expunge

常用命令
一、 hadoop fs (hdfs dfs) 文件操作
1) ls 显示目录下的所有文件或者文件夹
使用方法: hadoop fs -ls [uri形式目录]
示例: hadoop fs –ls / 显示根目录下的所有文件和目录
显示目录下的所有文件可以加 -R 选项
示例: hadoop fs -ls -R /
2) cat 查看文件内容
使用方法:hadoop fs -cat URI [URI …]
示例: hadoop fs -cat /in/test2.txt
3) mkdir 创建目录
使用方法:hadoop fs -mkdir [uri形式目录]
示例: hadoop fs –mkdir /test
创建多级目录 加上 –p
示例: hadoop fs –mkdir -p /a/b/c
4) rm 删除目录或者文件
使用方法:hadoop fs -rm [文件路径] 删除文件夹加上 -r
示例: hadoop fs -rm /test1.txt

删除文件夹加上 -r,
示例:hadoop fs -rm -r /test

5) put 复制文件
将文件复制到hdfs系统中,也可以是从标准输入中读取文件,此时的dst是一个文件
使用方法: hadoop fs -put …
示例:
Hadoop fs -put /usr/wisedu/temp/test1.txt /
从标准输入中读取文件:hadoop fs -put -/in/myword
6) cp 复制系统内文件
使用方法:hadoopfs -cp URI [URI …]
将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
示例:
hadoop fs -cp /in/myword/word

7) copyFromLocal 复制本地文件到hdfs
使用方法:hadoop fs-copyFromLocal URI
除了限定源路径是一个本地文件外,和put命令相似
8) get 复制文件到本地系统
使用方法:hadoop fs -get[-ignorecrc] [-crc]
复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
示例:hadoop fs -get/word /usr/wisedu/temp/word.txt
9) copyToLocal 复制 文件到本地系统
使用方法:hadoop fs-copyToLocal [-ignorecrc] [-crc] URI
除了限定目标路径是一个本地文件外,和get命令类似。
示例:hadoop fs - copyToLocal/word /usr/wisedu/temp/word.txt
10) mv
将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
使用方法:hadoop fs -mv URI [URI …]
示例:hadoop fs -mv /in/test2.txt /test2.txt

11) du 显示文件大小
显示目录中所有文件的大小。
使用方法:hadoop fs -du URI [URI …]
示例: hadoop fs -du /
显示当前目录或者文件夹的大小可加选项 -s
示例: hadoop fs -du -s /

12) touchz 创建空文件
使用方法:hadoop fs -touchz URI [URI …]
创建一个0字节的空文件
示例:hadoop fs -touchz /empty.txt
13) chmod 改变文件权限
使用方法:hadoop fs -chmod[-R]

解压后如果感觉安装目录的名称太长可以修改一下

[hadoop@hadoop01 soft] cd/home/hadoop/apps/[hadoop@hadoop01apps] c d / h o m e / h a d o o p / a p p s / [ h a d o o p @ h a d o o p 01 a p p s ] mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0
(2) 修改spark-env.sh配置文件

把SPARK_HOME/conf/下的spark-env.sh.template文件复制为spark-env.sh

[hadoop@hadoop01 apps] cdspark2.2.0/conf[hadoop@hadoop01conf] c d s p a r k − 2.2.0 / c o n f [ h a d o o p @ h a d o o p 01 c o n f ] mv spark-env.sh.template spark-env.sh

修改spark-env.sh配置文件,添加如下内容

[hadoop@hadoop01 conf]$ vim spark-env.sh

配置JAVA_HOME,一般来说,不配置也可以,但是可能会出现问题,还是配上吧

export JAVA_HOME=/usr/local/java/jdk1.8.0_73# 一般来说,spark任务有很大可能性需要去HDFS上读取文件,所以配置上# 如果说你的spark就读取本地文件,也不需要yarn管理,不用配
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.4/etc/hadoop

设置Master的主机名

export SPARK_MASTER_HOST=hadoop01# 提交Application的端口,默认就是这个,万一要改呢,改这里
export SPARK_MASTER_PORT=7077# 每一个Worker最多可以使用的cpu core的个数,我虚拟机就一个…# 真实服务器如果有32个,你可以设置为32个
export SPARK_WORKER_CORES=1# 每一个Worker最多可以使用的内存,我的虚拟机就2g# 真实服务器如果有128G,你可以设置为100G
export SPARK_WORKER_MEMORY=1g
(3) 修改slaves配置文件,添加Worker的主机列表
[hadoop@hadoop01 conf] mvslaves.templateslaves[hadoop@hadoop01conf] m v s l a v e s . t e m p l a t e s l a v e s [ h a d o o p @ h a d o o p 01 c o n f ] vim slaves

里面的内容原来为localhost

hadoop01
hadoop02
hadoop03
hadoop04
(4) 把SPARK_HOME/sbin下的start-all.sh和stop-all.sh这两个文件重命名
比如分别把这两个文件重命名为start-spark-all.sh和stop-spark-all.sh
原因:
如果集群中也配置HADOOP_HOME,那么在HADOOP_HOME/sbin目录下也有start-all.sh和stop-all.sh这两个文件,当你执行这两个文件,系统不知道是操作hadoop集群还是spark集群。修改后就不会冲突了,当然,不修改的话,你需要进入它们的sbin目录下执行这些文件,这肯定就不会发生冲突了。我们配置SPARK_HOME主要也是为了执行其他spark命令方便。
[hadoop@hadoop01 conf] cd../sbin[hadoop@hadoop01sbin] c d . . / s b i n [ h a d o o p @ h a d o o p 01 s b i n ] mv start-all.sh start-spark-all.sh
[hadoop@hadoop01 sbin] mvstopall.shstopsparkall.sh(5)spark[hadoop@hadoop01apps] m v s t o p − a l l . s h s t o p − s p a r k − a l l . s h ( 5 ) 把 s p a r k 安 装 包 分 发 给 其 他 节 点 [ h a d o o p @ h a d o o p 01 a p p s ] scp -r spark-2.2.0 hadoop02:pwd
[hadoop@hadoop01 apps]$ scp -r spark-2.2.0 hadoop03:pwd
[hadoop@hadoop01 apps]$ scp -r spark-2.2.0 hadoop04:pwd
(6) 在集群所有节点中配置SPARK_HOME环境变量
[hadoop@hadoop01 conf] vim /.bashprofileexportSPARKHOME=/home/hadoop/apps/spark2.2.0exportPATH= v i m   / . b a s h p r o f i l e e x p o r t S P A R K H O M E = / h o m e / h a d o o p / a p p s / s p a r k − 2.2.0 e x p o r t P A T H = PATH: SPARKHOME/bin: S P A R K H O M E / b i n : SPARK_HOME/sbin

[hadoop@hadoop01 conf]$ source ~/.bash_profile

其他节点也都配置…

(7) 在spark master节点启动spark集群

注意,如果你没有执行第4步,一定要进入SPARK_HOME/sbin目录下执行这个命令# 或者你在Master节点分别执行start-master.sh和start-slaves.sh

[hadoop@hadoop01 conf]$ start-spark-all.sh
注意:
· 如果你配置了HADOOP_CONF_DIR,在启动spark集群之前,先启动hadoop集群
(8) 验证

安装 anaconda
命令行输入 bash Anaconda3-5.0.1-Linux-x86_64.sh -p /opt/anaconda3 -u

之后配置环境变量

添加以下内容

11.安装 mysql
apt-get install mysql-server
如果中途要求设置 root 用户密码,输入你自己密码即可
安装过程大概 5-10 分钟
安装 mysql 客户端
apt-get install mysql-client
之后启动
Mysql -u root -p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值