hadoop之ranger权限配置(二)

news2024/11/15 2:02:48

文章目录

    • 一、编译ranger(node12)
    • 二、安装前环境准备(node12)
    • 三、安装RangerAdmin(node12)(root)
    • 五、Ranger Hive-plugin(node10)
    • 六、Ranger Hdfs-plugin(node10、11)
    • 七、Ranger Hbase-plugin(所有)
    • 八、Ranger Yarn-plugin(node10、11)

一、编译ranger(node12)

  1. 需要编译的包,我都已经在我上传的资源包https://download.csdn.net/download/weixin_40496191/87358396

  2. 安装依赖软件:yum -y install wget git gcc gcc-c++ make autoconf automake libtool sharutils asciidoc xmlto cmake unzip zip

  3. 安装jdk1.8

  4. 安装maven

    1)创建文件夹并且进入:mkdir /home/hadoop/maven -->cd /home/hadoop/maven

    2)下载:wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

    3)解压:tar -zxvf apache-maven-3.3.9-bin.tar.gz

    4)配置环境变量:vi /etc/profile

    export MAVEN_HOME=/home/hadoop/maven/apache-maven-3.3.9
    export PATH=${PATH}:${MAVEN_HOME}/bin:/usr/local/python3/bin
    

    5)刷新环境变量:source /etc/profile

    6)测试:mvn -version

    7)设置仓库:vi /home/hadoop/maven/apache-maven-3.3.9/conf/settings.xml

  5. 安装python(root用户)

    1)环境设置:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
    2)创建文件夹并且进入:mkdir /home/hadoop/python–>cd /home/hadoop/python

    3)下载:wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

    4)解压:tar -xvf Python-3.7.1.tgz

    5)创建目录: mkdir -p /usr/local/python3

    6)进入目录:cd /home/hadoop/python/Python-3.7.1

    7)安装:./configure --prefix=/usr/local/python3

    8)编译:make

    9)编译成功后,编译安装:make install

    10)检查python3.7的编译器:/usr/local/python3/bin/python3.7

    11)建立Python3和pip3的软链:ln -s /usr/local/python3/bin/python3 /usr/bin/python3、ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

    12)配置环境变量:vi /etc/profile

    export PATH=$PATH:$HOME/bin:/usr/local/python3/bin
    

    13)刷新环境变量(root用户和hadoop用户):source /etc/profile

    14) python3测试
    在这里插入图片描述

  6. 上传包至/home/hadoop/ranger

  7. 解压:tar -xvf apache-ranger-2.2.0.tar.gz

  8. 编译:mvn clean install -DskipTests -Denforcer.skip=true

  9. 在target底下找到ranger-2.2.0-admin.tar.gz包,即为服务安装包。包括其他需要使用的插件包也在此目录底下!

  10. 供参考

    JDK8 用于运行RangerAdminRangerKMS
    Python2.7 用于Ranger自动化安装
    Git 用于Ranger编译
    Maven3.6 用于Ranger编译
    RDMS 用于存储授权策略,存储Ranger用户/组,存储审核日志
    Solr(可选) 存储日志
    Kerberos(可选) 确保所有请求都被认证
    

二、安装前环境准备(node12)

  1. 上传相关包到/home/hadoop/rpm
  2. 安装:rpm -Uvh --force --nodeps *.rpm
  3. 安装python(见第一步)
  4. 安装mysql,需要安装在跟ranger同一台服务器。可以使用之前hadoop集群安装的mysql

三、安装RangerAdmin(node12)(root)

  1. 新建文件夹:mkdir /opt/Solr

  2. 进入:cd /opt/Solr

  3. 上传solr-8.3.0.tgz包

  4. 解压:tar -xvf solr-8.3.0.tgz

  5. 新建文件夹:mkdir /opt/RangerAdmin

  6. 进入:cd /opt/RangerAdmin

  7. 上传ranger-2.2.0-admin.tar.gz包

  8. 解压:tar -xvf ranger-2.2.0-admin.tar.gz

  9. 创建数据库和用户

mysql -uroot -pffcsict123
CREATE DATABASE ranger DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
grant all privileges on ranger.* to ranger@‘%’ identified by ‘ffcsict123’;
set GLOBAL max_connections=1000;


​	报错:Your password does not satisfy the current policy requirements

