一.SSH配置
sudo passwd root(设置root用户密码)
apt-get install openssh-server
不识别
apt-get update
配置ssh
- 找到文件
vim /etc/apt/sources.list - 替换网址
- :%s/hk.archive/old-releases
- :%s/security.ubuntu/old-releases.ubuntu
正式开始ssh服务的配置
- 启动ssh
/etc/init.d/ssh start - 查看ssh是否启动成功
ps -e|grep sshd - 默认不允许root用户登录,需要修改相关匹配
Vim /etc/ssh/sshd_config
修改一下配置内容
PermitRootLogin yes
保存退出
二.配置linux网络
- 配置ip地址
① 打开interfaces文件
vim/etc/network/interfaces
② 将dhcp修改为static
③ 打开虚拟机的[虚拟网络编辑器]-选择[vmnet8]-打开[dhcp],根据起止ip段的限制,自己确定一个ip地址,写进address
address 192.168.17.150
④ 查看[dhcp]中的子网掩码,写进netmask
netmask 255.255.255.0
⑤ 查看[nat]中的网关,写进gateway
gateway 192.168.17.2
保存退出 - 配置DNS
① 使用vim编辑器打开base
vim/etc/resolvconf/resolv.conf.d/base
② 输入DNS
nameserver 114.114.114.114
Nameserver 8.8.8.8
保存退出
3.配置主机名
vim/etc/hostname
在该文件中输入想要的主机名,保存退出
重启
4.配置主机和ip地址的映射
vim/etc/hosts
在后面追加映射关系
192.168.17.150 hellolinux
三.安装、配置文件服务器
- apt-get install vsftpd (y)
- passwd ftp
设置ftp的密码 - chmod 777 /srv/ftp
- 修改配置文件
vim /etc/vsftpd.conf
anonymous_enable=NO 不允许匿名登录
local_enable=YES 允许本地用户登录
write_enable=YES 用户具有写权限
chroot_list_user=YES 将用户限制在主目录
chroot_list_enable=YES 启动用户名单
chroot_service_name=vsftpd.chroot_list 启动后的用户名单是哪个文件
Pam_service_name=vsftpd 增加服务配置 - 新建一个文件,用来存在登录用户名
vim /etc/vsftpd.chroot_list
输入:
Vim /etc/pam.d/vsftpd
注释以下内容:
#auto required ---------pam_shells.so
重启
四.深入配置FTP服务
- 使用系统中已有用户登录ftp
① 将root添加到白名单
vim /etc/vsftpd.chroot_list
root
② 将root用户从黑名单中删除
vim /etc/ftpusers
#root
③ 重启服务
reboot 重启系统
service vsftpd start - 新建用户登录ftp
① 为新用户创建主目录
mkdir /srv/ftp/zhangsan
② 修改主目录权限
chmod 777 /srv/ftp/zhangsan
③ 新建用户
useradd -d /srv/ftp/zhangsan -s /bin/bash zhangsan
④ 激活用户(设置密码)
passwd zhangsan
⑤ 将用户写进白名单
vim /etc/vsftpd.chroot_list
zhangsan
⑥ 重启服务
reboot 重启系统
service vsftpd start
五.部署JDK
(1) 优慕课下载jdk安装包
(2) 利用ftp工具,将下载好的jdk传到ubuntu,到ftp目录下解压,输入以下命令解压缩
Tar xzvf jdk********** -C /usr/local
解压完毕后,切换到/usr/local目录
(3) 对JDK改名
Mv jdk ******* jdk
(4)配置环境变量
Vim /etc/profile
在文件末尾回车,追加以下配置信息
export JAVA_HOME=/usr/local/jdk
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: H A D O O P H O M E / b i n : e x p o r t C L A S S P A T H = HADOOP_HOME/bin: export CLASS_PATH= HADOOPHOME/bin:exportCLASSPATH=JAVA_HOME/lib/dt.jar: J A V A H O M E / l i b / t o o l s . j a r 保 存 退 出 ( 6 ) 使 配 置 生 效 S o u r c e / e t c / p r o f i l e ( 7 ) 测 试 j d k 是 否 安 装 成 功 J a v a 或 j a v a c 六 . 安 装 配 置 H a d o o p ( 1 ) 从 优 慕 课 平 台 下 载 h a d o o p 包 传 至 / s r v / f t p 目 录 下 ( 2 ) 将 H a d o o p 包 解 压 缩 至 / u s r / l o c a l t a r x z v f h a d o o p − 2.7.2. t a r . g z – C / u s r / l o c a l / 切 换 到 / u s r / l o c a l 目 录 下 修 改 文 件 名 ( 3 ) 将 解 压 后 的 H a d o o p − 2.7.2 改 名 为 h a d o o p m v h a d o o p − 2.7.2 h a d o o p ( 4 ) 配 置 环 境 变 量 v i m / e t c / p r o f i l e E x p o r t H A D O O P H O M E = / u s r / l o c a l / h a d o o p 在 P A T H 后 面 添 加 如 下 信 息 : JAVA_HOME/lib/tools.jar 保存退出 (6)使配置生效 Source /etc/profile (7)测试jdk是否安装成功 Java或javac 六.安装配置Hadoop (1) 从优慕课平台下载hadoop包传至/srv/ftp目录下 (2) 将Hadoop包解压缩至/usr/local tar xzvf hadoop-2.7.2.tar.gz –C /usr/local/ 切换到/usr/local目录下修改文件名 (3)将解压后的Hadoop-2.7.2改名为hadoop mv hadoop-2.7.2 hadoop (4)配置环境变量 vim /etc/profile Export HADOOP_HOME=/usr/local/hadoop 在PATH后面添加如下信息 : JAVAHOME/lib/tools.jar保存退出(6)使配置生效Source/etc/profile(7)测试jdk是否安装成功Java或javac六.安装配置Hadoop(1)从优慕课平台下载hadoop包传至/srv/ftp目录下(2)将Hadoop包解压缩至/usr/localtarxzvfhadoop−2.7.2.tar.gz–C/usr/local/切换到/usr/local目录下修改文件名(3)将解压后的Hadoop−2.7.2改名为hadoopmvhadoop−2.7.2hadoop(4)配置环境变量vim/etc/profileExportHADOOPHOME=/usr/local/hadoop在PATH后面添加如下信息:HADOOP_HOME/bin:$HADOOP_HOME/sbin
(5)使配置文件生效
Source /etc/profile
(6)继续配置
Hadoop/etc/hadoop/hadoop-env.sh文件
Vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改为以下内容
Export JAVA_HOME=/usr/local/jdk
保存退出
(7)测试hadoop
在/usr/local/hadoop下新建目录input
Mkdir /usr/local/hadoop/input
进入input目录,建立测试文件
Vim 111222.txt
输入
A b c d……
回到input的上层目录!!!!!!
Cd …
输入如下命令
Hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.2-sources.jar org.apache.hadoop.examples.WordCount input output
进入output目录,输入cat命令查看统计结果
Cat part-r-00000
七.SSH免密登录:
- 确保主机名跟ip地址映射关系
Vim /etc/hostname查看主机名
Ifconfig查看本机ip
Vim /etc/hosts增加主机名跟ip的映射关系。
reboot重启使配置生效
2.~目录下的文件里删除可能出现的ssh文件
rm -rf .ssh
3.生成ssh的密钥
ssh-keygen -t rsa
连续回车采用默认设置
打开.ssh ,查看公钥私钥
cd .ssh
ll
more id_rsa
more id_rsa.pub
4.将公钥(id_rsa.pub)拷贝到authorized_keys目录下
Cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
查看 authorized_keys
cat authorized_keys
5.测试ssh免密登录设置成功
ssh root@hellolinux
y
yes
八.配置伪分布式Hadoop系统
- 进入目录:
Cd /usr/local
进入hadoop
进入etc
进入hadoop 输入ls查看配置文件 - 找到三个文件
Core-site.xml
Hdfs-site.xml
Yarn-site.xml - 使用vim编辑器依次修改三个配置文件内的信息
Vim core-site.xml
拷贝配置内容(删除home,改主机名)
:%s/hadoopm/hellolinux
Vim hdfs-site.xml
拷贝配置内容(改两处主机名)
:%s/hadoopm/hellolinux
Vim yarn-site.xml
拷贝配置内容(改主机名)
:%s/hadoopm/hellolinux
4.使用vim编辑器在usr/local/Hadoop/etc/hadoop目录下新建一个masters文件,和一个slaves文件
Vim masters
Vim slaves
分别输入主机名
5、在usr/local/hadoop目录下新建一个dfs文件
Mkdir dfs
进入dfs文件,新建name和data
Mkdir name
Mkdir data - 格式化
Hdfs namenode -format
7.启动
Start-all.sh
8.查看是否配置成功
输入jps
如果出现6个进程则成功
9.关闭hadoop
Stop-all.sh
九.HDFS:
1.Ufw disable 关闭防火墙
2.Apt-get remove iptables 卸载iptables
3.修改core-site.xml
fs.defaultFS
hdfs://nn01:9000
十.主次节点一起启动
一、 配置免密登录
在主节点nn01中配置
(1) 删除.ssh文件
rm -rf .ssh
(2) 生成ssh密钥
ssh-keygen -t rsa
(3)配置免密
主节点免密登录:ssh-copy-id root@nn01
(4)在/usr/local/hadoop/etc/hadoop/slaves中写入次节点名称
dn01
dn02
dn03
(5)分别将slaves复制到次节点中
Scp -r /usr/local/Hadoop/etc/Hadoop root@dn01:/usr/local/hadoop/etc/hadoop
(6)在主节点中输入以下代码
ssh-copy-id root@dn01(连续回车)
ssh-copy-id root@dn02(连续回车)
ssh-copy-id root@dn03(连续回车)
(7)一键启动
start-dfs.sh
一键启动:
nn01和dn01,dn02,dn03都准备好之后
把slaves准备好,slaves中的内容:dn01,dn02,dn03,
1.分别把slaves复制到dn01,dn02,dn03中
scp –r /usr/local/Hadoop/etc/Hadoop root@dn01:/usr/local/hadoop/etc/hadoop
- 在dn01,dn02,dn03中分别设置免密登录
ssh-keygen –t rsa
ssh-copy-id root@dn01
然后在nn01主节点中输入
ssh-copy-id root@dn01 - 直接启动
start-dfs.sh
注意:凡是带有hadoop fs命令的语句,皆为操作文件存储系统里面的数据。与在本操作系统下面操作数据的命令不同
传文件:
- 新建一个文件1234,输入内容
- 将1234文件传到集群中
Hadoop fs –put /root/1234(空格)/
新建目录
在hdfs的根目录下新建一个名为山东的文件夹
hadoop fs -mkdir /shandong
删除目录
在hdfs的根目录下删除名为山东的文件夹
hadoop fs -rm -r /shandong
删除文件
在hdfs的根目录下删除名为sdbi的文件
hadoop fs -rm /sdbi
关于用一台新的主机上传下载一个集群的方法
-
在集群里面找一个节点(以dn01为例)
-
在dn01里面,将hadoop复制到root目录下
cp /usr/local/hadoop /root/ -
切换到root目录下,打包目录
cd /root
tar -cvf hadoop.tar hadoop -
在新主机上,用ftp登录dn01
(假设新主机为test ip为192.168.17.181,dn01的ip为192.168.17.131)
ftp 192.168.17.131 -
指定下载目录,并下载文件
lcd /srv/ftp(这个目录是dn01里面存放hadoop.tar的目录)
get hadoop.tar -
用tar命令解压到当前目录
tar -xvf hadoop.tar -
将目录切换到该目录下的/hadoop/bin下,上传文件,
hadoop fs -put 111.txt
但是会报错,原因是core-site.xml里面的主机名字不识别。需要修改/etc/hosts里面的内容,增加一个主机名和IP地址之间的映射
以上是关于一台新的主机从集群上上传下载文件
如果这个新主机是另一个集群上的,就比较麻烦了
从7开始
7.将拷贝过来的hadoop.tar压缩包解压之后
8. 需要修改/etc/profile里面文件的目录
9. 在/etc/hosts里面增加一个core-site.xml里面的主机名的IP地址(这全都是在root用户下进行操作的)
若是普通用户,需要修改权限
hadoop fs -chmod 777 /
十一.关于部署hive
- 在Apache官网上下载hive的安装包
- 用ftp(次节点)上传之后,解压缩至/usr/local下,改名为hive
- 切换至/usr/local/hive目录,运行bin/hive
- 运行之后:
新建表(文件)
hive>create table sdbi(id int,depname string,claname string)
row format delimited
fields terminated by ‘-’;
第一行代码意为
创建表名映射
第二行代码意为
限制每一行代码
第三行代码意为
每行的字符通过‘-’字符分隔(可以用其他字符,空格也行)
通过在网页上查看,可以知道新建的sdbi这个表存放在/user/hive/warehouse这个目录下面(这个目录是HDFS上的目录,虚拟机内部没有)
从hive里面通过quit;退出,在~目录下上传一个文件用于测试
hadoop fs -put 111222 /user/hive/warehouse/sdbi
上传之后
再次进入hive
use defalut
show tables
通过此命令查看表
select depname,count(depname) from sdbi group by claname
这一句代码为聚类分析,将sql语句转化成MapReduce语句
十二.关于安装mysql的那些事
-
为什么安装mysql
启动hive有三种方法。
第一种是在hive目录下,用bin/hive启动
第二种是在其他目录下,用/usr/local/hive/bin/hive启动
第三种是在/usr/local/hive/bin目录下,用./hive启动
这三种方法不管是哪一种,都会在当前目录下面新建一个源数据库,即metastore_db,占用资源而且不同的启动方法,所创建的数据也会存放在不同的源数据库里面,会找不到数据。
为了方便管理,并且节约空间,我们需要安装mysql -
怎么安装
首先要明确,安装mysql要安装三样东西 -
数据库服务端
-
数据库客户端
-
SQL面向所有程序提供的接口
步骤:
(1)apt-get install mysql-server(中间会提示让用户设置密码)
(2)apt-get install mysql-client
(3)apt-get install libmysqlclient-dev
(4)检查是否安装成功:netstat -tap | grep mysql
(5)启动:mysql -u root -p (-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入之后会提示输入密码,此时输入密码就可以登录到mysql)
在/etc/mysql/mysql.conf.d/中编辑mysqld.cnf文件,解绑(即将bind-address这一行的注释删除掉,远程访问)
十三.配置hive的数据仓库
-
在/usr/local/hive/conf下面新建一个名为hive-site.xml的文件,输入以下内容
-
将下载好的驱动放在/usr/local/hive/lib里面
-
运行hive
-
运行mysql
(注意:在hive>里面查看不了mysql中的数据,但在mysql中可以查看hive的数据。因为有数据隔离,hive相当于一个普通用户,mysql才是管理员。)
show databases;
use mysql
十四.配置flume
1.下载flume
登录flume.apache.org网址下载
2.上传到主节点
ftp
3.解压到usr/local目录下
tar xzvf flume***** -C/usr/local
4.配置环境变量
export FLUME_HOME=/usr/local/flume
export FLUME-CONF-DIR=
F
L
U
M
E
H
O
M
E
/
c
o
n
f
e
x
p
o
r
t
P
A
T
H
=
FLUME_HOME/conf export PATH=
FLUMEHOME/confexportPATH=PATH:$FLUME_HOME/bin
5.复制flume-env.sh.template为flume-env.sh
cp flume-env.sh.template flume-env.sh
6.配置flume-env.sh
export JAVA_HOME=/usr/local/jdk
7.检查是否安装成功
flume-ng version看是否出来版本
8.测试usr/local/flume/conf
vim /usr/local/flume/conf/example.conf
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = echo ‘hello’
a1.sink.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.chanannels.c1.transactioncapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
wq!
9. 出现 ‘hello’表明成功
flume-ng agent -f /usr/local/flume/conf/example.conf -name a1-Dflume.root.logger=INFO,console
十五.配置zookeeper集群
1.zookeeper.apache.org官网下载安装包
2.上传到次节点并解压到/usr/local下
- zookeeper 创建 data目录进入到usr/local/zookeeper/conf
复制zoo_sample.cfg为zoo.cfg
cp zoo_sample.cfg zoo.cfg
4.修改配置信息
dataDir=/usr/local/zookeeper/data
server.1=192.168.246.171:2888:3888
server.2=192.168.246.172:2888:3888
5.data目录下面创建一个myid文件
#第一台服务器 myid 1
#第二台服务器 myid 2
6.把zookeeper拷贝到每一个节点
scp -r /usr/local/zookeeper root@192.168.246.171:/usr/local/
7.启动
/usr/local/zookeeper/bin/zkServersh start/stop
8.查看状态
/usr/local/zookeeper/bin/zkServersh status
十六.hbase单机部署和集群部署
单机部署:
1.下载解压到/usr/local,并更改名字
2.配置环境变量
vim /etc/profile
export HBASE_HOME=/usr/local/hbase
export PATH=
P
A
T
H
:
PATH:
PATH:HBASE_HOME/bin:
wq!
source /etc/profile
3.配置hbase-env.sh
vim /usr/local/hbase/conf/hbase-env.sh
28行左右:export JAVA-HOME=/usr/local/jdk
125行左右:去掉注释就行export HBASE_HOME_ZK=true(单机模式就用他自己管理zookeeper不用单独配置,所以写true)
4.配置hnase-site.xml(指定hbase存储目录,这样重启后不会丢失数据)
hbase.rootdir
file:///usr/local/hbase/hbase_tmp
5.在/usr/local/hbase:
bin/hbase-start.sh启动
bin/hbase shell 打开shell命令行(list查看表)
quit退出
bin/stop-hbase.sh停止
集群部署:(前提是有hdfs,zookeeper集群)
1.下载解压到/usr/local,并更改名字
2.配置环境变量
vim /etc/profile
export HBASE_HOME=/usr/local/hbase
export PATH=
P
A
T
H
:
PATH:
PATH:HBASE_HOME/bin:
wq!
source /etc/profile
3.配置hbase-env.sh
vim /usr/local/hbase/conf/hbase-env.sh
28行左右:export JAVA-HOME=/usr/local/jdk
125行左右:去掉注释就行export HBASE_HOME_ZK=false(用我们自己配置的zookeeper集群)
4.配置hnase-site.xml(指定hbase存储目录,这样重启后不会丢失数据)
(hbase在hdfs的存储路径)
hbase.rootdir
hdfs://master:9000
(指定hbase是分布式)
hbase.cluster.distributed
true
(zookeeper地址)
hbase.zookeeper.quorum
192.168.246.130:2181, 192.168.246.131:2181, 192.168.246.132:2181
4.配置regionservers
vim/usr/local/hbase/conf/regionservers(里面写次节点名称·)
slave1
slave2
5.把hbase复制给次节点
scp -r /usr/local/hbase root@slave1:/usr/local/
scp -r /usr/local/hbase root@slave2:/usr/local/
6.启动hdfs,zookeeper
start-dfs.sh
/zookeeper(主次都输入)
bin/zkServer.sh start
/hbase(主次都输入)
start-hbase.sh
十七.spqrk单机部署和集群部署
单机部署:
1.下载解压到/usr/local
2.配置环境变量
vim /etc/profile
export SPARK_HOME=/usr/local/spark
export PATH=
P
A
T
H
:
PATH:
PATH:SPARK_HOME/bin:
3./spark
spark-shell
:quit退出
集群部署
1.下载解压到/usr/local
2.配置hdfs路径
cd /usr/local/spark/conf
cp spark-env.sh temples spark-env.sh
vim spark-env.sh
+
export SPARK_DIST_CLASSPATH=$(/usr/local/Hadoop/bin/Hadoop classpath)
3.启动/spark
bin/run.example SparkPi
/spark(过滤信息)
bin/ run.example SparkPi 2>&1 | grep “Pi is”
/spark
bin/spark-shell