Hadoop1.X伪分布安装
2016-07-12 09:36
405 查看
Hadoop安装有如下三种方式
l单机模式:安装简单,几乎不用作任何配置,但仅限于调试用途;
l伪分布模式:在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、Secondary Namenode等5个进程,模拟分布式运行的各个节点;
l完全分布式模式:正常的Hadoop集群,由多个各司其职的节点构成
由于实验环境的限制,本节课程将讲解伪分布模式安装,并在随后的课程中以该环境为基础进行其他组件部署实验。以下为伪分布式环境下在CentOS6中配置Hadoop-1.1.2,该配置可以作为其他Linux系统和其他版本的Hadoop部署参考。
1软硬件环境说明
所有节点均是CentOS系统,防火墙和SElinux禁用,所有节点上均创建了一个shiyanlou用户,并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。
Hadoop搭建环境:
l 虚拟机操作系统: CentOS6.6 64位,单核,1G内存
l JDK:1.7.0_55 64位
l Hadoop:1.1.2
2环境搭建(实验楼虚拟机已设置,以下提供参考)
实验环境的虚拟机已经完成的安装环境的配置,其他环境部署时可以参考该章节进行环境搭建。
2.1配置本地环境
该部分对服务器的配置需要在服务器本地进行配置,配置完毕后需要重启服务器确认配置是否生效,特别是远程访问服务器需要设置固定IP地址。
2.1.1设置IP地址
1. 点击System-->Preferences-->Network Connections,如下图所示:
![](http://www.cuug.com.cn/uploadfile/2016-06/12299857417.jpg)
2. 修改或重建网络连接,设置该连接为手工方式,设置如下网络信息:
IP地址: 192.168.42.11
子网掩码: 255.255.255.0
网关: 192.168.42.1
DNS: 221.12.1.227 (需要根据所在地设置DNS服务器)
Domain: 221.12.33.227
注意:网关、DNS等根据所在网络实际情况进行设置,并设置连接方式为"Available to all users",否则通过远程连接时会在服务器重启后无法连接服务器
![](http://www.cuug.com.cn/uploadfile/2016-06/12299858642.jpg)
3.在命令行中,使用ifconfig命令查看设置IP地址信息,如果修改IP不生效,需要重启机器再进行设置(如果该机器在设置后需要通过远程访问,建议重启机器,确认机器IP是否生效)
2.1.2设置机器名
使用sudo vi /etc/sysconfig/network 打开配置文件,根据实际情况设置该服务器的机器名,新机器名在重启后生效
![](http://www.cuug.com.cn/uploadfile/2016-06/12299859671.jpg)
2.1.3设置Host映射文件
1. 设置IP地址与机器名的映射,设置信息如下:
sudo vi /etc/hosts
l 192.168.42.8 b393a04554e1 hadoop
![](http://www.cuug.com.cn/uploadfile/2016-06/12299860652.jpg)
2.使用如下命令对网络设置进行重启
sudo /etc/init.d/network restart
3.使用ping命令验证设置是否成功
2.2设置操作系统环境
2.2.1关闭防火墙
在Hadoop安装过程中需要关闭防火墙和SElinux,否则会出现异常
1.使用sudo service iptables status 查看防火墙状态,如下所示表示iptables已经开启
![](http://www.cuug.com.cn/uploadfile/2016-06/12299861544.jpg)
2.以root用户使用如下命令关闭iptables
chkconfig iptables off
![](http://www.cuug.com.cn/uploadfile/2016-06/12299862433.jpg)
2.2.2关闭SElinux
1.使用sudo getenforce命令查看是否关闭,如果显示Enforcing表示没有关闭
2. 修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器
![](http://www.cuug.com.cn/uploadfile/2016-06/12299863213.jpg)
2.2.3JDK安装及配置
1.下载JDK1.7 64bit安装包
打开JDK1.7 64bit安装包下载链接为
11c7e
:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
打开界面之后,先选中 Accept License Agreement ,然后下载 jdk-7u55-linux-x64.tar.gz,如下图所示:
![](http://www.cuug.com.cn/uploadfile/2016-06/12299864120.jpg)
2.创建/app目录,把该目录的所有者修改为shiyanlou
sudo mkdir /app
sudo chown -R shiyanlou:shiyanlou /app
![](http://www.cuug.com.cn/uploadfile/2016-06/12299865086.jpg)
3. 创建/app/lib目录,使用命令如下:
mkdir /app/lib
![](http://www.cuug.com.cn/uploadfile/2016-06/12299865790.jpg)
4.把下载的安装包解压并迁移到/app/lib目录下
cd /home/shiyanlou/install-pack
tar -zxf jdk-7u55-linux-x64.tar.gz
mv jdk1.7.0_55/ /app/lib
ll /app/lib
![](http://www.cuug.com.cn/uploadfile/2016-06/12299866657.jpg)
5.使用sudo vi /etc/profile命令打开配置文件,设置JDK路径
export JAVA_HOME=/app/lib/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
![](http://www.cuug.com.cn/uploadfile/2016-06/12299867672.jpg)
6.编译并验证
source /etc/profile
java -version
![](http://www.cuug.com.cn/uploadfile/2016-06/12299868585.jpg)
2.2.4更新OpenSSL
CentOS自带的OpenSSL存在bug,如果不更新OpenSSL在Ambari部署过程会出现无法通过SSH连接节点,使用如下命令进行更新:
yum update openssl
![](http://www.cuug.com.cn/uploadfile/2016-06/12299869562.jpg)
![](http://www.cuug.com.cn/uploadfile/2016-06/12299870506.jpg)
2.2.5SSH无密码验证配置
1.使用sudo vi /etc/ssh/sshd_config打开sshd_config配置文件,开放三个配置,如下图所示:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
![](http://www.cuug.com.cn/uploadfile/2016-06/12299871460.jpg)
2.配置后重启服务
sudo service sshd restart
![](http://www.cuug.com.cn/uploadfile/2016-06/12299872205.jpg)
3.使用shiyanlou用户登录使用如下命令生成私钥和公钥;
ssh-keygen -t rsa
![](http://www.cuug.com.cn/uploadfile/2016-06/12299873079.jpg)
4.进入/home/shiyanlou/.ssh目录把公钥命名为authorized_keys,使用命令如下:
cp id_rsa.pub authorized_keys
![](http://www.cuug.com.cn/uploadfile/2016-06/12299873866.jpg)
5.使用如下设置authorized_keys读写权限
chmod 400 authorized_keys
![](http://www.cuug.com.cn/uploadfile/2016-06/12299874686.jpg)
6.测试ssh免密码登录是否生效
2.3 Hadoop变量配置
3.1解压并移动hadoop安装包
在Apache的归档目录中下载hadoop-1.1.2-bin.tar.gz安装包,也可以在/home/shiyanlou/install-pack目录中找到该安装包,解压该安装包并把该安装包复制到/app目录中
cd /home/shiyanlou/install-pack
tar -xzf hadoop-1.1.2-bin.tar.gz
mv hadoop-1.1.2 /app
![](http://www.cuug.com.cn/uploadfile/2016-06/12299875516.jpg)
3.2在hadoop-1.1.2目录下创建子目录
cd /app/hadoop-1.1.2
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
ls
![](http://www.cuug.com.cn/uploadfile/2016-06/12299876471.jpg)
把hdfs/data设置为755,否则DataNode会启动失败
![](http://www.cuug.com.cn/uploadfile/2016-06/12299877369.jpg)
3.3配置hadoop-env.sh
1.进入hadoop-1.1.2/conf目录,打开配置文件hadoop-env.sh
cd /app/hadoop-1.1.2/conf
vi hadoop-env.sh
![](http://www.cuug.com.cn/uploadfile/2016-06/12299878273.jpg)
2.加入配置内容,设置了hadoop中jdk和hadoop/bin路径
export JAVA_HOME=/app/lib/jdk1.7.0_55
export PATH=$PATH:/app/hadoop-1.1.2/bin
![](http://www.cuug.com.cn/uploadfile/2016-06/12299879023.jpg)
3.编译配置文件hadoop-env.sh并确认生效
source hadoop-env.sh
hadoop version
![](http://www.cuug.com.cn/uploadfile/2016-06/12299879789.jpg)
3.4配置core-site.xml
1.使用如下命令打开core-site.xml配置文件
cd /app/hadoop-1.1.2/conf
sudo vi core-site.xml
2.在配置文件中,按照如下内容进行配置
fs.default.name
hdfs://hadoop:9000
hadoop.tmp.dir
/app/hadoop-1.1.2/tmp
![](http://www.cuug.com.cn/uploadfile/2016-06/12299880602.jpg)
3.5配置hdfs-site.xml
1.使用如下命令打开hdfs-site.xml配置文件
cd /app/hadoop-1.1.2/conf
sudo vi hdfs-site.xml
2.在配置文件中,按照如下内容进行配置
dfs.replication
1
dfs.name.dir
/app/hadoop-1.1.2/hdfs/name
dfs.data.dir
/app/hadoop-1.1.2/hdfs/data
![](http://www.cuug.com.cn/uploadfile/2016-06/12299881497.jpg)
3.6配置mapred-site.xml
1.使用如下命令打开mapred-site.xml配置文件
cd /app/hadoop-1.1.2/conf
sudo vi mapred-site.xml
2.在配置文件中,按照如下内容进行配置
mapred.job.tracker
hadoop:9001
![](http://www.cuug.com.cn/uploadfile/2016-06/12299882211.jpg)
3.7配置masters和slaves文件
1.设子主节点
cd /app/hadoop-1.1.2/conf
vi masters
设置hadoop机器为master节点
![](http://www.cuug.com.cn/uploadfile/2016-06/12299883159.jpg)
2.设置从节点
cd /app/hadoop-1.1.2/conf
vi slaves
设置hadoop机器为slaves节点,即本身即是master也是slaves节点
![](http://www.cuug.com.cn/uploadfile/2016-06/12299884308.jpg)
3.8格式化namenode
在hadoop机器上使用如下命令进行格式化namenode
cd /app/hadoop-1.1.2/bin
./hadoop namenode -format
![](http://www.cuug.com.cn/uploadfile/2016-06/12299885354.jpg)
3.9启动hadoop
cd /app/hadoop-1.1.2/bin
./start-all.sh
![](http://www.cuug.com.cn/uploadfile/2016-06/12299886588.jpg)
3.10 用jps检验各后台进程是否成功启动
使用jps命令查看hadoop相关进程是否启动
![](http://www.cuug.com.cn/uploadfile/2016-06/12299887488.jpg)
这时我们发现少了一个DataNode进程,到$HADOOP_HOME/logs目下,使用cat hadoop-shiyanlou-datanode-5****.log(***表示所在机器名)查看日志文件,可以看到在日志中提示:Invalid directory in dfs.data.dir:Incorrect permission for /app/hadoop-1.1.2/hdfs/data, expected:rwxr-xr-x, while actual: rwxrwxr-x
![](http://www.cuug.com.cn/uploadfile/2016-06/12299888593.jpg)
sudo chmod 755 /app/hadoop-1.1.2/hdfs/data
重新启动hadoop集群,可以看到DataNode进程
转自cuug:http://www.cuug.com.cn/hadoop/kecheng/12299890096.html
l单机模式:安装简单,几乎不用作任何配置,但仅限于调试用途;
l伪分布模式:在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、Secondary Namenode等5个进程,模拟分布式运行的各个节点;
l完全分布式模式:正常的Hadoop集群,由多个各司其职的节点构成
由于实验环境的限制,本节课程将讲解伪分布模式安装,并在随后的课程中以该环境为基础进行其他组件部署实验。以下为伪分布式环境下在CentOS6中配置Hadoop-1.1.2,该配置可以作为其他Linux系统和其他版本的Hadoop部署参考。
1软硬件环境说明
所有节点均是CentOS系统,防火墙和SElinux禁用,所有节点上均创建了一个shiyanlou用户,并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。
Hadoop搭建环境:
l 虚拟机操作系统: CentOS6.6 64位,单核,1G内存
l JDK:1.7.0_55 64位
l Hadoop:1.1.2
2环境搭建(实验楼虚拟机已设置,以下提供参考)
实验环境的虚拟机已经完成的安装环境的配置,其他环境部署时可以参考该章节进行环境搭建。
2.1配置本地环境
该部分对服务器的配置需要在服务器本地进行配置,配置完毕后需要重启服务器确认配置是否生效,特别是远程访问服务器需要设置固定IP地址。
2.1.1设置IP地址
1. 点击System-->Preferences-->Network Connections,如下图所示:
![](http://www.cuug.com.cn/uploadfile/2016-06/12299857417.jpg)
2. 修改或重建网络连接,设置该连接为手工方式,设置如下网络信息:
IP地址: 192.168.42.11
子网掩码: 255.255.255.0
网关: 192.168.42.1
DNS: 221.12.1.227 (需要根据所在地设置DNS服务器)
Domain: 221.12.33.227
注意:网关、DNS等根据所在网络实际情况进行设置,并设置连接方式为"Available to all users",否则通过远程连接时会在服务器重启后无法连接服务器
![](http://www.cuug.com.cn/uploadfile/2016-06/12299858642.jpg)
3.在命令行中,使用ifconfig命令查看设置IP地址信息,如果修改IP不生效,需要重启机器再进行设置(如果该机器在设置后需要通过远程访问,建议重启机器,确认机器IP是否生效)
2.1.2设置机器名
使用sudo vi /etc/sysconfig/network 打开配置文件,根据实际情况设置该服务器的机器名,新机器名在重启后生效
![](http://www.cuug.com.cn/uploadfile/2016-06/12299859671.jpg)
2.1.3设置Host映射文件
1. 设置IP地址与机器名的映射,设置信息如下:
sudo vi /etc/hosts
l 192.168.42.8 b393a04554e1 hadoop
![](http://www.cuug.com.cn/uploadfile/2016-06/12299860652.jpg)
2.使用如下命令对网络设置进行重启
sudo /etc/init.d/network restart
3.使用ping命令验证设置是否成功
2.2设置操作系统环境
2.2.1关闭防火墙
在Hadoop安装过程中需要关闭防火墙和SElinux,否则会出现异常
1.使用sudo service iptables status 查看防火墙状态,如下所示表示iptables已经开启
![](http://www.cuug.com.cn/uploadfile/2016-06/12299861544.jpg)
2.以root用户使用如下命令关闭iptables
chkconfig iptables off
![](http://www.cuug.com.cn/uploadfile/2016-06/12299862433.jpg)
2.2.2关闭SElinux
1.使用sudo getenforce命令查看是否关闭,如果显示Enforcing表示没有关闭
2. 修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器
![](http://www.cuug.com.cn/uploadfile/2016-06/12299863213.jpg)
2.2.3JDK安装及配置
1.下载JDK1.7 64bit安装包
打开JDK1.7 64bit安装包下载链接为
11c7e
:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
打开界面之后,先选中 Accept License Agreement ,然后下载 jdk-7u55-linux-x64.tar.gz,如下图所示:
![](http://www.cuug.com.cn/uploadfile/2016-06/12299864120.jpg)
2.创建/app目录,把该目录的所有者修改为shiyanlou
sudo mkdir /app
sudo chown -R shiyanlou:shiyanlou /app
![](http://www.cuug.com.cn/uploadfile/2016-06/12299865086.jpg)
3. 创建/app/lib目录,使用命令如下:
mkdir /app/lib
![](http://www.cuug.com.cn/uploadfile/2016-06/12299865790.jpg)
4.把下载的安装包解压并迁移到/app/lib目录下
cd /home/shiyanlou/install-pack
tar -zxf jdk-7u55-linux-x64.tar.gz
mv jdk1.7.0_55/ /app/lib
ll /app/lib
![](http://www.cuug.com.cn/uploadfile/2016-06/12299866657.jpg)
5.使用sudo vi /etc/profile命令打开配置文件,设置JDK路径
export JAVA_HOME=/app/lib/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
![](http://www.cuug.com.cn/uploadfile/2016-06/12299867672.jpg)
6.编译并验证
source /etc/profile
java -version
![](http://www.cuug.com.cn/uploadfile/2016-06/12299868585.jpg)
2.2.4更新OpenSSL
CentOS自带的OpenSSL存在bug,如果不更新OpenSSL在Ambari部署过程会出现无法通过SSH连接节点,使用如下命令进行更新:
yum update openssl
![](http://www.cuug.com.cn/uploadfile/2016-06/12299869562.jpg)
![](http://www.cuug.com.cn/uploadfile/2016-06/12299870506.jpg)
2.2.5SSH无密码验证配置
1.使用sudo vi /etc/ssh/sshd_config打开sshd_config配置文件,开放三个配置,如下图所示:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
![](http://www.cuug.com.cn/uploadfile/2016-06/12299871460.jpg)
2.配置后重启服务
sudo service sshd restart
![](http://www.cuug.com.cn/uploadfile/2016-06/12299872205.jpg)
3.使用shiyanlou用户登录使用如下命令生成私钥和公钥;
ssh-keygen -t rsa
![](http://www.cuug.com.cn/uploadfile/2016-06/12299873079.jpg)
4.进入/home/shiyanlou/.ssh目录把公钥命名为authorized_keys,使用命令如下:
cp id_rsa.pub authorized_keys
![](http://www.cuug.com.cn/uploadfile/2016-06/12299873866.jpg)
5.使用如下设置authorized_keys读写权限
chmod 400 authorized_keys
![](http://www.cuug.com.cn/uploadfile/2016-06/12299874686.jpg)
6.测试ssh免密码登录是否生效
2.3 Hadoop变量配置
3.1解压并移动hadoop安装包
在Apache的归档目录中下载hadoop-1.1.2-bin.tar.gz安装包,也可以在/home/shiyanlou/install-pack目录中找到该安装包,解压该安装包并把该安装包复制到/app目录中
cd /home/shiyanlou/install-pack
tar -xzf hadoop-1.1.2-bin.tar.gz
mv hadoop-1.1.2 /app
![](http://www.cuug.com.cn/uploadfile/2016-06/12299875516.jpg)
3.2在hadoop-1.1.2目录下创建子目录
cd /app/hadoop-1.1.2
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
ls
![](http://www.cuug.com.cn/uploadfile/2016-06/12299876471.jpg)
把hdfs/data设置为755,否则DataNode会启动失败
![](http://www.cuug.com.cn/uploadfile/2016-06/12299877369.jpg)
3.3配置hadoop-env.sh
1.进入hadoop-1.1.2/conf目录,打开配置文件hadoop-env.sh
cd /app/hadoop-1.1.2/conf
vi hadoop-env.sh
![](http://www.cuug.com.cn/uploadfile/2016-06/12299878273.jpg)
2.加入配置内容,设置了hadoop中jdk和hadoop/bin路径
export JAVA_HOME=/app/lib/jdk1.7.0_55
export PATH=$PATH:/app/hadoop-1.1.2/bin
![](http://www.cuug.com.cn/uploadfile/2016-06/12299879023.jpg)
3.编译配置文件hadoop-env.sh并确认生效
source hadoop-env.sh
hadoop version
![](http://www.cuug.com.cn/uploadfile/2016-06/12299879789.jpg)
3.4配置core-site.xml
1.使用如下命令打开core-site.xml配置文件
cd /app/hadoop-1.1.2/conf
sudo vi core-site.xml
2.在配置文件中,按照如下内容进行配置
fs.default.name
hdfs://hadoop:9000
hadoop.tmp.dir
/app/hadoop-1.1.2/tmp
![](http://www.cuug.com.cn/uploadfile/2016-06/12299880602.jpg)
3.5配置hdfs-site.xml
1.使用如下命令打开hdfs-site.xml配置文件
cd /app/hadoop-1.1.2/conf
sudo vi hdfs-site.xml
2.在配置文件中,按照如下内容进行配置
dfs.replication
1
dfs.name.dir
/app/hadoop-1.1.2/hdfs/name
dfs.data.dir
/app/hadoop-1.1.2/hdfs/data
![](http://www.cuug.com.cn/uploadfile/2016-06/12299881497.jpg)
3.6配置mapred-site.xml
1.使用如下命令打开mapred-site.xml配置文件
cd /app/hadoop-1.1.2/conf
sudo vi mapred-site.xml
2.在配置文件中,按照如下内容进行配置
mapred.job.tracker
hadoop:9001
![](http://www.cuug.com.cn/uploadfile/2016-06/12299882211.jpg)
3.7配置masters和slaves文件
1.设子主节点
cd /app/hadoop-1.1.2/conf
vi masters
设置hadoop机器为master节点
![](http://www.cuug.com.cn/uploadfile/2016-06/12299883159.jpg)
2.设置从节点
cd /app/hadoop-1.1.2/conf
vi slaves
设置hadoop机器为slaves节点,即本身即是master也是slaves节点
![](http://www.cuug.com.cn/uploadfile/2016-06/12299884308.jpg)
3.8格式化namenode
在hadoop机器上使用如下命令进行格式化namenode
cd /app/hadoop-1.1.2/bin
./hadoop namenode -format
![](http://www.cuug.com.cn/uploadfile/2016-06/12299885354.jpg)
3.9启动hadoop
cd /app/hadoop-1.1.2/bin
./start-all.sh
![](http://www.cuug.com.cn/uploadfile/2016-06/12299886588.jpg)
3.10 用jps检验各后台进程是否成功启动
使用jps命令查看hadoop相关进程是否启动
![](http://www.cuug.com.cn/uploadfile/2016-06/12299887488.jpg)
这时我们发现少了一个DataNode进程,到$HADOOP_HOME/logs目下,使用cat hadoop-shiyanlou-datanode-5****.log(***表示所在机器名)查看日志文件,可以看到在日志中提示:Invalid directory in dfs.data.dir:Incorrect permission for /app/hadoop-1.1.2/hdfs/data, expected:rwxr-xr-x, while actual: rwxrwxr-x
![](http://www.cuug.com.cn/uploadfile/2016-06/12299888593.jpg)
sudo chmod 755 /app/hadoop-1.1.2/hdfs/data
重新启动hadoop集群,可以看到DataNode进程
转自cuug:http://www.cuug.com.cn/hadoop/kecheng/12299890096.html
相关文章推荐
- tomcat 由于文件名冲突或者工程冲突报错的时候
- Hadoop简单介绍
- CentOS 7 安装出现 /dev/root does not exits 导致无法安装的问题
- PowerShell学习资料
- 习题2 注释和#号
- linux环境下使用V4L2及Qt设计简易照相机
- linux之工程管理器Make
- 【OpenCV】颜色识别实例(瓶盖)
- 【Hadoop】搭建完全分布式的hadoop
- Linux安装Skype
- linux下压缩与解压缩
- ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- Centos 6.7 图文讲解救援模式修复fstab过程
- 反向代理
- rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
- Linux下的五种IO模型
- shell脚本生成指定字符的随机串
- linux C之access函数
- opencv-利用PLSA算法自动从谷歌图片搜索学习颜色名称(ColorNaming)