第一周: linux系统。
第二周: hadoop集群。
第三周: hdfs javaAPI 。
第四周: mapreduce。
Unix:
Linux: linux is not unix
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
Red Hat:RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server收费版本. 红帽企业级Linux
Fedora Core:由原来的Redhat桌面版本发展而来,免费版本
Centos:RHEL的社区克隆版本,免费
SuSE:最华丽的Linux发行版, 企业服务器端 X windows和程序应用方面做的确实不错。尤其与Microsoft的合作关系,应该是在所有的Linux发行版本中最亲密的。
Debian运行起来极其稳定,这使得它非常适合用于服务器
Ubuntu:是Debian的一款衍生版,也是当今最受欢迎的免费操作系统, 最流行的linux桌面系
Fedora: 想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。
安装
安装过程‘’
虚拟机:VMware workstation11
Linux系统:CentOS-6.5-x86_64-bin-DVD1.iso
不带系统的笔记本或者台式
类似win7 win8.1 win10 mac 等操作系统
1 选择 新建虚拟机
2 选择 自定义
3 选择 稍后安装操作系统
4 选择 linux Centos64位
5 选定存储地址
6 Cpu颗数(cup可数可以去我的电脑属性管理中查看自己电脑的核数
切记不要大于电脑核数,这样会导致电脑异常!)
【4核】【22 23】适中
【8核】【3*3 】适中
根据自己电脑核数自行增加倍数越大运行越快
7 默认内存1g (目前1g可以根据自己使用量适量增长,
注:尽量不要太大)
8 选择仅主机模式
9 默认
10 默认
11 磁盘50G【安装时电脑会自动设置磁盘容量,初学者可以适应20G,够用合理】
12 默认
13 完成
安装完后可以编辑虚拟机设置
2 选择ISO镜像文件
3 开机
4 选 第一个
5 Skip跳过
6 下一步
7 英语【编程初学者建议使用英文不要使用简体中文,以利于认知,对以后工作帮助很大!】
8 英语
9 选择基础存储设备
10 不保存任何数据
11 主机名称 默认
12 时区 选 亚洲 上海【因为没有北京时间,所以我们直接在选框或者地图上选择上海时间就行!】
13 Root 管理员密码
14 Root 管理员密码
15 创建/ 根分区
16 格式化硬盘
17 桌面即可重启
(Ifconig、hostname、service iptables status、setup)
vmware虚拟机下的三种上网方式bridged, nat, host-only
选择这种模式,虚拟机等同于网络内的一台物理主机,可对手动设置IP,子网掩码,DNS,且IP地址要和主机的IP在同一网段内。
这样,虚拟机就和主机如同连在一个HUB上的两台计算机,只要主机能上网,虚拟机也会在这种模式下上网。
选择NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网,NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
选择host-only模式,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。同时,虚拟系统和宿主机是可以相互通信的。
【下面一些指令可以对照着在虚拟机内敲一下!】
将Windows上的虚拟网卡改成跟Linux上的网卡在同一网段
注意:一定要将widonws上的WMnet1的IP设置和你的虚拟机在同一网段,
但是IP不能相同且不能超出IP范围255值。
查看 linux 防火墙状态:
#chkconfig iptables --list
#临时关闭防火墙服务:
#service iptables stop
#开启防火墙服务:
#service iptables start;
2: 永久关闭防火墙:
#chkconfig iptables off
开启防火墙:
#chkconfig iptables on
2: 配置linux的网路连接以及IP。以及主机名,以及映射。
配置linux主机的IP地址:
2.1): 临时修改IP地址:
#ifconfig eth0 192.168.137.3
2.2) : 使用图形界面进行修改:
2.3): 修改网卡的配置文件:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
切记: 2.2/2.3 的操作。都需要重启网卡的服务。
#service network restart
3: 修改主机名:
3.1: 临时修改主机名:
#hostname jy1611b.com
3.2: 永久修改主机名:
#使用vi 编辑器。进行主机名的修改。
#vi /etc/sysconfig/network
#a i 点击这两个任意一个进入编辑【其中这两个编辑方式不一样可以自行测试!!!】
进行主机名的修改
Hostname=jy1611b
#esc 【编辑完按ESC ,此后不能进行编辑进行下一步输入 :wq 敲回车进行保存,如果不想保存也可以 :q! 进行取消 不保存】
:
#:wq 【保存】
#:q!【不保存】
4: 讲主机名与Ip.进行映射: www.baidu.com 就是这么做的。
#vi /etc/hosts
192.168.137.225 hadoop.com hadoop
137是默认的 后面数字可以自行更改不笨别人冲突就行,0 1不可以用是网关
2-255 之间数字即可
Linux 自身可访问。Windows 无法访问。
5: 修改windows 的主机映射
C:/windows/system32/drivers/etc/hosts
192.168.137.225 hadoop.com hadoop
win8 win10 你一定会出问题。在windows 中的hosts 这个文件受保护。
你没有修改的权限。怎么办。
解决办法:
1从目录中把hosts文件复制到桌面上,右键编辑,或者有
也可以选择这个打开修改里面内容 ctrl +s 【注:一定要保存 】然后复制粘贴替换到文件目录中的hosts文件即可。
【注:是VMnet1网卡,不是网络,在注释的时候输入有误!】
右键属性
点击共享选择VMware Network Adapter VMnet1即可
如果window物理机主机ping不通虚拟机主机名名的,需要修改 C:\Windows\System32\drivers\etc\hosts 映射文件。
如:192.1681.1.100 hadoop001
目录 | 作用 |
---|---|
/ | Linux系统的根目录,一般只存放目录 |
/bin和/usr/bin | 命令(二进制)文件目录,包含可供root用户和普通用户所使用的Linux命令和二进制文件,包含shell解析器等 |
/boot | 系统引导和内核目录,存放引导装载文件 |
/dev | 设备目录,存放各个硬件设备的信息,例如光驱、硬盘等 |
***/etc | 系统级别的配置文件存放的目录,一般由配置管理员来使用 |
**/home | 所有普通用户的家目录 |
/lib、/usr/lib、 | 系统使用的函数库的目录 |
/usr/local/lib | :: |
/lost+fount | 在ext2和ext3文件系统中,系统崩溃时记录信息的目录 |
***/opt | 给主机额外安装软件所摆放的目录 |
/proc | 重要的需要放置在内存中的数据 |
/root | root用户的的根目录 |
/sbin、/usr/sbin | 放置的是系统管理员(root)才能使用的命令, |
/usr/local/sbin | 普通用户只能进行查看,而/bin目录中的命令普通用户也可以使用 |
/tmp | 存放应用程序产生的临时数据不能在此目录下存放重要数据 |
/var | 系统一般运行时需要改变的数据 |
/usr | 应用程序相关目录命令、函数库、共享包、内核源码 |
1:超级管理员: root
2: 普通管理员: huaqiang
huaqiang@localhost DespTop $
$ 表示临时用户
# 表示超级用户
基本操作和命令
Ctrl+R 查找历史输入过的命令
Ctrl+C 终止或退出当前操作
Table键的使用
自动补全命令或目录
在某个目录下只有一个目录的时候可以不用输入首字母直接敲table即可自动补全目录
双击table时一般为显示所有命令或者列出某个目录下的所有目录和文件
: linux 命令的组成:
命令 参数 文件|路径
#ls -al /home
uname -a 显示系统及版本的所有信息
uname -r 显示内核版本
uname -m 显示计算机是多少位系统
cat /etc/redhat-release
Hostname
ifconfig eth0
date
date -s "2015-5-8 19:48:00"
设置时区
执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->
TZ='Asia/Shanghai'; export TZ
hwclock --systohc
ps -fe | grep redis
top -s
cmd1 | cmd2 将cmd1输出结果交给cmd2命令来执行
# grep //输出包含指定字符串的行
-i //忽略大小写
-v //取反
--color //突出显示查找字符串
reboot
Init 6
shutdown -h now
init 0
vi /etc/inittab
init 3 命令行模式
init 5 图形化
Pstree 或者 pstree -p (显示pid)
jps ps -aux
kill -9 pid
1.在grub选项菜单按e进入编辑模式
2.编辑kernel那行 输入” 1”(空格1)
3.按B重启存的
4.进入后执行下列命令
root@#passwd root (配置root的密码)
Enter new unix password:输入新的密码
root@#init 6
wget http://192.168.21.41/lrzsz.rpm
超级账户 root uid = 0
普通账户 uid > = 500
系统账户 uid = 1 ~ 499
/etc/passwd //保存账户的信息
/etc/shadow //保存账户密码信息
/root //root用户家目录
/home/xxx //普通用户xxx的家目录
# useradd //创建用户
-u 指定uid
-d 指定宿主目录
-s 指定使用shell
-e 指定用户过期时间
-g 指定基本组
-G 指定附加组
# useradd openlab
# gpasswd -a openlab gropenlab //将用户加入到组中
# gpasswd -d openlab gropenlab //将用户从组中删除
# echo "123456" | passwd --stdin feige //不通过交互信息,直接改用户密码
# userdel //删除用户 不删除用户文件
# userdel -r //连主目录一起删除
# id openlab //显示用户信息
groupadd manager
useradd -G manager tom
useradd -G manager tom2
passwd tom
echo "root" | passwd --stdin root //不通过交互信息,直接改用户密码
userdel tom2
usermod -L tom2
su - admin
whoami
cat /etc/passwd
cat /etc/group
Linux下文件权限介绍
1- 2rw- 3rw- 4r--**==-==** 表示文件。
rw- r read(读取)
w write(写入)
x execute(执行)
2: 表示当前用户对文件的权限。
3:表示当前组的用户对文件的权限。
4:表示其他组的用户对文件的权限。
r4 w2 x1
Linux 文件的7个权限。
"0:无权限
1:可执行
2:可写
3:可执行、可写
4:可读
5:可读可执行
6:可读可写
7:可读可写可执行"
修改文件的权限:
Chmod 777 a.jpg:
修改文件的所有者:
Chown 张三:张三 a.jpg
关于用户和组的概念:
在用户的文件中。体现。
- rwx rwx rwx 用户:用户组
创建两个用户:
Jack lucy
创建两个组
Teacher student
讲jack 添加到teacher组
讲lucy 添加到student 组。
使用jack在jack的目录中,创建文件。
使用lucy登录。查看lucy是否对jack的文件拥有权限。
如果没有,请添加给lucy权限。
2: 讲lucy和jack 放到同一个组中。匹配同组的权限。
在linux中,经常会遇到权限问题。很难。
给普通用户有个root权限。
Vi /etc/soduers
#huaqiang ALL=(root)NOPASSWD:ALL
如何使用 免密码的root权限。
#sudo 命令名。
pwd
ls -l /data0
ls -R /data0
权限:读取\写入\可执行
归属关系: 所有者\所属组\其他用户
-|rw-|---|---. 1 root root 1771 4月 28 2015 anaconda-ks.cfg
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨
①:文件类型
- 文件
d 目录
l 链接
②:所有者权限(u)
r 读 4
w 写 2
x 执行 1
③:所属组权限(g)
r 读 4
w 写 2
x 执行 1
④:其他用户权限(o)
r 读 4
w 写 2
x 执行 1
⑤:所有者
⑥:所属组
⑦:文件大小
⑧:最后修改时间
⑨:文件名
mkdir /tmp/test01 //创建空文件夹
mkdir /data1/hadoop/hdfs/name -p //创建多级文件夹
touch /tmp/test01/file.txt //创建空文件
vi file.log //创建空文件并进如编辑模式
cat test.log // 查看文件内容。
重定向:
echo > file.txt //创建file.txt并输入空到该文件中
echo > >file.txt //创建file.txt并输入空到该文件中
cp /tmp/file1.txt /opt
cp -r /tmp/test01 /opt
mv /opt/test01 /tmp
mv /opt/file1.txt /tmp/file2.txt
rm //删除文件
rm -r //删除目录
rm -f //强制删除
rm –rf folder //常用命令 不可恢复
cat -n //查看内容时显示行号
cat /etc/redhat-release //不显示行号
cat -n /etc/passwd //查看内容时显示行号
chmod 777 /data0/my.cnf
less /etc/passwd
more install.log
tail //默认查看文件尾10行
head //默认查看文件头10行
-n 数字 //查看指定头几行
# tail /etc/passwd
# head /etc/passwd
# tail -n 2 /etc/passwd
# head -n 3 /etc/passwd
# head -n 12 /etc/passwd | tail -n 5
> 先清空文件内容,后写入新的内容
# ls -l /root > /tmp/file1.txt
>> 追加新的内容,旧的内容不会消除
# ls -l /root >> /tmp/file1.txt
echo "No Hello World..." //打印到屏幕
echo “hello word” /data0/my.cnf //打印到文件
echo “hello word” >> /data0/my.cnf //打印追加到文件
vim file
:q //退出
:w //保存
:wq //保存退出
:q! //强制退出
显示行号:#set nu
向右移动 --> l
向左移动 --> h
向下移动 --> j
向上移动 --> k
保存当前修改并退出 --> ZZ
撤销上一步操作 --> u
移动光标到行首 --> 0 (数字0) gg
移动光标到行末 --> $ :G
移动光标到当前页最顶行 --> H
移动光标到当前页最底行 --> L
向前翻一页(Page Up) --> Ctrl + f
向后翻一页(Page Down) --> Ctrl + b
(1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p
1: 首先判断,在当前的linux中是否有已经安装的JDK。
Java javac java -version
2: 卸载之前已经安装的JDK;
#sudo rpm -qa | grep JDK
卸载JDK:
#sudo rpm -e --nodeps (jdk版本)
3: 开始安装。
3.1: 使用远程文件传输工具。将JDK的tar.gz 的安装包。发往linux。
3.1.1: 首先在linux中创建三个文件夹》 softwares modules tools
#sudo mkdir /opt/softwares
#sudo mkdir /opt/modules
#sudo mkdir /opt/tools
3.1.2: 修改三个文件夹的所有者:
#sudo chown huaqiqng:huaqiang: softwares modules tools
3.1.3: 使用远程工具进行文件拷贝。
3.1.4: 解压JDK安装包:
#修改安装包的权限。
# chmod 764 jdk-7u67-linux-x64.tar.gz
开始解压:
#tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules
4: 配置JDK的环境变量:
/opt/modules/jdk1.7.0_67
4.1: #SET JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin:
5: 配置完环境变量。当前的系统无法识别。
需要刷新资源文件:
#source /etc/profile
7: 进行测试。Java javac java -version
8: 编写java文件。进行编译和执行。
-z 压缩
-c 打包
-x 解包
-f 必须要
-C 指定解包位置
-v 输出信息
//将一个文件打包
#tar -cvf folder.tar file1.txt
//将多个文件打成一个包
#tar -cvf folder.tar file1.txt file2.txt
#tar –cvf file.tar *.jpg (常用方法)
//解包到当前目录
修改文件权限:
#chmod u+x 00.tar
#tar -xvf folder.tar (常用方法)
//解包到指定目录
#tar -xvf folder.tar -C /home/sss
//将多个文件打包并压缩
#tar -zcvf file.tar.gz folder1 floder2
//将文件解包并解压缩
#tar -zxvf file.tar.gz (常用方法)
tar -zcvf /data3/data0.tartar.gz /data0
tar -zxvf /data3/data0.tar.gz -C /data2
vi /etc/bashrc
在文件最后一行添加
alias cls=’clear’
保存退出后输入 #source /etc/bashrc 生效
chown -r hadoop:hadoop /data3/data0.tar.gz
# which reboot
# locate httpd.conf //查找文件按所在
# updatedb //更新数据库,使之生效
#find / -name httpd.conf
find 路径 条件
# find / -name httpd.conf
find 路径 条件 -exec cmd {} \;
# find / -name httpd.conf -exec ls -l {} \;
Linux 别名设置和取消(暂时性,终端或者是服务器关闭即失效):
查看命令别名:alias
设置命令别名:alias 别名=‘命令’
取消命令别名:unalias 别名
Linux 别名设置和取消(永久生效):
办法就是将别名的设置加入~/.bashrc文件,然后重新载入下文件就可以了。
$ vim ~/.bashrc
在文件最后面加入别名设置,如:alias rm=’rm -i’,保存后重新载入:
$ source ~/.bashrc
这样就可以永久保存命令的别名了。因为修改的是当前用户目录下的.bashrc文件,所以这样的方式只对当前用户有用。如果要对所有用户都有效,修改/etc目录下的bashrc文件就可以了。细看~/.bashrc文件,会发有这样一段代码:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
这个代码的意思就是加载.bash_aliases文件,centos已经帮我们考虑好了,所以也可以在用户根目录下新建一个文件.bash_aliases存放命令别名设置。
【注意:alias这个命令是shell的内建命令,可以根据自己的使用习惯设置一些别名,需要注意的就是和其他命令冲突的情况。】
# vim /etc/sysconfig/network
HOSTNAME=teacher.tarena.com
# hostname teacher.tarena.com //临时修改
# vim /etc/hosts //解析文件
10.0.0.10 www.baidu.com www
web tcp 80
telnet tcp 23
ssh tcp 22
ftp tcp 20/21
smtp tcp 25
pop3 tcp 110
imap tcp 143
dns tcp/udp 53
可以参考/etc/services
/etc/init.d/NetworkManager stop
# chkconfig NetworkManager off
# iptables -F
# chkconfig iptables off
# service iptables save
克隆后所需要进行的操作:
1.vim /etc/udev/rules.d/70-persistent-net.rules
//eth0删掉 eth1改成eth0
2.vi /etc/sysconfig/network-scripts/ifcfg-eth0 注意MAC地址和UUID
手工配置
DEVICE=eth0
TYPE=Ethernet
UUID=d06a4eee-dd5c-45e5-afbc-38a8a8440bd9
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:74:E7:3E
IPADDR=192.168.10.11
PREFIX=24
GATEWAY=192.168.10.254
DNS1=192.168.10.254
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
vi /etc/sysconfig/network
vi /etc/hosts
service network restart
给虚拟机打一个快照(相当于在某个时刻点给该虚拟机照一张照片),类似window恢复。
export JAVA_HOME=/home/bigdata/jdk/
export HADOOP_HOME=/home/bigdata/hadoop/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export PATH=$PATH:$JAVA_HOME/bin:/home/bigdata/protoc/bin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:
使之生效
#source /profile
telnet:明文 ssh:加密 ssh 默认端口22
# ssh [email protected]
# ssh -l root 192.168.10.11
# scp /tmp/love.txt [email protected]:/root/
# scp -P 30741 /tmp/love.txt [email protected]:/tmp/
# scp [email protected]:/root/love.txt /tmp/ //只发目录
# scp -P 30741 [email protected]:/tmp/love.txt /tmp //对指定端口发生文件
# scp -r /tmp/hadoop [email protected]:/tmp/ //目录下的所有文件
1.检查vmware上该虚拟机的网卡是否开启
2.检查vmware虚拟机的vm1网卡是否设置ip地址
3.关闭NetworkManager网络管理服务
4.关闭防火墙
5.更改ip地址
6.更改主机名称和主机映射
7.使用连接工具(xshell)进行连接
8.如果出现问题按照以上流程检查
SecureCRT,远程命令行工具
【SecureCRT此软件需要pj】
FileZilla FTP Client,远程FTP工具
everedit或者UE或者Notepad,远程文本编辑工具
【以上就是LINUX系统的内容,和 SecureCRT远程连接器 。需要自取!】