​	解决:密码过于简单,可以设置复杂点,也可以降低密码复杂度:set global validate_password_policy=LOW; 

11. 修改配置文件:vi /opt/RangerAdmin/ranger-2.2.0-admin/contrib/solr_for_audit_setup/install.properties

 ```java
 #配置JAVA路径
 JAVA_HOME=/opt/jdk/jdk1.8.0_291
 
 #审计日志保存的最大天数,默认为90天
 MAX_AUDIT_RETENTION_DAYS=90
 
 #联网下载,默认为false
 SOLR_INSTALL=false
 
 solr安装目录
 SOLR_INSTALL_FOLDER=/opt/Solr/solr-8.3.0
 
 solr对接ranger的服务
 SOLR_RANGER_HOME=/opt/Solr/solr-8.3.0/ranger_audit_server
 
 solr连接ranger的端口
 SOLR_RANGER_PORT=6083
 
 solr部署模式
 SOLR_DEPLOYMENT=standalone
 
 solr数据存储目录
 SOLR_RANGER_DATA_FOLDER=/opt/Solr/solr-8.3.0/ranger_audit_server/data
 
 solr单机部署,故为空
 SOLR_ZK=
 ```

12. 上传驱动包到/opt/RangerAdmin/ranger-2.2.0-admin:mysql-connector-java-5.1.31.jar

13. vi /opt/RangerAdmin/ranger-2.2.0-admin/install.properties

 ```java
 #mysql驱动
 SQL_CONNECTOR_JAR=/opt/RangerAdmin/ranger-2.2.0-admin/mysql-connector-java-5.1.35.jar
 
 #mysql的主机名和root用户的用户名密码
 db_root_user=root
 db_root_password=ffcsict123
 db_host=localhost
 
 #ranger需要的数据库名和用户信息,需要和之前创建的信息要一一对应
 db_name=ranger
 db_user=ranger
 db_password=ffcsict123
 
 #其他ranger admin需要的用户密码(最少8个字符)
 rangerAdmin_password=ffcsict123
 rangerTagsync_password=ffcsict123
 rangerUsersync_password=ffcsict123
 keyadmin_password=ffcsict123
 
 #ranger存储审计日志的路径和url,默认为solr
 audit_store=solr
 audit_solr_urls=http://node12:6083/solr/ranger_audits
 
 #策略管理器的url,rangeradmin安装在哪台机器,主机名就为对应的主机名
 policymgr_external_url=http://node12:6080
 
 #启动ranger admin进程的linux用户信息
 unix_user=hadoop
 unix_user_pwd=ffcsict123
 unix_group=hadoop
 
 #hadoop的配置文件目录
 hadoop_conf=/home/hadoop/module/hadoop-3.2.2/etc/hadoop
 ```

14. 初始化solr安装脚本(root用户):

 ```java
 cd /opt/RangerAdmin/ranger-2.2.0-admin/contrib/solr_for_audit_setup/
 ./setup.sh
 ```

15. 启动单机版solr:/opt/Solr/solr-8.3.0/ranger_audit_server/scripts/start_solr.sh

16. 登陆网页查看是否启动成功:http://192.168.248.12:6083/solr/#/

17. 日志查看:cat /opt/Solr/solr-8.3.0/ranger_audit_server/install_notes.txt

18. 初始化ranger-admin脚本(需要使用root用户)

 ps1:需要保证当前节点有mysql驱动包

 ps2:需要python3环境

 ```java
 cd /opt/RangerAdmin/ranger-2.2.0-admin
 ./setup.sh
 ```

19. 修改conf目录配置文件:vi /opt/RangerAdmin/ranger-2.2.0-admin/ews/webapp/WEB-INF/classes/conf/ranger-admin-site.xml

 ```jvava
 <property>
         <name>ranger.jpa.jdbc.password</name>
         <value>ffcsict123</value>
         <description />
 </property>
 <property>
         <name>ranger.service.host</name>
         <value>node12</value>
 </property>
 ```

20. 启动ranger-admin:ranger-admin start

21. 登陆网页查看是否启动成功:http://192.168.248.12:6080   admin/ffcsict123

 

##  四、安装RangerUsersync(node12)

RangerUsersync作为Ranger提供的一个管理模块,可以将Linux机器上的用户和组信息同步到RangerAdmin的数据库中进行管理!

1. 新建文件夹:mkdir /opt/RangerUsersync

