diff --git a/README.md b/README.md index eea26f4..a1f3724 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,9 @@ 2. [修改文件名大小写](./开发工具/git/修改文件名大小写.md) 3. [只拉取最新版本的代码](./开发工具/git/只拉取最新版本的代码.md) 4. [清空提交记录](./开发工具/git/清空提交记录.md) +5. [控制台中文乱码](./开发工具/git/控制台中文乱码.md) +6. [统一换行符](./开发工具/git/统一换行符.md) +7. [忽略文件](./开发工具/git/忽略文件.md) ### idea diff --git a/linux/shell.md b/linux/shell.md index 04fc480..bf780d2 100644 --- a/linux/shell.md +++ b/linux/shell.md @@ -134,6 +134,8 @@ if [ $1 -eq 1 ];then echo "1" elif [ $1 -eq 2 ];then echo "2" +else + echo "3" fi ``` diff --git "a/\345\244\247\346\225\260\346\215\256/hadoop/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272.md" "b/\345\244\247\346\225\260\346\215\256/hadoop/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272.md" new file mode 100644 index 0000000..a491116 --- /dev/null +++ "b/\345\244\247\346\225\260\346\215\256/hadoop/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272.md" @@ -0,0 +1,224 @@ +# 搭建Hadoop开发环境 + +## 虚拟机配置 + +### 修改IP + +`/etc/sysconfig/network-scripts/ifcfg-eth0` + +```shell +ONBOOT="yes" +BOOTPROTO="static" +# 修改为自己的ip,网关和dns +IPADDR="10.211.55.11" +GATEWAY="10.211.55.1" +DNS1="10.211.55.1" +``` + +### 修改主机名 + +`/etc/sysconfig/network` + +```shell +NETWORKING=yes +HOSTNAME=box11 +``` + +### 修改 host + +`/etc/hosts` + +```shell +10.211.55.11 box11 +10.211.55.12 box12 +10.211.55.13 box13 +10.211.55.14 box14 +10.211.55.15 box15 +10.211.55.16 box16 +``` + +### 创建用户 + +```shell +# 创建用户 +useradd box +## 修改用户密码 +passwd box +``` + +### 添加用户为root用户 + +`/etc/sudoers` + +```shell +# 在 root ALL=(ALL) ALL 下面添加 +box ALL=(ALL) ALL +``` + +### 配置用户组 + +通过用户组为用户增加操作权限, 一下所有操作的文件`root`组必须有权限操作 + +```shell +# 将box用户添加到root组中 +gpasswd -a box root +``` + +### 暂时关闭防火墙 + +```shell +systemctl stop firewalld +systemctl disable firewalld +``` + +## 配置Java + +解压文件 + +`tar -zxvf jdk-xxx.tar.gz` + +配置环境变量, 编辑`/etc/profile` + +```shell +export JAVA_HOME=jdk解压目录的绝对路径 +export PATH=$PATH:$JAVA_HOME/bin +``` + +## 配置hadoop + +解压文件 + +`tar -zxvf hadoop-xxx.tar.gz` + +配置环境变量, 编辑`/etc/profile/` + +```shell +export HADOOP_HOME=hadoop解压目录的绝对路径 +export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin +``` + +### 单机模式 + +Hadoop在无需进行任何配置的情况下,默认为单机模式 + +### 伪分布式模式 + +#### 配置文件 + +`etc/hadoop/hadoop-env.sh` + +```shell +# 将 JAVA_HOME=${JAVA_HOME} 替换为本机绝对路径 +JAVA_HOME=java home的绝对路径 +``` + +`etc/hadoop/core-site.xml` + +```xml + + + fs.defaultFS + hdfs://localhost:9000 + + +``` + +`etc/hadoop/hdfs-site.xml` + +```xml + + + dfs.replication + 1 + + +``` + +#### 配置ssh免密登陆 + +1.检查ssh是否为免密登陆状态 + +```shell +$ ssh localhost +``` + +2.如果上一步需要输入密码,使用如下命令配置 + +```shell +$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa +$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys +$ chmod 0600 ~/.ssh/authorized_keys +``` + +#### 执行 + +1.格式化namenode, 仅能执行一次 + +```shell +$ hdfs namenode -format +``` + +2.启动namenode守护进程 + +```shell +$ start-hdfs.sh +``` + +日志默认打印在`${HADOOP_HOME}/logs`下面 + +3.通过浏览器访问`http://localhost:50070`即可展示namenode的信息 + +4.关闭hdfs + +```shell +stop-hdfs.sh +``` + +#### 配置yarn + +`etc/hadoop/yarn-env.sh` + +```shell +# 将 JAVA_HOME=${JAVA_HOME} 替换为本机绝对路径 +JAVA_HOME=java home的绝对路径 +``` + +`etc/hadoop/mapred-site.xml` + +```xml + + + mapreduce.framework.name + yarn + + +``` + +`etc/hadoop/yarn-site.xml` + +```xml + + + yarn.nodemanager.aux-services + mapreduce_shuffle + + + + yarn.resourcemanager.hostname + localhost + + +``` + +启动 + +```shell +start-yarn.sh +``` + +停止 + +```shell +stop-yarn.sh +``` + diff --git "a/\345\274\200\345\217\221\345\267\245\345\205\267/git/\345\277\275\347\225\245\346\226\207\344\273\266.md" "b/\345\274\200\345\217\221\345\267\245\345\205\267/git/\345\277\275\347\225\245\346\226\207\344\273\266.md" new file mode 100644 index 0000000..9e810b7 --- /dev/null +++ "b/\345\274\200\345\217\221\345\267\245\345\205\267/git/\345\277\275\347\225\245\346\226\207\344\273\266.md" @@ -0,0 +1,54 @@ +# 如何从git中忽略指定的文件 + +现在有两种方式, `.gitignore`或者`.git/info/exclude`,这两种方式都表示指定的文件不不会被git进行管理. + +但现在有一个需求, 我想忽略某些已经被git管理的文件, 例如, 我有一些配置文件, 我需要git帮我管理着他们, 但是这些配置文件每个开发人员需要配置的项目不一样, 这时我想修改这个文件,但是又不想让git提醒我提交它. + +## skip-worktree + +`git update-index --skip-worktree path/to/file` + +`skip-worktree`的作用时, 指定的文件一定会被修改, 但是git要认为它没有改变.这样我们就可以在本地修改被指定的文件, 而不同担心`git add .`会将修改的文件添加到版本控制中. + +检查文件是否被忽略: + +```shell +git ls-files -v | grep ^s +``` + +* `git ls-files`显示所有被git管理的文件 +* `-v`选择被忽略的文件 +* `s`是`--skip-worktree`的缩写 + +将忽略的文件重新添加到版本控制需要使用如下命令: + +```shell +git update-index --no-skip-worktree path/to/file +``` + + + +## assume-unchanged + +```shell +git update-index --assume-unchanged path/to/file +``` + +`assume-unchanged`的作用是, 指定的文件在本地肯定不会被修改, git可以忽略对指定文件的检测. + +当我们认为某些文件我们一定不会尽心修改, 又想加快git的运行速度时,可以使用该命令. + +检查文件是否被忽略: + +```shell +git ls-files -v | grep ^h +``` + +* `h`是`assume-unchanged`的缩写 + +恢复使用如下命令: + +```shell +git update-index --no-assume-unchanged path/to/file +``` + diff --git "a/\345\274\200\345\217\221\345\267\245\345\205\267/git/\346\216\247\345\210\266\345\217\260\344\270\255\346\226\207\344\271\261\347\240\201.md" "b/\345\274\200\345\217\221\345\267\245\345\205\267/git/\346\216\247\345\210\266\345\217\260\344\270\255\346\226\207\344\271\261\347\240\201.md" new file mode 100644 index 0000000..31764ee --- /dev/null +++ "b/\345\274\200\345\217\221\345\267\245\345\205\267/git/\346\216\247\345\210\266\345\217\260\344\270\255\346\226\207\344\271\261\347\240\201.md" @@ -0,0 +1,46 @@ +# git 控制台中文乱码 + +默认情况下, 通过git status查询修改的文件,如果文件名中包含中文, 则会显示乱码, 如下: + +```shell +git status +位于分支 master +您的分支领先 'origin/master' 共 2 个提交。 + (使用 "git push" 来发布您的本地提交) + +尚未暂存以备提交的变更: + (使用 "git add <文件>..." 更新要提交的内容) + (使用 "git restore <文件>..." 丢弃工作区的改动) + 修改: linux/shell.md + +未跟踪的文件: + (使用 "git add <文件>..." 以包含要提交的内容) + "\345\244\247\346\225\260\346\215\256/hadoop/\345\207\206\345\244\207\350\231\232\346\213\237\346\234\272.md" + +修改尚未加入提交(使用 "git add" 和/或 "git commit -a") +``` + +出现的原始是: git会对0x80以上的字符进行quote. + +解决的方案为: `git config --global core.quotePath false` + +再次查看, 中文就显示正常了. + +```shell +git status +位于分支 master +您的分支领先 'origin/master' 共 2 个提交。 + (使用 "git push" 来发布您的本地提交) + +尚未暂存以备提交的变更: + (使用 "git add <文件>..." 更新要提交的内容) + (使用 "git restore <文件>..." 丢弃工作区的改动) + 修改: linux/shell.md + +未跟踪的文件: + (使用 "git add <文件>..." 以包含要提交的内容) + 大数据/hadoop/准备虚拟机.md + +修改尚未加入提交(使用 "git add" 和/或 "git commit -a") +``` + diff --git "a/\345\274\200\345\217\221\345\267\245\345\205\267/git/\347\273\237\344\270\200\346\215\242\350\241\214\347\254\246.md" "b/\345\274\200\345\217\221\345\267\245\345\205\267/git/\347\273\237\344\270\200\346\215\242\350\241\214\347\254\246.md" new file mode 100644 index 0000000..46a3035 --- /dev/null +++ "b/\345\274\200\345\217\221\345\267\245\345\205\267/git/\347\273\237\344\270\200\346\215\242\350\241\214\347\254\246.md" @@ -0,0 +1,26 @@ +在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。 + +```shell +AutoCRLF +#提交时转换为LF,检出时转换为CRLF +git config --global core.autocrlf true + +#提交时转换为LF,检出时不转换 (一般仅设置该项) +git config --global core.autocrlf input + +#提交检出均不转换 +git config --global core.autocrlf false +SafeCRLF +#拒绝提交包含混合换行符的文件 +git config --global core.safecrlf true + +#允许提交包含混合换行符的文件 +git config --global core.safecrlf false + +#提交包含混合换行符的文件时给出警告 +git config --global core.safecrlf warn +``` + + + +引用自: [git 换行符LF与CRLF转换问题 ](https://www.cnblogs.com/sdgf/p/6237847.html) \ No newline at end of file