# winutils
Windows binaries for Hadoop versions
These are built directly from the same git commit used to create the official ASF releases; they are checked out
and built on a windows VM which is dedicated purely to testing Hadoop/YARN apps on Windows. It is not a day-to-day
used system so is isolated from driveby/email security attacks.
## Security: can you trust this release?
1. I am the Hadoop committer " stevel": I have nothing to gain by creating malicious versions of these binaries. If I wanted to run anything on your systems, I'd be able to add the code into Hadoop itself.
1. I'm signing the releases.
1. My keys are published on the ASF committer keylist [under my username](https://people.apache.org/keys/committer/stevel).
1. The latest GPG key (E7E4 26DF 6228 1B63 D679 6A81 950C C3E0 32B7 9CA2) actually lives on a yubikey for physical security; the signing takes place there.
1. The same pubikey key is used for 2FA to github, for uploading artifacts and making the release.
Someone malicious would need physical access to my office to sign artifacts under my name. If they could do that, they could commit malicious code into Hadoop itself, even signing those commits with the same GPG key. Though they'd need the pin number to unlock the key, which I have to type in whenever the laptop wakes up and I want to sign something. That'd take getting something malicious onto my machine, or sniffing the bluetooth packets from the keyboard to laptop. Were someone to get physical access to my machine, they could probably install a malicous version of `git`, one which modified code before the checkin. I don't actually my patches to verify that there's been no tampering, but we do tend to keep an eye on what our peers put in.
The other tactic would have been for a malicious yubikey to end up being delivered by Amazon to my house. I don't have any defences against anyone going to that level of effort.
*2017-12 Update* That key has been revoked, though it was never actually compromised. Lack of randomness in the prime number generator on the yubikey, hence
[an emergency cancel session](http://steveloughran.blogspot.co.uk/2017/10/roca-breaks-my-commit-process.html). Not set things up properly again.
Note: Artifacts prior to Hadoop 2.8.0-RC3 [were signed with a different key](https://pgp.mit.edu/pks/lookup?op=vindex&search=0xA92454F9174786B4; again, on the ASF key list.
## Build Process
A dedicated Windows Server 2012 VM is used for building and testing Hadoop stack artifacts. It is not used for *anything else*.
This uses a VS build setup from 2010; compiler and linker version: 16.00.30319.01 for x64
>CL
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.30319.01 for x64
Copyright (C) Microsoft Corporation. All rights reserved.````
>LINK /VERSION
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
Maven 3.3.9 was used; signature checked to be that of Jason@maven.org. While my key list doesn't directly trust that signature, I do trust that of other signatorees:
https://pgp.mit.edu/pks/lookup?op=vindex&search=0xC7BF26D0BB617866
C:\Work\hadoop-trunk>mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: C:\apps\maven\bin\..
Java version: 1.8.0_74, vendor: Oracle Corporation
Java home: c:\java\jdk8\jre
Default locale: en_GB, platform encoding: Cp1252
OS name: "windows server 2012 r2", version: "6.3", arch: "amd64", family: "dos"
The build is based on the instructions in Hadoop's BUILDING.TXT
Java 1.8:
```
>java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
```
## release process
### Windows VM
In `hadoop-trunk`
The version to build is checked out from the declared SHA1 checksum of the release/RC, hopefully moving to signed tags once signing becomes more common there.
The build was executed, relying on the fact that the `native-win` profile is automatic on Windows:
mvn clean package -DskipTests -Pdist -Dmaven.javadoc.skip=true
This creates a distribution, with the native binaries under `hadoop-dist\target\hadoop-X.Y.Z\bin`
```
set VERSION=hadoop-2.8.3
cd winutils
mkdir %VERSION%
mkdir %VERSION%\bin
cd ..
copy trunk\hadoop-dist\target\%VERSION%\bin winutils\%VERSION%\bin
cd winutils
rm %VERSION%\bin\*.pdb
git add %VERSION%
git commit -m "Windows binaries for %VERSION%"
git push
```
Create a zip file containing the contents of the `winutils\%VERSION%`. This is done on the windows machine to avoid any risk of the windows line-ending files getting modified by git. This isn't committed to git, just copied over to the host VM via the mounted file share.
### Host machine: Sign everything
Pull down the newly added files from github, then sign the binary ones and push the .asc signatures back.
There isn't a way to sign multiple files in gpg2 on the command line, so it's either write a loop in bash or just edit the line and let path completion simplify your life. Here's the list of sign commands:
```
gpg --armor --detach-sign hadoop.dll
gpg --armor --detach-sign hadoop.exp
gpg --armor --detach-sign hadoop.lib
gpg --armor --detach-sign hadoop.pdb
gpg --armor --detach-sign hdfs.dll
gpg --armor --detach-sign hdfs.exp
gpg --armor --detach-sign hdfs.lib
gpg --armor --detach-sign hdfs.pdb
gpg --armor --detach-sign libwinutils.lib
gpg --armor --detach-sign winutils.exe
gpg --armor --detach-sign winutils.pdb
````
verify the existence of files, then
```
git add *.asc
git status
git commit -S -m "sign Hadoop artifacts"
git push
```
Then go to the directory with the zip file and sign that file too
```
gpg --armor --detach-sign hadoop-2.8.0.zip
```
### github, create the release
1. Go to the [github repository](https://github.com/steveloughran/winutils)
1. Verify the most recent commit is visible
1. [Create a new release](https://github.com/steveloughran/winutils/releases/new)
1. Tag the release with the hadoop version, include the commit checksum used to build off
1. Drop in the .zip and .zip.asc files as binary artifacts
没有合适的资源?快使用搜索试试~ 我知道了~
hadoop-2.6.0~hadoop3.0.0-winutils.zip
共189个文件
asc:29个
cmd:26个
lib:23个
需积分: 7 2 下载量 175 浏览量
2021-12-08
16:41:40
上传
评论
收藏 6.13MB ZIP 举报
温馨提示
2021-11-29 16:28:48,544 ERROR [org.apache.hadoop.util.Shell] - Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable G:\hadoop-2.6.0\hadoop-2.6.0\bin\winutils.exe in the Hadoop binaries.出现此内容的报错。 适用于在Windows系统本地运行Mapreduce程序,可以挑选接近所选用的hadoop版本来使用Winutils,例如hadoop2.6.0版本,可以使用资源中的2.6.3版本的winutils.
资源推荐
资源详情
资源评论
收起资源包目录
hadoop-2.6.0~hadoop3.0.0-winutils.zip (189个子文件)
winutils.pdb.asc 842B
hadoop.lib.asc 842B
libwinutils.lib.asc 842B
hdfs.dll.asc 842B
hadoop.exp.asc 842B
hdfs.lib.asc 842B
hdfs.pdb.asc 842B
winutils.exe.asc 842B
hadoop.pdb.asc 842B
hadoop.dll.asc 842B
winutils.pdb.asc 842B
hadoop.lib.asc 842B
libwinutils.lib.asc 842B
hdfs.dll.asc 842B
hadoop.exp.asc 842B
hdfs.exp.asc 842B
hdfs.lib.asc 842B
hdfs.pdb.asc 842B
winutils.exe.asc 842B
hadoop.pdb.asc 842B
hadoop.dll.asc 842B
hadoop.lib.asc 801B
libwinutils.lib.asc 801B
hdfs.dll.asc 801B
hadoop.exp.asc 801B
hdfs.exp.asc 801B
hdfs.lib.asc 801B
winutils.exe.asc 801B
hadoop.dll.asc 801B
yarn.cmd 12KB
yarn.cmd 11KB
yarn.cmd 11KB
yarn.cmd 11KB
hadoop.cmd 10KB
yarn.cmd 10KB
yarn.cmd 10KB
hadoop.cmd 8KB
hadoop.cmd 8KB
hadoop.cmd 8KB
hdfs.cmd 8KB
hadoop.cmd 8KB
hadoop.cmd 8KB
hdfs.cmd 8KB
hdfs.cmd 7KB
hdfs.cmd 7KB
mapred.cmd 7KB
hdfs.cmd 7KB
hdfs.cmd 7KB
mapred.cmd 6KB
mapred.cmd 6KB
mapred.cmd 6KB
mapred.cmd 6KB
mapred.cmd 6KB
Start-HadoopAdminShell.cmd 1KB
OnOutOfMemory.cmd 73B
lzo2.dll 103KB
hadoop.dll 97KB
hadoop.dll 91KB
hadoop.dll 91KB
hadoop.dll 91KB
hadoop.dll 91KB
hadoop.dll 91KB
hadoop.dll 91KB
hdfs.dll 62KB
hdfs.dll 59KB
hdfs.dll 59KB
hdfs.dll 59KB
hdfs.dll 59KB
hdfs.dll 56KB
hdfs.dll 56KB
snappy.dll 17KB
gplcompression.dll 16KB
winutils.exe 110KB
winutils.exe 110KB
winutils.exe 110KB
winutils.exe 110KB
winutils.exe 107KB
winutils.exe 106KB
winutils.exe 106KB
historyserver.exe 14KB
resourcemanager.exe 14KB
namenode.exe 14KB
timelineserver.exe 14KB
secondarynamenode.exe 14KB
datanode.exe 14KB
nodemanager.exe 14KB
hadoop.exp 23KB
hadoop.exp 22KB
hadoop.exp 22KB
hadoop.exp 22KB
hadoop.exp 22KB
hadoop.exp 21KB
hadoop.exp 21KB
hdfs.exp 10KB
hdfs.exp 9KB
hdfs.exp 9KB
hdfs.exp 9KB
hdfs.exp 9KB
snappy.exp 1KB
.gitattributes 14B
共 189 条
- 1
- 2
资源评论
zzp28218
- 粉丝: 1093
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功