技术标签: hive 大数据开发平台搭建踩坑记录 spark hadoop CDH-6.3.2 大数据开发相关系统和框架的安装部署 大数据平台
注意:需要使用官网提供的jdk。
[root@cdh1 opt]# mkdir module
#在/home/gbs/下创建software目录
[root@cdh1 gbs]# mkdir software
[root@cdh1 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
[root@cdh1 software]# vim /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@cdh1 software]# source /etc/profile.d/my_env.sh
[root@cdh1 software]# java -version
java version "1.8.0_181"
注意:分发脚本在附录里面的分发脚本
集群ssh脚本在附录里面的编写集群ssh脚本
[root@cdh1 software]# xsync /usr/java/
[root@cdh1 software]# xsync /etc/profile.d/my_env.sh
#查看三台集群都是否安装成功
[root@cdh1 software]# sshall.sh java -version
执行sshall脚本结果如下
注意:一定要用root用户操作如下步骤;先卸载MySQL再安装。
(1)查看MySQL是否安装
[root@cdh1 bin]# rpm -qa | grep -i mysql
mysql-libs-5.1.73-7.el6.x86_64
(2)如果安装了MySQL,就先卸载
[root@cdh1 bin]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
(3)删除阿里云原有MySql依赖
[root@cdh1 bin]# yum remove mysql-libs
(4)下载MySql依赖并安装
[root@cdh1 bin]# yum install libaio
[root@cdh1 bin]# yum -y install autoconf
[root@cdh1 mysql-5.6.24]# pwd
/home/gbs/software/mysql-5.6.24
[root@cdh1 mysql-5.6.24]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm
[root@cdh1 mysql-5.6.24]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-shared-5.6.24-1.el6.x86_64.rpm
[root@cdh1 mysql-5.6.24]# rpm -ivh MySQL-shared-5.6.24-1.el6.x86_64.rpm
[root@cdh1 mysql-5.6.24]# rpm -ivh MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm
(5)上传mysql-libs.zip到cdh1的/home/gbs/software/mysql-5.6.24目录,并解压文件到当前目录
[root@cdh1 mysql-5.6.24]# yum install unzip
[root@cdh1 mysql-5.6.24]# unzip mysql-libs.zip
[root@cdh1 mysql-5.6.24]# ll
总用量 81776
drwxr-xr-x. 2 root root 136 6月 26 2015 mysql-libs
-rw-rw-r--. 1 gbs gbs 77807942 6月 14 16:09 mysql-libs.zip
-rw-rw-rw-. 1 root root 1953680 3月 26 2015 MySQL-shared-5.6.24-1.el6.x86_64.rpm
-rw-rw-rw-. 1 root root 3969728 3月 26 2015 MySQL-shared-compat-5.6.24-1.el6.x86_64.rpm
(6)进入到mysql-libs文件夹下
[root@cdh1 mysql-5.6.24]# cd mysql-libs
[root@cdh1 mysql-libs]# ll
总用量 76048
-rw-r--r--. 1 root root 18509960 3月 26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 3575135 12月 1 2013 mysql-connector-java-5.1.27.tar.gz
-rw-r--r--. 1 root root 55782196 3月 26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm
(1)安装MySQL服务端
[root@cdh1 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
(2)查看产生的随机密码
[root@cdh1 mysql-libs]# cat /root/.mysql_secret
t9On7OJEB7gpY2Ny
(3)查看MySQL状态
[root@cdh1 mysql-libs]# service mysql status
ERROR! MySQL is not running
(4)启动MySQL
[root@cdh1 mysql-libs]# service mysql start
Starting MySQL. SUCCESS!
[root@cdh1 mysql-libs]# service mysql status
SUCCESS! MySQL running (25869)
(1)安装MySQL客户端
[root@cdh1 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
(2)链接MySQL(密码替换成产生的随机密码)
[root@cdh1 mysql-libs]# mysql -u root -pt9On7OJEB7gpY2Ny
(3)修改密码
mysql> SET PASSWORD=PASSWORD('123456.');
(4)退出MySQL
mysql> exit;
配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。
(1)进入MySQL
[root@cdh1 mysql-libs]# mysql -u root -p123456.
(2)显示数据库
mysql>show databases;
(3)使用MySQL数据库
mysql>use mysql;
(4)展示MySQL数据库中的所有表
mysql>show tables;
(5)展示user表的结构
mysql>desc user;
(6)查询user表
mysql>select User, Host, Password from user;
(7)修改user表,把Host表内容修改为%
mysql>update user set host='%' where host='localhost';
(8)删除root用户的其他host
mysql> delete from user where host!='%';
(9)刷新
mysql>flush privileges;
(10)退出
mysql>quit;
1)在MySQL中创建各组件需要的数据库
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
# --mysql 8.0以上版本
SHOW VARIABLES LIKE 'validate_password%';
CREATE USER 'scm'@'%' IDENTIFIED BY 'scm.'; #创建用户
grant all privileges on scm.* to 'scm'@'%' ; #分配权限
FLUSH PRIVILEGES; #刷新权限
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
(1)将mysql-connector-java-5.1.27-bin.jar拷贝到**/usr/share/java路径下,并重命名**
[root@cdh1 mysql-libs]# tar -zxvf mysql-connector-java-5.1.27.tar.gz
[root@cdh1 mysql-libs]# cd mysql-connector-java-5.1.27
[root@cdh1 mysql-connector-java-5.1.27]# mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
[root@cdh1 mysql-connector-java-5.1.27]# mkdir /usr/share/java
[root@cdh1 mysql-connector-java-5.1.27]# cp mysql-connector-java.jar /usr/share/java/
[root@cdh1 mysql-connector-java-5.1.27]# xsync /usr/share/java/
集群规划见[cdh部署集群规划]
(2)创建cloudera-manager目录,存放cdh安装文件
[root@cdh1 gbs]# pwd
/home/gbs
[gbs@cdh1 ~]$ mkdir -p opt/cloudera-manager
[gbs@cdh1 mysql-connector-java-5.1.27]$ cd /home/gbs/software/
[gbs@cdh1 software]$ tar -zxvf cm6.3.1-redhat7.tar.gz
[gbs@cdh1 software]$ cd cm6.3.1/RPMS/x86_64/
[gbs@cdh1 x86_64]$ mv cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm /home/gbs/opt/cloudera-manager/
[gbs@cdh1 x86_64]$ mv cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm /home/gbs/opt/cloudera-manager/
[gbs@cdh1 x86_64]$ mv cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm /home/gbs/opt/cloudera-manager/
[gbs@cdh1 x86_64]$ cd /home/gbs/opt/cloudera-manager/
[gbs@cdh1 cloudera-manager]$ ll
总用量 1185872
-rw-r--r--. 1 gbs gbs 10483568 9月 25 2019 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 gbs gbs 1203832464 9月 25 2019 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r--. 1 gbs gbs 11488 9月 25 2019 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
(3)安装cloudera-manager-daemons,安装完毕后多出/opt/cloudera目录
[gbs@cdh1 opt]$ pwd
/opt
[gbs@cdh1 opt]$ ll
总用量 0
drwxr-xr-x. 3 cloudera-scm cloudera-scm 16 6月 14 17:03 cloudera
[gbs@cdh1 opt]$ pwd
/home/gbs/opt
[gbs@cdh1 opt]$ xsync cloudera-manager/
[root@cdh2 cloudera-manager]# pwd
/home/gbs/opt/cloudera-manager
[root@cdh2 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@cdh2 cloudera-manager]# cd /opt/
[root@cdh2 opt]# ll
总用量 0
drwxr-xr-x. 3 cloudera-scm cloudera-scm 16 6月 14 17:10 cloudera
[root@cdh3 /]# cd /home/gbs/opt/cloudera-manager/
[root@cdh3 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@cdh3 cloudera-manager]# cd /opt/
[root@cdh3 opt]# ll
总用量 0
drwxr-xr-x. 3 cloudera-scm cloudera-scm 16 6月 14 17:11 cloudera
(4)安装cloudera-manager-agent(cdh1-cdh3都要执行)
[root@cdh1 cloudera-manager]# yum install bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python libxslt
[root@cdh1 cloudera-manager]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
[root@cdh1 cloudera-manager]# cd /opt/
[root@cdh1 opt]# ll
总用量 0
drwxr-xr-x. 4 cloudera-scm cloudera-scm 32 6月 14 17:16 cloudera
drwxrwxr-x. 3 gbs gbs 26 6月 14 15:20 module
[root@cdh1 opt]# cd cloudera/
[root@cdh1 cloudera]# ll
总用量 12
drwxr-xr-x. 27 cloudera-scm cloudera-scm 8192 6月 14 17:05 cm
drwxr-xr-x. 8 root root 128 6月 14 17:16 cm-agent
(5)安装agent的server节点
[root@cdh1 cloudera-manager]# vim /etc/cloudera-scm-agent/config.ini
server_host=cdh1
[root@cdh2 cloudera-manager]# vim /etc/cloudera-scm-agent/config.ini
server_host=cdh1
[root@cdh3 cloudera-manager]# vim /etc/cloudera-scm-agent/config.ini
server_host=cdh1
(6)安装cloudera-manager-server
[root@cdh1 cloudera-manager]# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
(7)上传CDH包到parcel-repo
[root@cdh1 cloudera]# cd /home/gbs/software/
[root@cdh1 software]# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel* /opt/cloudera/parcel-repo/
[root@cdh1 software]# mv manifest.json /opt/cloudera/parcel-repo/
[root@cdh1 parcel-repo]# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
[root@cdh1 parcel-repo]# ll
(8)修改server的db.properties
[root@cdh1 parcel-repo]# vim /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdh1:3306
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=scm
com.cloudera.cmf.db.setupType=EXTERNAL
(9)启动server服务
[root@cdh1 parcel-repo]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
密码就是scm
[root@cdh1 parcel-repo]# systemctl start cloudera-scm-server
[root@cdh1 parcel-repo]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
这里的错误可以不管
(10)启动agent节点
[root@cdh1 cloudera-manager]# systemctl start cloudera-scm-agent
[root@cdh2 cloudera-manager]# systemctl start cloudera-scm-agent
[root@cdh3 cloudera-manager]# systemctl start cloudera-scm-agent
地址组成说明:
${你的 cloudera-manager-server 安装节点 }:7180
看到上图说明之前的安装成功了
默认登录账户/密码
admin/admin
#临时生效
[root@cdh1 gbs]# sysctl vm.swappiness=10 && cat /proc/sys/vm/swappiness
vm.swappiness = 10
10
[root@cdh2 gbs]# sysctl vm.swappiness=10 && cat /proc/sys/vm/swappiness
vm.swappiness = 10
10
[root@cdh3 gbs]# sysctl vm.swappiness=10 && cat /proc/sys/vm/swappiness
vm.swappiness = 10
10
#永久生效
[root@cdh1 gbs]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
[root@cdh2 gbs]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
[root@cdh3 gbs]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
[root@cdh1 gbs]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cdh1 gbs]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@cdh2 gbs]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cdh2 gbs]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@cdh3 gbs]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cdh3 gbs]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
两个问题的解决办法都可以设置临时解决,然后重新运行,就可以得到下图
我这里都设置成永久生效,所以需要重启集群
#关闭agent服务
[root@cdh1 gbs]# systemctl stop cloudera-scm-agent
[root@cdh2 gbs]# systemctl stop cloudera-scm-agent
[root@cdh3 gbs]# systemctl stop cloudera-scm-agent
#关闭server服务
[root@cdh1 gbs]# systemctl stop cloudera-scm-server
#重启
[root@cdh1 gbs]# reboot
[root@cdh2 gbs]# reboot
[root@cdh3 gbs]# reboot
重启后在开启CM集群服务
再次启动集群之前请确保所有节点机器上的nfs服务已经关闭,避免造成集群的NFS Gateway服务启动失败,关闭nfs服务命令如下:
service nfs-kernel-server stop
启动集群
#启动server服务
[root@cdh1 gbs]# systemctl start cloudera-scm-server
#启动agent服务
[root@cdh1 gbs]# systemctl start cloudera-scm-agent
[root@cdh2 gbs]# systemctl start cloudera-scm-agent
[root@cdh3 gbs]# systemctl start cloudera-scm-agent
重启之后遇到集群名已经存在的问题,请参考bug记录集群名已经存在的解决办法进行解决
如果在进行配置时遇到如下问题:
请将集群停止后在启动,不过在启动是一定要在server服务所在节点先运行如下命令
[root@cdh1 gbs]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
然后在正常启动即可。
然后把之前的步骤一样,在重新做一遍,到下图位置继续
这里按照之前的解决办法进行解决就可以了
这里就解决了
这里截图配置到后期会报警告,为此这里请dn和nm配置集群cdh[1-3],cdh部署集群规划也已经更新,请参考最新的[cdh部署集群规划](https://www.yuque.com/g/liuqingsong-pekab/tm595f/hhxi36v2fn2iu0ra/collaborator/join?token=KVLMip7BeVp6MEzf# 《cdh部署集群规划》)文档进行配置。
全部选默认即可
下图是后期增加的,因为/dfs路径下挂载的存储不够,所以从新安装选择了/home目录下
这个警告不用管他,因为之前启动hdfs就已经格式化过了
可以选择在线安装和离线包安装,在线安装下载时间较长,离线包安装时间较短。这里我们为了节省时间,选择离线安装。
[root@cdh1 tmp]# /opt/cloudera/parcels/CDH/bin/kafka-topics --zookeeper cdh2:2181 --list
进入到/opt/cloudera/parcels/KAFKA目录下分别创建:启动日志主题、事件日志主题。
1)创建topic test
[root@cdh1 tmp]# /opt/cloudera/parcels/CDH/bin/kafka-topics --bootstrap-server chd1:9092,cdh2:9092,cdh3:9092 --create --replication-factor 1 --partitions 1 --topic test
[root@cdh1 tmp]# /opt/cloudera/parcels/CDH/bin/kafka-topics --delete --bootstrap-server chd1:9092,cdh2:9092,cdh3:9092 --topic test
4.6 测试通过后继续
CDH6.x自带spark2.4无需升级
全部选择默认即可
修改yarn.scheduler.maximum-allocation-vcores参数调整4核。
因为节点的总核心才6核
将每个任务容器默认大小从1G调大至8G,当前集群环境下每个节点的物理内存为20G,设置每个yarn可用每个节点内存为8G。
这里只给8g是因为节点1使用的内存较多,请根据实际情况给
修改yarn.scheduler.maximum-allocation-mb每个任务容器内存所需大小。
修改yarn.nodemanager.resource.memory-mb每个节点内存所需大小。
关闭spark.dynamicAllocation.enabled参数否则分配的资源不受控制。
修改副本数为1。
Hive动态分区非严格模式,默认是严格模式,严格模式下,动态分区至少要有一个静态分区字段。
hive.exec.dynamic.partition.mode = nonstrict
为了解决hue在执行调度任务时找不到环境变量。
,PATH= P A T H : PATH: PATH:JAVA_HOME/bin
hive.vectorized.execution.enabled
向量化执行是hive优化的一种方式,但是他必须要求执行引擎是Tez,文件格式是orc,一次批量执行1024行而非一行来提高扫描、聚合、过滤器和连接等操作的性能。
yarn.scheduler.capacity.maximum-am-resource-percent =0.6,设置有多少资源可以用来运行app master,即控制当前激活状态的应用,默认是10%。
由于前面创建集群时,已经创建他了,所以这会报错存在
去他的元数据库,将其删除,
解决办法
把这几个表里面的数据都删除,但是有的表会出现以下错误
直接清空表就可以了,因为之前的集群并没有设置成功,这里清空后重新俩
truncate table CLUSTERS;
注意:几个cluster开头的表,记得都要删除
在/home/gbs下创建bin目录
[root@cdh1 gbs]# mkdir bin
在bin目录下创建集群分发脚本
[root@cdh1 bin]# vim xsync
写入以下内容
#!/bin/bash
#1. 判断参数个数 if [ $# -lt 1 ] then
echo Not Enough Arguement!
exit; fi
#2. 遍历集群所有机器 for host in cdh1 cdh2 cdh3 do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done done
赋予脚本执行权限:
[root@cdh1 bin]# chmod +x xsync
[root@cdh1 bin]# vim sshall
写入以下内容
#! /bin/bash
for i in cdh1 cdh2 cdh3 do
echo --------- $i ----------
ssh $i "$*" done
赋予脚本执行权限:
[root@cdh1 bin]# chmod +x sshall
[root@cdh1 bin]# vim jpsall
写入以下内容
#!/bin/bash
for host in cdh1 cdh2 cdh3 do
echo =============== $host ===============
ssh $host jps $1 | grep -v Jps done
赋予脚本执行权限:
[root@cdh1 bin]# chmod +x jpsall
SELECT count(*) from ods_customer_full;--15000000
SELECT count(*) from ods_lineitem_full;--600037902
SELECT count(*) from ods_nation_full;--5
SELECT count(*) from ods_orders_full;--150000000
SELECT count(*) from ods_part_full;--20000000
SELECT count(*) from ods_partsupp_full;--80000000
SELECT count(*) from ods_region_full;--5
SELECT count(*) from ods_supplier_full;--1000000
性能测试相关文档见hive on Spark性能测试。
文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态
文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境
文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn
文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker
文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机
文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk
文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入
文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。 Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。
文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动
文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计
文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;gt;Jni-&amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图
文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法