2. 进入:cd /opt/RangerUsersync

3. 上传之前编译后的包:ranger-2.2.0-usersync.tar.gz

4. 解压:tar -xvf ranger-2.2.0-usersync.tar.gz

5. 修改配置文件:vi /opt/RangerUsersync/ranger-2.2.0-usersync/install.properties

```java
#rangeradmin的url
POLICY_MGR_URL =http://node12:6080

#同步间隔时间,单位(分钟)
SYNC_INTERVAL = 1

#运行此进程的linux用户
unix_user=hadoop
unix_group=hadoop

#rangerUserSync的用户密码,参考rangeradmin中install.properties的配置
rangerUsersync_password=ffcsict123

#hadoop的配置文件目录
hadoop_conf=/home/hadoop/module/hadoop-3.2.2/etc/hadoop
  1. 初始化ranger-usersync脚本(root用户)

    cd  /opt/RangerUsersync/ranger-2.2.0-usersync/
    ./setup.sh
    
  2. 修改conf配置文件:vi /etc/ranger/usersync/conf/ranger-ugsync-site.xml

    ps:默认参数ranger.usersync.enabled为false,不同步用户,如果需要同步用户则改为true

    <property>
            <name>ranger.usersync.enabled</name>
            <value>true</value>
    </property>
    
  3. 查看ranger用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-boMhTHIX-1672649270438)(C:\Users\86188\AppData\Roaming\Typora\typora-user-images\image-20221108085618129.png)]

  1. 启动ranger-usersync:ranger-usersync start

  2. 再次查看ranger用户

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zHlGQUCK-1672649270439)(C:\Users\86188\AppData\Roaming\Typora\typora-user-images\image-20221108085656148.png)]

    成功!

五、Ranger Hive-plugin(node10)

ps:需要跟hive同一台,如果多台考虑配置多次

  1. 新建文件夹:mkdir /home/hadoop/RangerHive

  2. 进入:cd /home/hadoop/RangerHive

  3. 上传之前编译后的包:ranger-2.2.0-hive-plugin.tar.gz

  4. 解压:tar -xvf ranger-2.2.0-hive-plugin.tar.gz

  5. 修改配置:vi /home/hadoop/RangerHive/ranger-2.2.0-hive-plugin/inistall.propreties

    #策略管理器的url地址
    POLICY_MGR_URL=http://node12:6080
    #组件名称可以自定义
    REPOSITORY_NAME=rangerhive
    #hive的安装目录
    COMPONENT_INSTALL_DIR_NAME=/home/hadoop/module/hive
    #hive组件的启动用户
    CUSTOM_USER=hadoop
    #hive组件启动用户所属组
    CUSTOM_GROUP=hadoop
    
  6. 将hive配置文件软连接到Ranger Hive-plugin目录下:ln -s /home/hadoop/module/hive/conf /home/hadoop/RangerHive/ranger-2.2.0-hive-plugin

  7. 拷贝jar包:

    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/htrace-core4-4.1.0-incubating.jar  /home/hadoop/RangerHive/ranger-2.2.0-hive-plugin/install/lib
    
  8. 使用root用户启动Ranger Hive-plugin(root用户)

    cd /home/hadoop/RangerHive/ranger-2.2.0-hive-plugin
    ./enable-hive-plugin.sh
        
    #关闭
    ./disable-hive-plugin.sh
    
  9. 会在hive的conf目录下生成配置文件hiveserver2-site.xml,重启hiveserver2生效

六、Ranger Hdfs-plugin(node10、11)

ps:需要跟namenode同一台,如果多台考虑配置多次

  1. 新建文件夹:mkdir /home/hadoop/RangerHdfs

  2. 进入:cd /home/hadoop/RangerHdfs

  3. 上传之前编译后的包:ranger-2.2.0-hdfs-plugin.tar.gz

  4. 解压:tar -xvf ranger-2.2.0-hdfs-plugin.tar.gz

  5. 修改配置:vi /home/hadoop/RangerHdfs/ranger-2.2.0-hdfs-plugin/inistall.propreties

    #策略管理器的url地址
    POLICY_MGR_URL=http://node12:6080
    #组件名称可以自定义
    REPOSITORY_NAME=rangerhdfs
    #hdfs的安装目录
    COMPONENT_INSTALL_DIR_NAME=/home/hadoop/module/hadoop-3.2.2
    #hdfs组件的启动用户
    CUSTOM_USER=hadoop
    #hdfs组件启动用户所属组
    CUSTOM_GROUP=hadoop
    
  6. 创建软连接:ln -s /home/hadoop/module/hadoop-3.2.2/etc/hadoop /home/hadoop/RangerHdfs/ranger-2.2.0-hdfs-plugin/conf

  7. 拷贝jar包

    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/htrace-core4-4.1.0-incubating.jar  /home/hadoop/RangerHdfs/ranger-2.2.0-hdfs-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/commons-lang3-3.7.jar  /home/hadoop/RangerHdfs/ranger-2.2.0-hdfs-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/commons-compress-1.19.jar  /home/hadoop/RangerHdfs/ranger-2.2.0-hdfs-plugin/install/lib
    
  8. 启动Ranger Hive-plugin(root用户)

    cd /home/hadoop/RangerHdfs/ranger-2.2.0-hdfs-plugin
    ./enable-hdfs-plugin.sh
        
    #关闭
    ./disable-hdfs-plugin.sh
    还需要删除hadoop配置文件中ranger相关的配置文件,并且删除hdfs-site.xml中插件添加的相关配置。
    
  9. 使用hadoop用户,限制根目录只允许当前用户访问操作:hdfs dfs -chmod 700 /

  10. 重启hdfs生效

七、Ranger Hbase-plugin(所有)

ps:所有的服务器都需要,因为查询表走的是Hmaster,但是查询数据及其他相关操作走的是HRegionServer

  1. 新建文件夹:mkdir /home/hadoop/RangerHbase

  2. 进入:cd /home/hadoop/RangerHbase

  3. 上传之前编译后的包:ranger-2.2.0-hbase-plugin.tar.gz

  4. 解压:tar -xvf ranger-2.2.0-hbase-plugin.tar.gz

  5. 修改配置:vi /home/hadoop/RangerHbase/ranger-2.2.0-hbase-plugin/install.properties

    #策略管理器的url地址
    POLICY_MGR_URL=http://node12:6080
    #组件名称可以自定义
    REPOSITORY_NAME=rangerhbase
    #hdfs的安装目录
    COMPONENT_INSTALL_DIR_NAME=/home/hadoop/hbase/hbase-2.1.0
    XAAUDIT.SOLR.ENABLE=true
    XAAUDIT.SOLR.URL=http://node12:6083/solr/ranger_audits
    #hdfs组件的启动用户
    CUSTOM_USER=hadoop
    #hdfs组件启动用户所属组
    CUSTOM_GROUP=hadoop
    
  6. 创建软连接:ln -s /home/hadoop/hbase/hbase-2.1.0/conf /home/hadoop/RangerHbase/ranger-2.2.0-hbase-plugin/conf

  7. 拷贝jar包

    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/commons-lang3-3.7.jar  /home/hadoop/RangerHbase/ranger-2.2.0-hbase-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/commons-compress-1.19.jar  /home/hadoop/RangerHbase/ranger-2.2.0-hbase-plugin/install/lib
    
  8. 拷贝hbase-protocol-2.3.5.jar包到/home/hadoop/hbase/hbase-2.1.0/lib,并且移除原来的hbase-protocol-2.1.0.jar

  9. 启动Ranger Hbase-plugin(root用户)

    cd /home/hadoop/RangerHbase/ranger-2.2.0-hbase-plugin
    ./enable-hbase-plugin.sh
        
    #关闭
    ./disable-hdfs-plugin.sh
    还需要删除hadoop配置文件中ranger相关的配置文件,并且删除hdfs-site.xml中插件添加的相关配置。
    
  10. 赋权:chown -R hadoop /opt、chmod 755 /home/hadoop -R

  11. 重启hbase生效

八、Ranger Yarn-plugin(node10、11)

ps:需要跟resourceManager同一台,如果多台考虑配置多次

  1. 新建文件夹:mkdir /home/hadoop/RangerYarn

  2. 进入:cd /home/hadoop/RangerYarn

  3. 上传之前编译后的包:ranger-2.2.0-yarn-plugin.tar.gz

  4. 解压:tar -xvf ranger-2.2.0-yarn-plugin.tar.gz

  5. 修改配置:vi /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/inistall.propreties

    POLICY_MGR_URL=http://node12:6080
    REPOSITORY_NAME=rangeryarn
    COMPONENT_INSTALL_DIR_NAME=/home/hadoop/module/hadoop-3.2.2
    CUSTOM_USER=hadoop
    CUSTOM_GROUP=hadoop
    
  6. 创建软连接:ln -s /home/hadoop/module/hadoop-3.2.2/etc/hadoop /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/conf

  7. 拷贝jar包

    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/slf4j-api-1.7.25.jar  /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar  /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/log4j-1.2.17.jar  /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/commons-lang3-3.7.jar  /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/htrace-core4-4.1.0-incubating.jar   /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/install/lib
    cp /home/hadoop/module/hadoop-3.2.2/share/hadoop/common/lib/commons-compress-1.19.jar  /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin/install/lib
    
  8. 启动Ranger Hive-plugin(root用户)

    cd  /home/hadoop/RangerYarn/ranger-2.2.0-yarn-plugin
    ./enable-yarn-plugin.sh
        
    #关闭
    ./disable-yarn-plugin.sh
    还需要删除hadoop配置文件中ranger相关的配置文件,并且删除yarn-site.xml中插件添加的相关配置。
    
  9. 修改配置文件:vi /home/hadoop/module/hadoop-3.2.2/etc/hadoop/ranger-yarn-security.xml,添加配置

    <property>
        <name>ranger.add-yarn-authorization</name>
        <value>false</value>
    </property>
    
  10. 重启yarn生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ansible远程控制及其相关操作

1.控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应&#xff08;普通命令&#xff0c;特权命令&#xff09;任务&#xff08;以下所有结果均见截图&#xff09; (1)控住主机--server通过主机名匹配对应连接的受控主机 [rootserver ~]#vim /etc/hosts …

一本通 1267:【例9.11】01背包问题(详细代码+严谨思路+清晰图片)

经典01背包问题 这里给你3种方法 目录 DFS 思路&#xff1a; 代码&#xff1a; DFS记忆化 思路&#xff1a; 代码&#xff1a; 动态规划 思路&#xff1a; 代码&#xff1a; DFS 时间复杂度 &#xff1a;O(2^n) 思路&#xff1a; DFS求出所有选法&#xff0c;再用…

Git Stash、Git Merge、Git Rebase、Git Revert

GIT 日常使用总结git stashgit mergegit rebase将多个commit合并成一个commitgit revert撤销修改撤销commit 但是不撤销add 的内容撤销addGIT Rebase 补充说明&#xff1a;git stash git stash&#xff1a;将修改后的代码存储到本地的一个栈结构&#xff0c;将工作区和暂存区恢…

37-Vue之ECharts高级-交互API

交互API前言全局ECharts对象echartsInstance对象前言 本篇来学习下ECharts中交互API的使用 全局ECharts对象 全局 echarts 对象是引入 echarts.js 文件之后就可以直接使用的 init &#xff1a;初始化ECharts实例对象&#xff0c;使用主题 registerTheme&#xff1a;注册主题…

Avatar和虚拟场景如何影响用户VR社交行为

对于VR社交来讲&#xff0c;虚拟场景&#xff08;社交环境&#xff09;、Avatar&#xff08;虚拟化身&#xff09;是两个重要的元素&#xff0c;一个代表了人们在VR中互动的空间&#xff0c;而另一个则代表他们在这个空间中所扮演的角色。现阶段&#xff0c;Avatar有多种形态&a…

已解决import tensorflow.contrib.layers as layers导包错误

已解决W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not ha…

opencv-python常用函数解析及参数介绍(八)——轮廓与轮廓特征

轮廓与轮廓特征前言1.获取轮廓通过膨胀与腐蚀获得轮廓通过梯度获取轮廓通过边缘检测获取轮廓2.寻找轮廓参数及作用对比3.轮廓特征前言 在前面的文章中我们已经学会了使用膨胀与腐蚀、使用梯度、使用边缘检测的方式获得图像的轮廓&#xff0c;那么在获得轮廓后我们可以对图像进…

​赛分科技冲刺科创板上市:拟募资8亿元,复星、高瓴为股东​

近日&#xff0c;苏州赛分科技股份有限公司&#xff08;下称“赛分科技”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺上市&#xff0c;赛分科技计划募资8亿元&#xff0c;将用于20万升/年生物医药分离纯化用辅料、研发中心建设项目&#xf…

《收获,不止Oracle》读书笔记一

当今时代 技术人员&#xff0c;真正的差距其实在意识 1.忽略了知识的重点 20%的知识&#xff0c;解决80%的问题 2.从未考虑知识落地 知识要落地&#xff0c; 要思考应用的场合。 学习任何技术都是一样的&#xff0c;没有思考过你所学的某项技术有什么用&#xff0c;没有想…

P1827 [USACO3.4] 美国血统 American Heritage

题目描述 农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛 们的家谱作成二叉树&#xff0c;并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。 你的任务是在被给予奶牛家谱的“树中序遍历…

计算机网络 | 湖科大教书匠

一、因特网概述 1、网络、互联网和因特网 网络是由若干结点和连接这些结点的链路组成 多个网络还可以通过路由器互联起来&#xff0c;这样就构成了一个覆盖范围更大的网络&#xff0c;互联网 因此&#xff0c;互联网是网络的网络&#xff08;Network of Networks&#xff0…

hadoop+ranger+kerberos页面权限配置(四)

一、原理介绍 hdfs 指令测试&#xff1a;hdfs dfs -mkdir /ranger 原理&#xff1a;根据路径进行文件夹操作赋权。一旦指定文件夹权限&#xff0c;则该用户可以操作该文件夹及该文件夹底下的子文件夹。 yarn 指令测试&#xff1a;hadoop jar /home/hadoop/module/hadoop-3.2.2…

跨平台数据库管理器DbGate

本文软件由网友 zxc 推荐&#xff1b;隔了很久才开始写&#xff0c;又隔了很久才想起来发 &#x1f602; 什么是 DbGate &#xff1f; DbGate 是跨平台的数据库管理器。支持 MySQL、PostgreSQL、SQL Server、MongoDB、SQLite 等的数据库管理器。能够在 Windows、Linux、Mac 下运…

Z函数(扩展KMP)

1,定义 z函数存储字符串s(长度n&#xff0c;下标从0开始&#xff09;与其所有后缀s[i,n-1](0<i<n-1)的最大公共前缀LCP的值&#xff08;一般默认z[0]0,有时是n) 2,思路 叫他扩展KMP是有原因的&#xff0c;因为思想相近&#xff0c;我们求取z[i]&#xff0c;尝试利用前…

20230102单独编译原厂RK3588开发板的开发板rk3588-evb1-lp4-v10的Android12的内核

20230102单独编译原厂RK3588开发板的开发板rk3588-evb1-lp4-v10的Android12的内核 2023/1/2 20:52 《RK3588_Android12_SDK_Developer_Guide_CN.pdf》 原厂的开发板rk3588-evb1-lp4-v10单独编译内核的方式&#xff1a; cd kernel-5.10 export PATH../prebuilts/clang/host/linu…

redis的常见命令

Redis 所有的 key&#xff08;键&#xff09;都是字符串。在谈基础数据结构时&#xff0c;我们讨论的是存储值的数据类型&#xff0c;主要包括常见的 5 种数据类型&#xff0c;分别是&#xff1a;String、List、Set、Zset、Hash 数据结构介绍 Redis 是一个 key-value 的数据库…

Java基础漏洞(一)

最近在复习一些Java基础&#xff0c;填补自己的知识漏洞。 1.转义字符 (1)\t代表的是制表符&#xff0c;\n代表的是空格&#xff0c;\r则代表的是回车 public class Main{public static void main(String[] args) {System.out.println("年龄\t性别\t身高\n18\t男\t183&…

《小猫猫大课堂》4——数组,操作符,常见关键字

更新不易&#xff0c;麻烦多多点赞&#xff0c;欢迎你的提问&#xff0c;感谢你的转发&#xff0c; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我…

十三、网络编程、UDP、TCP协议

JMM(了解) JMM就是Java内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下&#xff0c;内存的访问有一定的差异&#xff0c;所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异&#…

python 办公自动后,第一天:创建excel写入数据

1&#xff0c;python第三方模块&#xff1a;xlwt写入excel文件 #pycharm 中安装pip install xlwt #xlwr 用户写入文件模块 #pip install xlwt # pip list 查看安装的模块 # pip install import xlwt#创建excelwb xlwt.Workbook()# 选择工作簿sh wb.add_sheet(第一个sheet页…